项目设计-----五子棋

这是一个由郭瀚文、关乾春和邓国岩组成的团队设计的五子棋项目,使用Java实现,包括离线和在线模式。离线模式支持双人对战,功能包括落子、悔棋、复盘和获胜检测。在线模式则涉及用户登录和服务器匹配对手。技术难点涵盖网络通信、游戏同步和算法优化,同时强调代码结构、可读性和网络安全的重要性。
摘要由CSDN通过智能技术生成

一、团队成员

组长:郭瀚文 202203010057
组员:关乾春 202203010058 邓国岩 202203010059

二、主要内容

项目完整代码:https://gitee.com/memoryee/gobang

一个简易的五子棋游戏,能够实现离线和联网对战。
离线模式能够支持本地双人对战。
联网模式需要用户登录并等待服务器匹配对手

三、简介

1、设计目标

通过socket编程,GUI设计,mysql等技术的学习,来实现一个联网的多人五子棋小游戏

2、实现技术

socket编程,GUI设计,mysql

3、开发环境

java

4、功能特点

能够在本地实现双人对战
同时也能通过服务器联网实现异地对战

四、功能介绍

1、离线模式

(1)落子

通过二维数组存储棋子在棋盘上的位置,在绘制棋盘,实现落子的功能
代码如下:

//在Mouse类中,通过重写mosueclicked方法来获取鼠标点击位置与棋盘格子的关系
public void mouseClicked(MouseEvent e) {
   
		int x = e.getX();// 鼠标点击处获取x、y坐标
		int y = e.getY();
		// 获取落子坐标,此处进行判断让获取的坐标位于棋盘线交点处
		if ((x - x0) % size > size / 2) {
   
			x1 = (x - x0) / size + 1;
		} 
		else if ((x - x0) % size <= size / 2) {
   
			x1 = (x - x0) / size;
		}
		if ((y - y0) % size > size / 2) {
   
			y1 = (y - y0) / size + 1;
		} 
		else if ((y - y0) % size <= size / 2) {
   
			y1 = (y - y0) / size;
		}
		
//		System.out.println(y1 + " " + x1);
//		System.out.println(chessArr[y1][x1]);
 
		
		//判断本地游戏是否开始
		if (start) {
   
			// 判断棋子是否会越出棋盘界
			if (0 <= x1 && x1 <= 14 && 0 <= y1 && y1 <= 14) {
   
				// 判断只有空位置才能下棋
				if (chessArr[y1][x1] == 0) {
   
						if (count % 2 == 0) {
   
							//static1.black.paintIcon(chessPanel, g, x1 * size - 25 + x0, y1 * size - 25 + y0);
							chessArr[y1][x1] = 1;// 记录棋盘上每颗棋子的颜色,黑色记1,白色记-1
							chesses[count++] = new Chess(x1, y1, 1);
	 
						} 
						else {
   
							//static1.white.paintIcon(chessPanel, g, x1 * size - 25 + x0, y1 * size - 25 + y0);
							chessArr[y1][x1] = -1;
							chesses[count++] = new Chess(x1, y1, -1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值