五子棋网络应用程序开发 课程设计

上传人:e****s 文档编号:258751019 上传时间:2022-02-24 格式:DOC 页数:13 大小:269.50KB
返回 下载 相关 举报
五子棋网络应用程序开发 课程设计_第1页
第1页 / 共13页
五子棋网络应用程序开发 课程设计_第2页
第2页 / 共13页
五子棋网络应用程序开发 课程设计_第3页
第3页 / 共13页
五子棋网络应用程序开发 课程设计_第4页
第4页 / 共13页
五子棋网络应用程序开发 课程设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《五子棋网络应用程序开发 课程设计》由会员分享,可在线阅读,更多相关《五子棋网络应用程序开发 课程设计(13页珍藏版)》请在金锄头文库上搜索。

1、网络应用程序开发报告1 概述游戏说明五子棋在我国的历史可谓是源远流长,喜爱它的玩家也是大有人在,是很多人的娱乐首选,也是一种竞技项目。但很多的五子棋软件一般都是单机版的,游戏无法在两个玩家之间进行。基于上述原因,五子棋作为一个古老而又有广泛群众基础的游戏,他的完善性无疑是家玩家有很大的影响在互联网迅速发展的今天,五子棋的流行已经不仅仅只是在现实生活中的面对面的娱乐竞技,在网上也已经是广大玩家的首选娱乐游戏。为适应当今社会五子棋软件化的需求,通过对一般的五子棋软件进行设计,通过本设计希望能在五子棋的软件发展上起点微不足道的推动作用。实现当今社会五子棋软件化的需求。软件设计采用visual stu

2、dio2008版作为开发平台,运用软件工程的分析和编写方法,收集主要相关文献资料,对系统作详细的分析和设计,实现五子棋的基本功能需求,达到一般五子棋的游戏功能和规则设置。在设计上,主要解决的问题有五子棋的各个方向判断胜负算法的分析,以及五子棋中“聊天,重新开始”等基本功能的实现。需求分析一款游戏项目的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求或者是出于公司自身发展和实力的情况,其中玩家的实际需求也就是说市场需求最为重要.面对游戏拥有不同知识和理解层面的玩家,项目的负责人(或者游戏制作人)对玩家需求的理解程度,在很大程度上决定了此类游戏开发项目的成败.因此如何更好地的了解

3、,分析,明确玩家需求,并且能够准确,清晰以文档的形式表达给参与项目开发的每个成员,保证开发过程按照满足玩家需求为目的正确项目开发方向进行,是每游戏开发项目管理者需要面对的问题.而作为五子棋的设计需要考虑到的最基本的需求莫过于人机对战与人人对战功能的实现,当然还有下棋过程中的下棋悔棋功能以及判断游戏的胜负等方面的要求。当然最好是要考虑到界面的友好性,作为一个娱乐软件,还应该考虑到玩家在游戏时的舒适2 实现2.1 设计思路2.2 具体实现2.2.1 界面设计界面主要分四大部分:棋盘、ip地址、棋子选择和聊天窗口,程序运行开始,先要输入要连接的主机ip地址,然后选定棋子颜色,就可以下棋了。输入文本的

4、控件我选择了comboBox空间,在其下拉表中预先输入一些常用的语句,如:你好,嗨等,这样方便聊天。聊天记录窗口我用了listBox,当聊天内容比较多时,会自动添加滚动条,便于用户阅读聊天信息2.2.2按钮功能实现(1)重新开始按钮public void Restart() radBlack.Enabled = true; radWhite.Enabled = true; for(int i=0;iLevel;i+) for (int j = 0; j Level; j+) pici, j.Image = Image.FromFile(Board.jpg); flagi, j = false;

5、 doubleFlagi, j = false; this.AllowClick = true; private void button2_Click(object sender, EventArgs e) this.Restart(); (2)发送按钮private void btnSend_Click(object sender, EventArgs e) String ForeStr = rn + txtSelfIP + 【 + DateTime.Now.ToShortDateString() + + DateTime.Now.ToShortTimeString() + 】:rn; th

6、is.Sender.send(txtIP.Text.Trim(),txtSend.Text.Trim(), 12001); txtShow.Text += ForeStr; int BeforeIndex = txtShow.Text.Length; txtShow.Text += txtSend.Text; txtShow.Select(BeforeIndex, txtShow.Text.Length); txtShow.SelectionBackColor = Color.White; txtShow.SelectionColor = SelfFontColor; /滚动 txtShow.

7、Select(txtShow.Text.Length, 0); txtShow.ScrollToCaret(); txtSend.Text = ; 2.2.3棋子位置判断获得所下的棋子位置的下标:RowIndex = (p.Location.Y - 30) / (p.Height);ColIndex = (p.Location.X - 30) / (p.Width);判断是否有棋子添加到棋盘上,是通过Button1是否产生单击事件来判定的,在Button按钮单击事件中,编入了输赢的判断代码,结果用messagebox的形式显示出来,还有一些对不合规则下棋方法的判断及给出相应的提示private

8、 void button1_Click(object sender, EventArgs e) if (this.AllowClick) this.radBlack.Enabled = false; this.radWhite.Enabled = false; PictureBox p = (PictureBox)sender; p.Image = Image.FromFile(PictureFileName); /获得所下的棋子位置的下标 RowIndex = (p.Location.Y - 30) / (p.Height); ColIndex = (p.Location.X - 30) /

9、 (p.Width); String Message;Message = Pos + Splitor + RowIndex.ToString() + Splitor + ColIndex.ToString(); /发送的信息字符串FlagRowIndex, ColIndex = true; /记录if (this.Judge1() | this.Judge2() | this.Judge3() | this.Judge4()Message += Splitor + this.WinStr; try int Port = Convert.ToInt32(txtPort.Text.Trim();

10、if (doubleFlagRowIndex, ColIndex) picRowIndex, ColIndex.Image = Image.FromFile(OtherPictureFileName); MessageBox.Show(不能在有棋子的地方下棋, 消息); AllowClick = true; else Sender.send(txtIP.Text.Trim(), Message, Port); Sender.send(txtIP.Text.Trim(), Message, Port); Sender.send(txtIP.Text.Trim(), Message, Port);

11、 Sender.send(txtIP.Text.Trim(), Message, Port); Sender.send(txtIP.Text.Trim(), Message, Port); AllowClick =false; catch (Exception ex) MessageBox.Show(ex.Message, 错误!); this.Restart(); doubleFlagRowIndex, ColIndex = true; /双方记录 if (this.Judge1() | this.Judge2() | this.Judge3() | this.Judge4() this.W

12、inCount += 1;MessageBox.Show(胜利!胜负情况: 胜+ WinCount.ToString()+负+ LoseCount.ToString(), 对战结束);this.Restart(); else MessageBox.Show(不能抢下棋子); public Form1() InitializeComponent(); for (int i = 0; i Level; i+) for (int j = 0; j Level; j+) pici, j = new PictureBox(); pici, j.Click += new EventHandler(this.button1_Click); public void StartListen() while (true) int Port = Convert.ToInt32(txtPort.Text.Trim(); udpclient = new UdpClient(Port); IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, Port);try

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 经济/贸易/财会 > 经济学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号