C++课程设计:黑白棋游戏.docx_第1页
C++课程设计:黑白棋游戏.docx_第2页
C++课程设计:黑白棋游戏.docx_第3页
C++课程设计:黑白棋游戏.docx_第4页
C++课程设计:黑白棋游戏.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目:黑白棋游戏 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹2015 年 1 月 10 日1、 需求分析 关于黑白棋的功能描述如下:运行游戏并进行初始化工作,将整个游戏区域分成纵向和横向扩展的若干个小方块,并且这些小方块是由黑棋和白棋分布于游戏区域的不同位置。玩家可以通过选取方格来对它们进行下棋的操作,直到游戏结束。游戏的整体运行效果如图1.1。图1.12、 总体设计2.1、类设计 这个游戏的主要类是游戏模式类,类名为COthelloDlg。代码如下:class COthelloDlg : public CDialog/ Constructionpublic:void GameStart();void PlayBackMusic(BOOL bCheck);void InitMenu();COthelloDlg(CWnd* pParent = NULL);/ standard constructorint m_nBlackCount;/黑子个?数yint m_nWhiteCount;/白子个?数yCChessBoard m_chess;/棋?盘对?象/ Dialog Data/AFX_DATA(COthelloDlg)enum IDD = IDD_OTHELLO_DIALOG ;/ NOTE: the ClassWizard will add data members here/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(COthelloDlg)protected:virtualvoid DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(COthelloDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnAbout();afx_msg void OnExitGame();afx_msg void OnGameStart();afx_msg void OnHelp();afx_msg void OnLevelHigh();afx_msg void OnLevelLow();afx_msg void OnLevelNor();afx_msg void OnPlayMusic();afx_msg void OnBackBtn();/AFX_MSGafx_msg void OnRecalc(WPARAM wParam, LPARAM lParam);DECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif/ !defined(AFX_OTHELLODLG_H_DAC0C8C2_DDB6_4DA7_A56E_440CDF9A626B_INCLUDED_);2.2、程序源代码及注释#includegraphics.h/*图形系统头文件*/#defineLEFT0x4b00/*光标左键值*/#defineRIGHT0x4d00/*光标右键值*/#defineDOWN0x5000/*光标下键值*/#defineUP0x4800/*光标上键值*/#defineESC0x011b/*ESC键值*/#defineENTER0x1c0d/*回车键值*/inta88=0,key,score1,score2;/*具体分数以及按键与存放棋子的变量*/charplayone3,playtwo3;/*两个人的得分转换成字符串输出*/voidplaytoplay(void);/*人人对战函数*/voidDrawQp(void);/*画棋盘函数*/voidSetPlayColor(intx);/*设置棋子第一次的颜色*/voidMoveColor(intx,inty);/*恢复原来棋盘状态*/intQpChange(intx,inty,intz);/*判断棋盘的变化*/voidDoScore(void);/*处理分数*/voidPrintScore(intn);/*输出成绩*/voidplayWin(void);/*输出胜利者信息*/*主函数*/voidmain(void)intgd=DETECT,gr;initgraph(&gd,&gr,c:tc);/*初始化图形系统*/DrawQp();/*画棋盘*/playtoplay();/*人人对战*/getch();closegraph();/*关闭图形系统*/voidDrawQp()/*画棋盘*/inti,j;score1=score2=0;/*棋手一开始得分都为0*/setbkcolor(BLUE);for(i=100;i=64-score1-score2)/*如果尝试超过空格数则停步*/MoveColor(x,y);fillellipse(x,y,15,15);break;elsecontinue;/*如果按键无效*/3 流程图开始初始化图形系统画出棋盘按键操作是按键是否为回车键?否是是否为有效位置否落棋变成自己的棋子统计黑白棋个数,输出成绩。输出胜利者信息关闭图形系统结束游戏四、设计心得体会以前也做过一次c语言课程设计,但那时候对c语言基本的知识点都不是很懂,更别说要我们编出那种图形界面的程序来。所以感觉C语言很枯燥,也总认为c语言只能编出那种黑底白字的程序。但经过这次计算机软件技术课程设计,真正使我对计算机编程培养了浓厚的兴趣。当我看到了用C语言做出的黑白棋游戏系统后,我才真正感受到了C程序设计的强大和神奇。原来C语言一样也能做出那种很漂亮的图形界面来。这让我真正认识到了学习编程的必要性。在大一的时候我就过了国二,但说实话,那基本上只是对C语言基础知识点的考查,要我们编出这样的程序来还有很远距离。虽然说这黑白棋游戏系统程序不是我自己编写出来的,但在老师的指导下,我自己查了很多资料,认认真真地读了程序,也仔细分析程序的逻辑思路。使我对C语言编程有了更深入更真切的了解,具体如下:(1)、模块化思想。虽然平常上课老听老师说要有模块化思想,但自己在编写实例中具体如何模块化就不是很清楚了。通过这次课程设计,使我切实理解了模块化思想,比如在黑白棋游戏系统中就可以分为画棋盘模块、人人对战模块、分数处理模块等,要实现哪个功能就直接读和修改对应的哪个模块,这样就大大提高了程序的可读性和易修改性。(2)、分析程序先从主函数main()入手。Main()函数是C源程序编译时的开始,从main()函数开始读函数可将其他函数的功能理解得更透彻。(3)、本次课程设计我收获最大的就是对图形库的认识和了解,平时我们编程很少用到也不知道怎么用这图形库,所以一直认为C语言编不出那种很漂亮的图形界面。通过本次课设,我学会了如何调用图形库里面的功能函数,比如调用line()画线函数、setfillstyle()设置填

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论