版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1课程设计说明书五子棋游戏TheGameofGobang学院名称:机械工程学院专业班级:测控10xx学生姓名:江x指导教师姓名:张xx指导教师职称:副教授2012年6月
目录第一章需求分析 51.1系统概述 51.1.1概述: 51.2系统运行环境 51.2.1运行环境 51.3功能需求描述 61.3.1功能需求 6第二章总体设计 62.1开发与设计的总体思想 62.1.1总体设计思路 62.1.2屏幕的组成 72.1.3形状的组成 82.1.4形状的统一 8第三章概要设计 93.1系统流程图 93.2软件功能模块 103.3系统功能模块 11第四章详细设计 114.1.界面的设计 114.1.1总体界面的设计 114.1.2界面棋子的设计 114.2.显示界面的准备 134.2.1在窗体类中添加存放黑白棋两维数组和背景棋盘、黑棋、白棋位图对象 134.2.2在窗体构造函数中初始化wb,装入棋盘、黑棋、白棋位图 134.3.显示棋盘和棋子代码 134.4.轮流下子代码 144.5.判断输赢 174.5.1判断是否白棋胜代码 174.5.2判断是否黑棋胜代码 184.5.3判断是否平局代码 194.6.悔棋 194.7.重新开始 204.8.背景音乐 214.9.保存读取游戏文件 214.9.1保存文件: 224.9.2读取文件: 23第五章测试分析 24结论和心得体会 25致谢 26参考文献: 27
课程设计任务书课程设计目的课程设计是工科各专业的主要实践性教学环节之一,是围绕一门主要基础课或专业课,运用所学课程的知识,结合实际应用设计而进行的一次综合分析设计能力的训练。课程设计旨在培养学生在本课程范围内,初步掌握解决实际应用问题时所应具有的查阅资料、综合运用所学知识的能力,为课程设计及今后从事专业工作打下基础。课程设计的内容及要求利用所学的面向对象及C++编程知识和技巧,通过布置具有一定难度的程序设计题目,并且要求学生独立完成所布置题目,在分析设计过程中,要求学生养成良好的编程习惯,学会分析简单的实际问题,并能利用所学的知识建立系统的逻辑结构,学会简单的调试技巧和方法。根据系统的功能要求,要求学生逐步完成应用程序的设计,具体要求为:1、按规定的时间及要求上机。2、设计方案正确,正确划分所选课题的系统功能模块。3、系统设计要尽量实用,数据与功能分析详细。4、要求C++编码简洁、稳定、高效。5、独立查阅资料,认真书写课程设计说明书。进度安排此次课程设计时间为两周,分五个阶段完成:1、分析设计阶段:学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。这一阶段前第1-3天完成。2、编程调试阶段:根据设计分析方案编写C++代码,然后调试该代码,实现课题要求的功能。这一阶段在第4-7天完成。3、总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编程测试的步骤和内容。这一阶段在第8-9天完成。4、考核阶段。这一阶段在第10天完成。课程设计说明书要求课程设计说明书包括课程设计的目的、意义和任务,软件开发工具介绍、任务分析、总体设计、详细设计、编程、调试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。具体格式参看《江苏大学课程设计说明书写作规范》课程设计题目:设计一个五子棋游戏上机时间及地点地点:计算中心NA1NA2上机时间:19周星期四1234节星期五12345678节20周星期一5678节 星期二12345678节 星期三1234节 星期四12345678节星期五1234节答辩时间20周星期六
五子棋游戏摘要此课程设计的目的是为了达到熟练掌握C++语言的基本知识和C++调试技能;基本掌握面向对象程序设计的基本思路和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题;培养综合利用C++语言进行程序设计的能力,主要是培养利用系统提供的标准图形函数进行创新设计。该游戏软件在Windows系统为玩家提供传统五子棋游戏的基本功能,在这简单的五子棋中,玩家通过鼠标进行两个人的游戏。游戏的主战场为15行15列的棋盘,初始状态棋盘上无落子,进入游戏后,默认黑棋先下,也可由玩家选择先下的棋子,然后轮流落子,一旦有一方的棋子在某一方向上构成连续的五个棋子,则该方胜利,游戏结束并重新开始,如果有输赢,则输出谁胜,否则,输出平局的信息框。游戏还有悔棋和重新开始的的功能。另外,在游戏中还有背景音乐,运行时自动播放,也可通过工具栏按钮关闭。还可以保存和读取游戏文件功能。关键词:五子棋;视窗操作系统;悔棋;双人游戏。TheGameofGobangAbstractThiscourseisdesignedinordertomasterthebasicknowledgeofthec++languagetestingskills;andc++Basicgraspofobjectorientedprogrammingbasictrainofthoughtandmethod;Canuseofmyknowledgeofthebasicknowledgeandskills,solvesimpleobject-orientedprogramdesignproblem;Usingc++languagetrainingcomprehendsiveprogramdesignability,ismainlyusethesystemtoprovidethetrainingofstandardgraphicsfunctionsofinnovationdesign.ThisgamesoftwareonWindowssystemforplayerswithtraditionalrenjugame,thebasicfunctionofinthissimplerenjuplayersthroughthemouse,twopersonalgame.Themainbattlefieldgamesforline15to15listedintheboard.Thegameisover,ifaloser,theoutputwhowins,otherwise,theoutputofthedrawinformationbox.Keywords:Gobang;WindowsSystem;Takeback;thegameofTwopeopleplaying引言随着经济时代的发展,人们的精神压力越来越大,精神上得不到应有的放松,精神生活得不到极大的满足,随着计算机技术的飞速发展,计算机已逐渐成为人们办公不可或缺的工具,因此及时的开发一些应用于计算机上的小型游戏软件,以供人们在办公的闲暇时间得到充分的休闲娱乐。而棋类因为其兼具动脑并且娱乐的双重功效,并且十分符合现代式生活,因此已经得到越来越多人的欢迎,为此我们开发一个简单的五子棋游戏,开发此五子棋游戏软件的目的,主要是供办公人员与同事一起休闲娱乐,增进友谊、减轻疲劳,以提高工作效率,创造更多的社会财富,造福人类。查阅有关程序设计的案例资料,进一步理解程序设计模块化的思想,并利用此思想,根据对程序设计课程的学习,编写一个简单的游戏软件系统。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。在下面的各章中我们将以开发一个五子棋游戏为例,谈谈其开发过程和所涉及到的问题及解决方法。第一章需求分析1.1系统概述1.1.1概述:本程序是一款棋类益智游戏程序,名为五子棋游戏,是采用C语言编写的可在WINDOWS系统下运行的娱乐游戏平台。该程序面向广大棋类游戏的爱好者,能够提供方便,实现基本智能控制的游戏环境。棋盘由若干网格构成,初始状态棋盘上无落子,玩家可以通过鼠标在棋盘的相应位置下子,一方为白色,另一方为黑色,先下的为黑子。游戏过程中,一旦有一方的棋子在某一方向上先构成连续的五个棋子,不论横、竖或斜,就会在屏幕上显示是谁赢了比赛。1.2系统运行环境1.2.1运行环境(1)硬件环境。本系统适用于那种Inter386以上计算机,内存容量为128M,应配备键盘、鼠标、显示器等外部设备。(2)软件环境。本系统的设计采用VisualC++6.0编写。在WindowsXPSP2环境下测试通过。(3)只要计算机具有VisualC++6.0,本游戏软件在Windows平台下都可以运行。1.3功能需求描述1.3.1功能需求五子棋是一种大众喜爱的游戏,其规则简单,变化多端,非常富有趣味性何消遣性,是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。近来随着计算机的快速发展,各种棋类游戏被纷纷请进了电脑,使得那些喜爱下棋,又常常苦于没有工具的棋迷们能随时过足棋瘾。在这里我也设计了一个较简单的五子棋游戏,这个游戏,不仅可以满足游戏爱好者对游戏的要求,同时我们增加了美观因素,让游戏有一个比较美观的界面,满足我们游戏爱好者的视觉要求,同时有悔棋和重新清盘开始的功能,更加方便了玩家的操作和游戏的有趣性。同时,这个游戏还增加了背景音乐的功能,让玩家在玩游戏的同时还可以聆听音乐,使身心放松,如果不需要,也可以通过菜单栏或工具栏中的按钮将其关闭。另外,也可以保存和读取游戏文件。第二章总体设计2.1开发与设计的总体思想2.1.1总体设计思路棋盘设计为15*15格,初始状态棋盘的为空,玩家黑子先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束并重新开始(连成五子的一方获胜,下满棋盘为和棋)。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,用坐标表示位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表黑棋,2代表白棋。这样程序的主要工作是接收棋手鼠标按键操作,棋手用鼠标控制光标移动,按键表示落子。一旦接收到按键,说明棋手落子,先判断是否是有效位置,也就是说已经有棋子的位置不能重叠落子。落子成功后,马上判断该棋盘上是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。按确认后,自动调用清盘函数,此时清盘重新开始,由另一家先走。在游戏中,如果玩家悔棋,则按下悔棋按钮,调用悔棋函数,将刚下的棋去掉,重下一子。按下重新开始菜单,可清盘使游戏重新开始。2.1.2屏幕的组成一个游戏一定要有一个界面供游戏者对游戏控制。这个界面中要包含让游戏者更加清楚游戏状态的信息,比如,白方要下子时,必须要先看一看所有黑子的排列情况,决定是防守还是进攻,这关系着玩家要如何放置自己的棋子,让整体有个更加的布局,有利于游戏的进行。此游戏的屏幕由15行15列的网格和菜单栏、工具栏组成,背景是一张棋盘图,棋盘图和棋子图如下图:2.1.3形状的组成每一种形状都是由五个棋子组成,比如●●●●●或○○○○○由五个棋子排列而成。2.1.4形状的统一棋子的排列,如:●●●●●等共有8种形状(黑白的形状归为不同的形状)。如图形状:黑棋的四种情况:●●●●●●○○○○●○○○○○○○○●○○○○○●○○○○○●○○○○○○●○○○○○○●○○○○○○●○○○○●○○○○○○○●○○○○○○○●○○●○○○○○○○○●○○○○○○○○●●○○○○白棋的四种情况:○○○○○○●●●●○●●●●●●●●○●●●●●○●●●●●○●●●●●●○●●●●●●○●●●●●●○●●●●○●●●●●●●○●●●●●●●○●●○●●●●●●●●○●●●●●●●●○○●●●●第三章概要设计3.1系统流程图系统流程图是对系统的大致流程进行描述,本游戏的系统流程图如下:游戏开始游戏开始选择先下棋子(默认黑棋先下)黑白子交替落子判断是否连成五子或棋盘满Y游戏结束悔棋N重新开始江苏大学测控专业编程及软件应用课程设计说明书3.2软件功能模块本游戏的软件功能模块如下:五五子棋界面及显示模块播放音乐模块轮流下子模块块胜负判断模块悔棋模块重新开始模块保存读取游戏文件模块3.3系统功能模块系统功能模块是对系统的大致功能进行描述,本游戏的系统功能模块如下:五子棋游戏功能五子棋游戏功能两人基本游戏功能悔棋功能重新开始功能播放背景音乐功能输赢输出保存读取功能第四章详细设计根据上面所介绍的本系统的各个模块及其需要实现的功能,下面详细设计如下:4.1.界面的设计4.1.1总体界面的设计程序界面程序在启动运行时,系统会调用在资源视图中导入的围棋背景图片,使程序界面更加友好,在使用上给用户一种直观方便的感觉。4.1.2界面棋子的设计在资源视图中导入围棋的黑棋图片、白旗图片,使下子时调用此图片,使游戏更加直观有趣。同时在窗口视图中添加显示透明色图片函数,是棋子图片更加逼真有趣。显示透明色图片函数如下所示://显示透明色函数voidPutBitmap(CDC*pDC,intx,inty,CBitmap*pBitmap,COLORREFcolor){COLORREFoldColor;CBitmapbmAndBack,bmAndObject,bmAndMem,bmSave;CDC memDC,backDC,objectDC,saveDC,pieceDC;BITMAPbm;pBitmap->GetBitmap(&bm);intnWidth=bm.bmWidth,nHeight=bm.bmHeight; memDC.CreateCompatibleDC(pDC);backDC.CreateCompatibleDC(pDC);objectDC.CreateCompatibleDC(pDC);saveDC.CreateCompatibleDC(pDC);pieceDC.CreateCompatibleDC(pDC);bmAndBack.CreateBitmap(nWidth,nHeight,1,1,NULL);bmAndObject.CreateBitmap(nWidth,nHeight,1,1,NULL);bmAndMem.CreateCompatibleBitmap(pDC,nWidth,nHeight);bmSave.CreateCompatibleBitmap(pDC,nWidth,nHeight);backDC.SelectObject(&bmAndBack);objectDC.SelectObject(&bmAndObject);memDC.SelectObject(&bmAndMem);saveDC.SelectObject(&bmSave);pieceDC.SelectObject(pBitmap);saveDC.BitBlt(0,0,nWidth,nHeight,&pieceDC,0,0,SRCCOPY);oldColor=pieceDC.SetBkColor(color);objectDC.BitBlt(0,0,nWidth,nHeight,&pieceDC,0,0,SRCCOPY);pieceDC.SetBkColor(oldColor);backDC.BitBlt(0,0,nWidth,nHeight,&objectDC,0,0,NOTSRCCOPY);memDC.BitBlt(0,0,nWidth,nHeight,pDC,x,y,SRCCOPY);memDC.BitBlt(0,0,nWidth,nHeight,&objectDC,0,0,SRCAND);pieceDC.BitBlt(0,0,nWidth,nHeight,&backDC,0,0,SRCAND);memDC.BitBlt(0,0,nWidth,nHeight,&pieceDC,0,0,SRCPAINT);pDC->BitBlt(x,y,nWidth,nHeight,&memDC,0,0,SRCCOPY);pieceDC.BitBlt(0,0,nWidth,nHeight,&saveDC,0,0,SRCCOPY);}4.2.显示界面的准备4.2.1在窗体类中添加存放黑白棋两维数组和背景棋盘、黑棋、白棋位图对象intwb[15][15];CBitmapBoard,Black,White; //背景棋盘、黑棋、白棋位图对象4.2.2在窗体构造函数中初始化wb,装入棋盘、黑棋、白棋位图 for(inti=0;i<15;i++) for(intj=0;j<15;j++) wb[i][j]=0; //零表示空、1表示黑棋、2表示白棋 Board.LoadBitmap(IDB_BITMAP1); //装入背景位图 Black.LoadBitmap(IDB_BITMAP2); //装入黑棋位图 White.LoadBitmap(IDB_BITMAP3); //装入白棋位图4.3.显示棋盘和棋子代码在窗口OnDraw函数中添加显示棋盘和棋子代码voidCChessView::OnDraw(CDC*pDC){ CChessDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); CDCmem; mem.CreateCompatibleDC(pDC); mem.SelectObject(&Board); pDC->BitBlt(0,0,535,536,&mem,0,0,SRCCOPY); //绘制棋盘 for(inti=0;i<15;i++) //绘制棋子 for(intj=0;j<15;j++) if(wb[i][j]==1) PutBitmap(pDC,5+i*35,7+j*35,&Black,RGB(255,255,255)); elseif(wb[i][j]==2) PutBitmap(pDC,5+i*35,7+j*35,&White,RGB(255,255,255)); //TODO:adddrawcodefornativedatahere}4.4.轮流下子代码voidCFivechessView::OnLButtonDown(UINTnFlags,CPointpoint){ //TODO:Addyourmessagehandlercodehereand/orcalldefault if(RightORLet==0)//如果鼠标状态为0,黑棋先下 { intx=(point.x-5)/35,y=(point.y-7)/35; //计算坐标 if(x<15&&y<15) //点击鼠标的位置在棋盘内 if(wb[x][y]==0)//且该位置还没有棋子 { for(inti=0;i<15;i++) for(intj=0;j<15;j++) if(jl[i][j]==count) a[i][j]=0; wb[x][y]=1;//设置成黑棋 a[x][y]=1; count++; jl[x][y]=count; CDC*pDC; pDC=this->GetDC(); PutBitmap(pDC,5+x*35,7+y*35,&Black,RGB(255,255,255));//显示该棋子 PutBitmap(pDC,5+x*35,7+y*35,&Red,RGB(255,255,255)); CView::OnLButtonDown(nFlags,point); if(heisheng(wb)==1) { this->MessageBox("黑子胜","完成",MB_OK); OnStart(); } if(ping(wb)==1) { this->MessageBox("平局","完成",MB_OK); OnStart(); } RightORLet++;//鼠标状态变为1 } } else//如果鼠标状态为1,则下白棋 { intx=(point.x-5)/35,y=(point.y-7)/35; //计算坐标 if(x<15&&y<15) //点击鼠标的位置在棋盘内 if(wb[x][y]==0)//且该位置还没有棋子 { for(inti=0;i<15;i++) for(intj=0;j<15;j++) if(jl[i][j]==count) a[i][j]=0; wb[x][y]=2; //设置成白棋 a[x][y]=2; count++; jl[x][y]=count; CDC*pDC; pDC=this->GetDC(); PutBitmap(pDC,5+x*35,7+y*35,&White,RGB(255,255,255));//显示该棋子 PutBitmap(pDC,5+x*35,7+y*35,&Green,RGB(255,255,255)); CView::OnLButtonDown(nFlags,point); if(baisheng(wb)==1) { this->MessageBox("白子胜","完成",MB_OK); OnStart(); } if(ping(wb)==1) { this->MessageBox("平局","完成",MB_OK); OnStart(); } RightORLet--;//鼠标状态变为0 } }}4.5.判断输赢此功能用来判断当某一方下完子后在八个方向上是否有连成五个子的可能性,若连成五子则执此棋子方获胜;或者棋盘下满为和局。4.5.1判断是否白棋胜代码 intCFivechessView::heisheng(inta[15][15]){ inti,j;//判断横着的5个是否都相等 for(i=0;i<15;i++) for(j=0;j<11;j++) {if(a[i][j]==1&&a[i][j+1]==1&&a[i][j+2]==1&&a[i][j+3]==1&&a[i][j+4]==1) return1; } for(j=0;j<15;j++)//判断竖着的5个是否都相等 for(i=0;i<11;i++) {if(a[i][j]==1&&a[i+1][j]==1&&a[i+2][j]==1&&a[i+3][j]==1&&a[i+4][j]==1) return1; } for(i=0;i<11;i++)//判断左斜5个 for(j=0;j<11;j++) {if(a[i][j]==1&&a[i+1][j+1]==1&&a[i+2][j+2]==1&&a[i+3][j+3]==1&&a[i+4][j+4]==1) return1; } for(i=0;i<11;i++)//右斜5个 for(j=14;j>=4;j--) {if(a[i][j]==1&&a[i+1][j-1]==1&&a[i+2][j-2]==1&&a[i+3][j-3]==1&&a[i+4][j-4]==1) return1; } return0;}4.5.2判断是否黑棋胜代码intCFivechessView::baisheng(inta[15][15]){ inti,j;//判断横着的5个是否都相等 for(i=0;i<15;i++) for(j=0;j<11;j++) if(a[i][j]==2&&a[i][j+1]==2&&a[i][j+2]==2&&a[i][j+3]==2&&a[i][j+4]==2) return1; for(j=0;j<15;j++)//判断竖着的5个是否都相等 for(i=0;i<11;i++) if(a[i][j]==2&&a[i+1][j]==2&&a[i+2][j]==2&&a[i+3][j]==2&&a[i+4][j]==2) return1; for(i=0;i<11;i++)//判断左斜5个 for(j=0;j<11;j++) if(a[i][j]==2&&a[i+1][j+1]==2&&a[i+2][j+2]==2&&a[i+3][j+3]==2&&a[i+4][j+4]==2) return1; for(i=0;i<11;i++)//右斜5个 for(j=14;j>=4;j--) if(a[i][j]==2&&a[i+1][j-1]==2&&a[i+2][j-2]==2&&a[i+3][j-3]==2&&a[i+4][j-4]==2) return1; return0;}4.5.3判断是否平局代码intCFivechessView::ping(inta[15][15]){ for(inti=0;i<15;i++) for(intj=0;j<15;j++) { if(a[i][j]==0)//当棋盘全部子都不是0时才能return1,即棋盘已下满 return0; } return1;}4.6.悔棋此功能是体现一种人性化,在菜单栏里添加悔棋按钮,当某一方玩家觉得此步走错了,按下悔棋按钮,调用悔棋函数,棋盘上就会自动消除玩家刚下的一步棋,实行悔棋功能。悔棋代码如下:voidCFivechessView::OnFileHuiqi(){ //TODO:Addyourcommandhandlercodehere if(count!=0) { for(inti=0;i<15;i++) for(intj=0;j<15;j++) if(jl[i][j]==count) { wb[i][j]=0; a[i][j]=0; } count--; switch(RightORLet) { case1: RightORLet=0; break; case0: RightORLet=1; break; } OnDraw(GetDC()); } else this->MessageBox("无法悔棋","完成",MB_OK);}4.7.重新开始在菜单栏里添加重新开始按钮,当按下重新开始按钮时,调用重新开始函数,对棋盘进行清盘处理,然后游戏重新开始。重新开始代码如下:voidCFivechessView::OnFileRestart()//重新开始(用按钮){ for(inti=0;i<15;i++) for(intj=0;j<15;j++) { wb[i][j]=0; a[i][j]=0; } RightORLet=0; count=0; OnDraw(GetDC()); //TODO:Addyourcommandhandlercodehere}4.8.背景音乐首先将音乐转为wav类型,然后插入到资源,在fivechess.cpp中添加头文件#include<mmsystem.h>#pragmacomment(lib,"Winmm.lib")在构造函数中添加如下代码:{PlaySound((LPCTSTR)IDR_WAVE1,AfxGetInstanceHandle(),SND_RESOURCE|SND_ASYNC);}其中IDR_WAVE1为音乐文件的地址。4.9.保存读取游戏文件理论上,这个游戏并无须保存,因为它确实太小了。事实上,这个游戏有保存的功能,由于我们学习的需要。这个游戏的保存,与其说是学习文件的保存,不如说是我们学习字符串的操作。另外,这个附加的内容并不是为了当前的学习而添加的,而是为了后面的学习和应用而铺垫的。4.9.1保存文件:保存文件函数是一个菜单选项。它的作用就是保存当前游戏的状态。首先,我们应该为我们自己的文件定义一个后缀名:.wb;接着是打开保存文件的公共对话框,如果确定,则表示保存,那么就先获取文件名,然后按照一定的顺序保存各个点的数组的值,最后保存当前是哪种颜色下棋。voidCFivechessView::OnFileSave(){ //TODO:Addyourcommandhandlercodehere //设置保存的文件,后缀名wb CFileDialogdlg(FALSE,"wb",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"(*.WB)|*.wb|AllFiles|*.*||",this); //如果公共类对话框为确定 if(dlg.DoModal()==IDOK)//获取文件名 dlg.GetFileName();//否则,退出 else return;//字符串变量 CStringstr; inti,j; CStdioFilefile;//如果有问题,退出 if(file.Open(dlg.GetFileName(),CFile::modeCreate|CFile::modeWrite|CFile::typeText)==0) { AfxMessageBox("saveerror!"); return; } //循环把棋盘数组的值写进文件 for(i=0;i<15;i++) for(j=0;j<15;j++) { if(wb[i][j]==1) file.WriteString("1\n"); if(wb[i][j]==0) file.WriteString("0\n"); if(wb[i][j]==2) file.WriteString("2\n"); } if(RightORLet==1) //保存当前下棋颜色 file.WriteString("2\n"); else file.WriteString("1\n"); file.Close(); //关闭文件}4.9.2读取文件:读文件就是把我们以前保存的文件打开,读取当前打开文件的内容,并给数组赋值使和文件内容相同,然后可以继续进行游戏。voidCFivechessView::OnFileOpen(){ //TODO:Addyourcommandhandlercodehere CFil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年春季学期初中八年级生物备课组三月期中复习计划模板
- 2026年春季学期校园消防三月安全检查与演练计划
- 汕尾市2026年中考适应性考试化学试题(含答案解析)
- 2024-2025学年中级软考通关考试题库含答案详解(考试直接用)
- 河南省鹤壁市2026年中考化学四模试卷(含答案解析)
- 2026年春季学期学校三月校园反恐防暴工作方案
- 2024-2025学年度临床执业医师每日一练试卷(易错题)附答案详解
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》考试综合练习含答案详解【基础题】
- anti-HIV-agent-1-生命科学试剂-MCE
- 财税实操-企业所得税筹划方案指引
- 胰岛素抵抗病症典型症状及护理指南
- 水专题测试卷-高考地理二轮复习讲练测(解析版)
- 2025年10月自考05677法理学试题及答案含评分参考
- 2025年专升本旅游管理历年真题汇编试卷及答案
- 2026年辽宁医药职业学院单招职业适应性测试必刷测试卷及答案1套
- 招投标实务培训
- 2025年北京省考行测笔试真题(附含答案)
- EP28-A3c 临床实验室中参考区间的定义、建立和验证(中文下载)
- 国家能源集团笔试试题及答案
- 低压电容柜维护手册
- 2025年医保政策培训试题及答案
评论
0/150
提交评论