java小游戏实战局域网联机_结对编程3——黄金点小游戏实现局域网联机

一、项目成员

2018141461085

龚泽楠

2018141461012

蔡铧荣

二、项目名称

黄金点小游戏

三、项目简介

游戏规则: N个同学( N通常大于 10 ),每人写一个 0~100 之间的有理数 (不包括 0或100) ,交给裁判算出所有数字的平均值然后乘以 0.618 (所谓黄金分割常数),得到 G值。提交的数字最靠近 G(取绝对值)的同 学得到 N分,离 G最远的同学得到- 2分,其他同学得 0分。

黄金点游戏其实是一个博弈论G值(博弈值,在黄金点游戏中为黄金点;在市场竞标中为标线;在拍卖中为成交额)的数据收集实验,因此该项目为社会公益项目,普遍情况黄金点游戏项目都会将最后数据或实时数据上传至网络公开使用。

这个游戏规定第一名得到全部的分数, 第二名(不管多接近)到倒数第二名都是 0 分,最后一名还要倒扣分。

四、UI设计

为了实现局域网联机功能,项目重新设计了新的UI界面,设计如下:

java小游戏实战局域网联机_结对编程3——黄金点小游戏实现局域网联机_第1张图片

java小游戏实战局域网联机_结对编程3——黄金点小游戏实现局域网联机_第2张图片

五、概要设计(局域网通讯部分)

目前设计思路为分为服务器和客户端两个程序,服务器主要负责接收以及整合所有客户端发来的数据,并将这些数据传回客户端。

黄金点的计算以及得分排名的计算等都在客户端本地完成。

服务器只起到分发数据,判断玩家状态的作用。

java小游戏实战局域网联机_结对编程3——黄金点小游戏实现局域网联机_第3张图片

六、实现代码

目前只实现了部分项目功能。数据传输使用Socket。数据传送形式使用Json传输。

客户端登录连接服务器:

packagegp.Client;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.net.InetAddress;importjava.net.UnknownHostException;importjavax.swing.Box;importjavax.swing.JButton;importjavax.swing.JDialog;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JTextField;public classMain {public static void main(String[] args) throwsUnknownHostException {//登录界面设计

Box baseBox, box1 = null, box2 = null;

JFrame LoginUI= newJFrame();

LoginUI.setLayout(newFlowLayout());

LoginUI.setBounds(0, 0, 300, 110);

LoginUI.setLocationRelativeTo(LoginUI.getOwner());

LoginUI.setTitle("黄金点小游戏登录");

LoginUI.setResizable(false);

box1=Box.createVerticalBox();

box1.add(new JLabel("服务器地址"));

box1.add(Box.createVerticalStrut(10));

box1.add(new JLabel("用户姓名"));

box1.add(Box.createVerticalStrut(10));

你可能感兴趣的:(java小游戏实战局域网联机)