C#课设报告书—游戏五子棋

上传人:平*** 文档编号:11091315 上传时间:2017-10-11 格式:DOC 页数:19 大小:414.11KB
返回 下载 相关 举报
C#课设报告书—游戏五子棋_第1页
第1页 / 共19页
C#课设报告书—游戏五子棋_第2页
第2页 / 共19页
C#课设报告书—游戏五子棋_第3页
第3页 / 共19页
C#课设报告书—游戏五子棋_第4页
第4页 / 共19页
C#课设报告书—游戏五子棋_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C#课设报告书—游戏五子棋》由会员分享,可在线阅读,更多相关《C#课设报告书—游戏五子棋(19页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书 NO.1五子棋1 设计目的五子棋游戏不仅能增强人们的抽象思维能力、逻辑推理能力、空间想象力,提高人们的记忆力、心算能力等,而且深含哲理,有助于修身养性。五子棋既有现代休闲方式所特有的特征“短、平、快” ,又有中国古典哲学所包含的高深学问“阴阳易理” 。它既有简单易学的特点,为人民群众所喜闻乐见,又有深奥的技巧;既能组织举办群众性的比赛、活动,又能组织举办高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观,它是中西方文化的交融点,也是中西方文化交流的一个平台。自从计算机作为游戏对战平台以来,各种棋类游戏如雨后春笋般纷纷冒出。五子棋是一种受大众广泛喜爱的游戏,其规则

2、简单,变化多端,非常富有趣味性和消遣性。同时具有简单易学、既动手又动脑的特点。同时也为锻炼自己的编程能力。2 功能描述本次设计的是基于 Microsoft Visual Studio 2008 平台所设计的五子棋游戏。用户分为持黑子方和持白子方,通过鼠标单击游戏见面中线的交叉位置下棋。由持白子一方先下,持黑子方后下。在下棋的过程中每方有 30 秒的考虑时间,如果超出考虑时间则由另一方开始下棋。在下棋的过程中用户可以根据自己的意愿悔棋,每悔一次棋步数减一。(1)画棋盘和棋子,并添加具有倒计时功能的时钟,当一方的等待时间超过三十秒的时候,切换到另一方下棋。(2)添加悔棋一步按钮,当一方想要悔棋时可

3、以单击此按钮,则之前下的那步棋被撤销。(3)当有一方横向,纵向或斜向有连续的五子连成一线时,那一方获胜。(4)当有一方点击重新开局这一子菜单项时,则将重新开始一盘棋。(5)一方下一步棋则步数增一,一方悔棋一步则步数减一。(6)在游戏中,会显示当前的系统时间,也可以根据用户需求隐藏起来。课程设计说明书 NO.23 方案论证 3.1 总体设计3.1.1 功能框图五子棋倒计时功能 判断输赢功能 重新开局功能 步数计算功能隐藏显示时间功能悔棋功能图 1 总体功能框图3.2 详细设计3.2.1 程序界面设计(1)菜单设计本五子棋游戏中共“游戏”和“帮助”两个菜单项,在“游戏”菜单项中有重新开局和退出两个

4、子菜单,在“帮助”菜单项中有关于五子棋、技术支持、隐藏显示时间和屏保四个子菜单。(2)主窗体设计控件及相应属性如表 1 所示。表 1 编辑控件属性控件名 属性 属性值Label1 BackColor ControlDarkLocation 12,35课程设计说明书 NO.3Size 401,401TabIndex 1Visible TrueLabel1 BackColor ControlLocation 419,52Size 167,30Text 当前玩家:白方TabIndex 4Visible TrueLabel1 BackColor ControlLocation 419,315Size

5、145,30控件名 属性 属性值Label3 Text 剩余用时:TabIndex 5Visible TrueLabel4 BackColor ControlLocation 420,365Size 166,30TabIndex 7Text 每轮不得超时 30s!Visible TrueButton1 BackColor GrayLocation 522,398Size 99,38TabIndex 7Text 每轮不得超时 30s!Button2 Text 退出游戏Location 417, 398课程设计说明书 NO.4panel1 BackgroundImage System.Drawin

6、g.BitmapTimer1 enabled TrueInterval 1000Modifiers Private3.2.4 程序功能设计 (1)在 gobang 类中添加下列数据成员及成员函数。private bool, chessBoard = new bool20, 20; /判断棋盘指定坐标是否被绘制private int, chessColor = new int20, 20; /用数组记录棋子的颜色,1-白色,2- 黑色private bool IsWhite = true; /判断是否是白棋private Stack last=new Stack(); /下棋历史记录(2)画棋盘

7、代码如下:public void Checker(Graphics g)Pen myPen = new Pen(Color.Black);for (int i = 10; i 0)Point p = last.Pop();chessBoardp.X, p.Y = false;chessColorp.X, p.Y = 0;IsWhite = !IsWhite;SolidBrush sb = new SolidBrush(Color.Gray);g.FillEllipse(sb,p.X*20,p.Y*20,20,20);(5)检查游戏结果代码如下:public bool CheckGameResu

8、lt(int x, int y)/检查横向x = (x - x % 20) / 20;y = (y - y % 20) / 20;int sum1 = 1;int sum2 = 1;int sum3 = 1;int sum4 = 1;int search = chessColorx, y;for (int i = x + 1; i = 0; i-)if (chessColori, y = search)sum1+;elsebreak;/检查纵向for (int i = y + 1; i = 0; i-)if (chessColorx, i = search)sum2+;elsebreak;/检

9、查主对角线for (int i = x - 1, j = y - 1; i = 0 & j = 0; i-, j-)if (chessColori, j = search)sum3+;elsebreak;for (int i = x + 1, j = y + 1; i = 0; i+, j-)if (chessColori, j = search)sum4+;elsebreak;for (int i = x - 1, j = y + 1; i = 0 & j = 5 | sum2 = 5 | sum3 = 5 | sum4 = 5)return true;elsereturn false;(6

10、)输出游戏结果代码如下:public void OutputResult(int x, int y)x = (x - x % 20) / 20;y = (y - y % 20) / 20;课程设计说明书 NO.8if (chessColorx, y = 1)MessageBox.Show(白棋获胜, 比赛结果 );elseMessageBox.Show(黑棋获胜, 比赛结果 );(7)判断是否是白棋代码如下:public bool PlayWhite()if (IsWhite)return true;elsereturn false;(8)更换玩家代码如下:public void Change

11、Player()IsWhite = !IsWhite;(9)判断当前一格是否已被绘制代码如下:public bool isDraw(int x, int y)return chessBoard(x - x % 20) / 20, (y - y % 20) / 20;4 运行结果与分析课程设计说明书 NO.9(1)游戏界面运行如图 2、图 3。图 2 五子棋运行界面图 3 五子棋运行界面(2)游戏结束如图 4 所示课程设计说明书 NO.10图 4 游戏结束界面(3)屏保显示如图 5 所示图 5 屏保界面5 心得体会课程设计说明书 NO.11在这次的 C#课程设计中,我负责的是画棋子模块。当单击棋

12、盘的时候,在棋盘上画出一个圆形带颜色的棋子,画棋子之前首先判断棋盘上的这个位置有没有被画,如果没有被画便可以画上,还要考虑,每次画的都是什么颜色的棋子,这次试验感受颇多,从中无也学到了很多书上没有的知识。也知道实践只重要性,也加深对 C#的更一步了解。在这次实训中,我对 C#有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,虽然每次运行程序不一定会成功。通过自己上网查资料编写程序,经过多次的上机调试和上网查资料和修改,最终把最初的理论知识转化基本技能。通过这次实习,让我们初步有了编写系统的能力,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程,

13、和基本方法。编写软件的过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。这次的实训,使我对 C#的学习产生浓厚的兴趣。在这几天的编写过程中我们对 c#有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。此次课程设计不仅给了我们很多很好的经验,也让我们体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。参考文献课程设计说明书 NO.121 罗斌,越飞 ,等. Visual C# 2005 编程实例精粹 M. 北京: 中国水利水电出版社, 2006 .10:10-1352 陈哲,戴博,等. Visual C# 2005

14、程序设计M.北京:清华大学出版社,2007 .7:38-2353 耿肇英,等.C#程序设计简明教程 M. 北京: 人民邮电出版社, 2007. 12:44-1564 刘甫迎、刘光会、王蓉. C#程序设计教程M.北京:电子工业出版社,2008 .9:32-1055 陈佛敏,潘春华,等. C#程序设计简明教程M.北京:人民邮电出版社,2008.11:10-1036 李旗. C#.NET 程序设计M北京:机械工业出版社,2008. 7:67-2347 古万荣. Visual C#轻松入门M.北京:人民邮电出版社,2009.5:22-2128 熊壮,宋文强. C#程序设计M.北京:高等教育出版社,20

15、10 .14:02-2719 Christian Nagel,等. C#高级编程M, 李铭,译.北京:清华大学出版社,2010. 9:32-10510 Karli Waston,等. C#高级编程M.齐立波,译. 北京:清华大学出版社,2010 .11:21-179课程设计说明书 NO.136 附录(部分源代码)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 五子棋public partial class Form1 : Formgobang gb = new gobang(); /创建对象private int Se

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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