JAVAGUI小游戏-基于UDP通信实现联机对战的井字棋
程序员文章站
2024-03-18 23:48:04
...
记得这是大二上学期时的一个作业,开发一款井字棋,记得当时放飞自我花了通宵搞出来了一个能联机对战的。
时隔一年多,如今整理电脑发现了这个项目代码,舍不得删,干脆写一个博客纪念一下吧。
虽说JAVAGUI早以过时,但是这个项目对于java初学者来说是很不错的,记得当时通过这个项目更加深刻理解到了面向对象程序设计
,以及多线程
,网络编程的知识
,收获颇大.
代码量稍微有点大,我就不全上代码了,后面我会给出Github地址
先看项目的目录结构(当时模仿Android的命名)每个页面对应一个Activity
程序的入口是主函数,用于启动页面的类
Main.class
import java.net.SocketException;
public class Main {
public static void main(String[] args) throws SocketException {
new FirstActivity();
// new SecondActivity();
//new Thread(new GameActivity()).start();
//new ThirdActivity();
//new Dialog();
// new FivethActivity();
// new SixActivity();
}
}
开始页面
网络对战(在一个局域网中就可对战)
在一台电脑上模拟了一下
原理就是通过UDP通信发送坐标,然后另一方接收到消息后就刷新页面。(详细看代码吧)
人机对战(可选择难度,困难的难度几乎不可能赢)
github地址:
ps:当时在设计的过程中用到了类的继承,但还是不够完善,现在看来可以有更好的设计。感兴趣的同学可以去重新设计一下,比如棋盘可以写成一个基类,每个页面继承它等等。欢迎pull给我哦~