版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<iostream>usingnamespacestd;conststaticintchessboard_size=10;//由于棋盘的输出函数,所以此程序最多支持10乘10的棋盘charch='0';//记录哪家赢intoff=0;//关闭最终程序classchess{public: chess()//构造函数 {init(); } voidinit() { playcount=0; inti,j; for(i=0;i<chessboard_size;i++)//构建由+号组成的棋盘 { for(j=0;j<chessboard_size;j++) { chessboard[i][j]='+'; } } } voidgamestart(); voidprint();//打印出棋盘voidinput(); voidjudge(); voidgameover();private: charchessboard[chessboard_size][chessboard_size]; intplayer;//以0和1表示A,B两个玩家 intplaycount;//判断有五颗棋一样的统计变量};//注意这个类定义完的分号voidchess::gamestart(){print();input();}voidchess::print(){inti,j;cout<<"0123456789"<<endl;//注意前面有一个空格字符,且每个字符相隔一个空格for(i=0;i<chessboard_size;i++){cout<<i; for(j=0;j<chessboard_size;j++) { cout<<chessboard[i][j]<<'-';//加这个'-'号,与液晶的字符显示比例有关 }printf("\n");}}voidchess::input(){charxi,yi;intx,y;if(player==0){ cout<<"请A方走棋:"; cin>>xi>>yi; x=xi-'0'; y=yi-'0'; while(x<0||x>=chessboard_size||y<0||y>=chessboard_size||chessboard[x][y]!='+')//直到输入正确就跳出 { cout<<"输入有误,请重新输入:";//条件中chessboard[x][y]!='+'是为了防止重复在同一位置下棋。 cin>>xi>>yi; x=xi-'0'; y=yi-'0'; } chessboard[x][y]='A';}if(player==1){ { if((chessboard[i+j][j]==chessboard[i+j+1][j+1])&&(chessboard[i+j][j]!='+')) { playcount=playcount+1; if(playcount==4) { flag=1;ch=chessboard[i+j][j]; } }if((chessboard[i+j][j]!=chessboard[i+j+1][j+1])&&(chessboard[i+j][j]!='+')) { playcount=0; } }playcount=0;}//对角线-1上//for(j=1;(j<chessboard_size-4)&&flag!=1;j++){for(i=0;(i<chessboard_size-1-j)&&flag!=1;i++) { if((chessboard[i][j+i]==chessboard[i+1][j+i+1])&&(chessboard[i][j+i]!='+')) { playcount=playcount+1; if(playcount==4) { flag=1;ch=chessboard[i][j+i]; } }if((chessboard[i][j+i]!=chessboard[i+1][j+i+1])&&(chessboard[i][j+i]!='+')) { playcount=0; } }playcount=0;}//****对角线1上扫描******//for(i=4;(i<chessboard_size)&&flag!=1;i++){for(j=0;(j<i+1)&&flag!=1;j++) { if((chessboard[i-j][j]==chessboard[i-j-1][j+1])&&(chessboard[i-j][j]!='+')) { playcount=playcount+1; if(playcount==4) { flag=1;ch=chessboard[i-j][j]; } }if((chessboard[i-j][j]!=chessboard[i-j-1][j+1])&&(chessboard[i-j][j]!='+')) { playcount=0; } }playcount=0;//上一组对角线如果没有出现5颗一样,就下一对角线时把playcount清零,再次判断}//******对角线1下*******//for(i=1;(i<chessboard_size-4)&&flag!=1;i++){for(j=chessboard_size-1;(j>i-2)&&flag!=1;j--) { if((chessboard[i+(chessboard_size-1-j)][j]==chessboard[i+(chessboard_size-1-j)+1][j-1])&&(chessboard[i+(chessboard_size-1-j)][j]!='+')) { playcount=playcount+1; if(playcount==4) { flag=1;ch=chessboard[i+(chessboard_size-1-j)][j]; } }if((chessboard[i+(chessboard_size-1-j)][j]!=chessboard[i+(chessboard_size-1-j)+1][j-1])&&(chessboard[i+(chessboard_size-1-j)][j]!='+')) { playcount=0; } }playcount=0;}}//judge函数完voidchess::gameover(){charagain='0';cout<<"是否再玩一局(y/n):";cin>>again;while(again!='y'&&again!='n'){cout<<"输入有误,请从新输入"; cin>>again; }if(again=='y'){ ch='0'; system("cls");}if(again=='n'){ ch='0';off=1;}}intmain(){chesslijin;while(1){lijin.init();while(ch!='A'&&ch!='B'){ lijin.gamestart(); lijin.judge(); system("cls");//c++中用这个命令来清屏 }while(ch=='A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4-1-2-Dihydroxyethyl-benzene-1-2-diol-d5-生命科学试剂-MCE
- 2-E-8-Z-11-Z-14-Z-Eicosatetraenoic-acid-生命科学试剂-MCE
- 1-Fluoronaphthalene-Standard-生命科学试剂-MCE
- 第一单元《小数乘法》(填空题篇十五大题型)单元复习讲义(知识梳理+典例精讲+专项精练)-2024-2025学年五年级数学上册(人教版)(学生版+解析)
- 《高等数学Ⅱ》试卷及答案 卷5
- 教育玩具的可持续发展
- 工程机械委托管理合同范本
- 多模态文件展示
- 疼痛术后护理
- 旅游会展企业的可持续发展路径
- 2023年公路水运助理试验检测师《道路工程》考试真题及答案
- 工程款支付及使用管理办法
- (完整word版)高考英语作文练习纸(标准答题卡)
- 佛山市南海区人民法院
- 四年级上册第三单元-习作·写观察日记课件
- 抖音短视频运营部门各岗位KPI关键绩效考核指标表
- 马工程管理学第七章知识点总结含思考题答案
- 犬类狂犬病指定免疫接种点申请表
- 钢网架制作与安装施工方案
- 工程设计报价单模板
- 种内与种间关系课件
评论
0/150
提交评论