- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五子棋c#实训报告
九江学院
实训报告
实训名称:Java编程
指导老师:李兴南 雷波
姓名:肖世明
学号:11208020103
班级:理学A1221
提交日期:2015年10月20日
实训目的:
通过本实训,应达到如下目标:
理解委托的概念,掌握线程之间通过委托与控件交互的方法。 理解异常处理的机制,掌握异常处理语句的用法。
理解线程的概念,掌握多线程编程的一般方法。
掌握基于TCP的应用编程技术。程序基本功能描述如下:
实训项目要求使用Java编程语言,基于客户机/服务器(C/S)模式,开发一款网络对战五子棋游戏。服务器端可以支持多玩家同时在线游戏。玩家可以通过客户端登陆到服务器端与其它玩家进行五子棋游戏对战。
项目基本要求描述如下:
当服务器“启动服务”之后,可以允许玩家连接服务器;当服务器“停止服务”之后,不允许玩家连接服务器。
玩家请求登陆时需提交用户名,在没有“满员”和“重名”的情况下,服务器允许玩家登陆;在“满员”或“重名”的情况下,服务器拒绝玩家登陆。
玩家登陆成功之后,进入“游戏大厅”界面,并获得其他在线玩家的信息,其他玩家也能获得该玩家的信息。
玩家注销登陆之后,断开与服务器的连接,并关闭“游戏大厅”界面。
玩家“落座”之后,进入“游戏桌”界面,并获得该桌玩家的信息。如果有对家落座,对家也能获得该玩家落座的信息。其他玩家也能获得该玩家的状态的改变。
玩家“起身”之后,进入“游戏大厅”界面。如果有对家落座,对家也能获得该玩家起身的信息。其他玩家也能获得该玩家的状态的改变。
玩家“请求开始”游戏之后,初始化“棋盘”界面,玩家进入“就绪”状态。如果有对家也处于“就绪”状态,则开始游戏。其他玩家也能获得该玩家的状态的改变。
游戏开始之后,首先黑方“行棋”,之后双方轮流行棋。
玩家“落子”之后,对家也能获得“棋盘”状态的改变。如果玩家“获胜”,对家能得知自己“失败”;否则双方继续“行棋”。
玩家“请求和棋”之后,对家能获得其请求。对家可以“同意和棋”,也可以“拒绝和棋”。如果对家同意和棋,则和局;否则游戏继续进
上述要求是本项目的基本要求,也可新增积分排行榜和保存棋局等功能。
设计说明:
服务器功能
(1)服务器提供一个五子棋的游戏厅,拥有多个游戏桌(1~100),每桌有两个座位,0代表黑方,1代表白方。
(2)服务器启动服务后,创建一个线程专门监听玩家的连接请求。服务器一旦接受一个连接,就创建一个与玩家对应的线程,用于接受玩家信息,并提供相应的服务。玩家退出后,其对应的线程便自动终止,并给出相应提示。可限制玩家人数(1~300)。
客户端功能
(1)客户端连接成功后,创建一个接收线程,用于接受服务器发送信息。
(2)接受的信息处理。
源代码
sever:
GameTable:
class GameTable
{
private const int None = -1;
private const int Black = 0;
private const int White = 1;
public Player[] gamePlayer;
private int[,] grid = new int[15, 15];
private System.Timers.Timer timer;
private int NextdotColor = 0;
private ListBox listbox;
Random rnd = new Random();
Service service;
private int NextPlayer = -1;
private int gameType = 1;
public GameTable(ListBox listbox)
{
gamePlayer = new Player[2];
gamePlayer[0] = new Player();
gamePlayer[1] = new Player();
timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
文档评论(0)