C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx

上传人:b****1 文档编号:905040 上传时间:2023-04-30 格式:DOCX 页数:24 大小:165.54KB
下载 相关 举报
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第1页
第1页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第2页
第2页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第3页
第3页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第4页
第4页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第5页
第5页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第6页
第6页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第7页
第7页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第8页
第8页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第9页
第9页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第10页
第10页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第11页
第11页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第12页
第12页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第13页
第13页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第14页
第14页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第15页
第15页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第16页
第16页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第17页
第17页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第18页
第18页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第19页
第19页 / 共24页
C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx

《C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx》由会员分享,可在线阅读,更多相关《C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx(24页珍藏版)》请在冰点文库上搜索。

C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释.docx

C++五子棋编写控制台CMD命令框简单五子棋游戏适合初学者学习代码有详细注释

C++五子棋Ver2.1程序+代码[带AI、悔棋等]【控制台版】

这是用C++编写的一个简单五子棋游戏,带AI<电脑)、悔棋等功能。

支持单人游戏<与电脑对战)和双人对战。

使用的C++知识也很简单,只需要懂基本的语法,不需要用到API。

这个游戏不是图形界面的。

是DOS版或者说控制台版的。

b5E2RGbCAP

游戏的运行界面如下:

这其实是第三版,添加了悔棋,修复AI[电脑]的几个BUG,以及悔棋的一个小问题。

当然了,若是还有什么BUG可以指出,我们的QQ:

775904764,有问题也可以找我。

p1EanqFDPw

代码如下:

//--------------------------------------------------------------------------//DXDiTa9E3d

//简单五子棋<控制台版)代码[Ver2.1]

//修复了AI越界的问题,简化评分函数,修复输赢判断函数的BUG。

//AI评分函数规则有部分改变,代码也更加简练。

//新增悔棋功能,仅与AI对战时可用,新增重新开始功能。

//修复悔棋的一个小BUG,修复AI随机落子部分的定义错误。

//作者:

落叶化尘QQ:

775904764

//--------------------------------------------------------------------------//RTCrpUDGiT

#include"五子棋类.h"

#include

#include

usingnamespacestd。

staticconstcharch[11][4]={"┌","┬","┐","├","┼","┤","└","┴","┘","○","●"}。

//可供选用的字符,输出棋盘或者棋子用5PCzVD7HxA

staticintRecord[15][15]={0}。

//记录棋子

staticintScore[15][15]={0}。

//评分

staticintSum=0,Renum=0。

intmain(>

{

intDefault[15][15]={0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,//空棋盘jLBHrnAILg

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,

6,7,7,7,7,7,7,7,7,7,7,7,7,7,8}。

intvalue[15][15]={0}。

FiveChessStart。

do

{

Start.StartGame(value,Default>。

//开始游戏

}

while(Start.Continue>。

//若是要退出就修改这个值

return0。

}

//------------------------------开始游戏------------------------------------------//xHAQX74J0X

voidFiveChess:

:

StartGame(intvalue[][15],intDefault[][15]>LDAYtRyKfE

{

Empty(value,Default>。

//初始化棋盘ad

ExWhile=true。

while(ExWhile>

{

Choice=MainMenu(>。

//调用主菜单,并把用户选择的值储存在Choice里Zzz6ZB2Ltk

switch(Choice>

{

case1:

flag=1。

ExWhile=false。

break。

//把标志设置为1,与AI对战dvzfvkwMI1

case2:

flag=2。

ExWhile=false。

break。

//把标志设置为2,双人对战rqyn14ZNXI

case3:

Select=Introduce(>。

ExWhile=Select。

Continue=false。

break。

//游戏说明函数EmxvxOtOco

case4:

Select=Coder(>。

ExWhile=Select。

Continue=false。

break。

//作者介绍函数SixE2yXPq5

case5:

Exit(>。

ExWhile=false。

Continue=false。

break。

//退出游戏函数6ewMyirQFL

default:

cin.fail(>。

cin.clear(>。

cin.sync(>。

cout<<"输出错误,请重新输入!

\n"。

system("pause>nul2>nul">。

ExWhile=true。

break。

//其它kavU42VRUs

}

}

if(flag==1>//如果标志等于1,说明为单人游戏

{

Single(value>。

}

elseif(flag==2>//如果标志等于2,说明为双人游戏

{

Double(value>。

}

flag=0。

}

//------------------------清空棋盘或初始化棋盘-----------------------------------//y6v3ALoS89

voidFiveChess:

:

Empty(intvalue[][15],intDefault[][15]>//清空棋盘M2ub6vSTnP

{

for(inti=0。

i<15。

i++>

{

for(intj=0。

j<15。

j++>

{

value[i][j]=Default[i][j]。

}

}

}

voidFiveChess:

:

Exit(>//退出游戏

{

system("cls">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│感谢您使用:

简单五子棋Ver2.1│\n"。

0YujCfmUCw

cout<<"││\n"。

cout<<"│[游戏制作]:

落叶化尘│\n"。

eUts8ZQVRd

cout<<"│[联系QQ]:

775904764│\n"。

sQsAEJkW5T

cout<<"│[联系邮箱]:

lxhdjwg@│\n"。

GMsIasNXkA

cout<<"│[简单说明]:

游戏结束界面,谢谢您的使用!

│\n"。

cout<<"└—————————————————————————┘\n"。

cout<<"感谢您的使用,谢谢!

按任意键退出游戏...\n"。

system("pause>nul2>nul">。

}

boolFiveChess:

:

Introduce(>//游戏介绍

{

system("cls">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│简单五子棋Ver2.1[游戏介绍界面]│\n"。

TIrRGchYzg

cout<<"││\n"。

cout<<"│[单人游戏]:

玩家和AI<人工智能)对战,AI智商不高。

│\n"。

cout<<"││\n"。

cout<<"│[双人游戏]:

可以两个玩家一起对战,可能不是很方便。

│\n"。

cout<<"││\n"。

cout<<"│[游戏方法]:

输入XY坐标落子,输入双-1悔棋。

│\n"。

cout<<"││\n"。

cout<<"│[特别提示]:

若游戏中想突然退出,按Ctrl+C即可中断。

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

cout<<"是否返回?

[Y-返回N-退出]:

"。

charchoice。

cin>>choice。

if(choice=='N'||choice=='n'>

{

cout<<"感谢您的使用,谢谢!

按任意键退出游戏...\n"。

system("pause>nul2>nul">。

returnfalse。

}

else

{

returntrue。

}

}

boolFiveChess:

:

Coder(>//作者介绍

{

system("cls">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│简单五子棋Ver2.1[作者介绍界面]│\n"。

7EqZcWLZNX

cout<<"││\n"。

cout<<"│[游戏制作]:

落叶化尘│\n"。

lzq7IGf02E

cout<<"│[联系QQ]:

775904764│\n"。

zvpgeqJ1hk

cout<<"│[联系邮箱]:

lxhdjwg@│\n"。

NrpoJac3v1

cout<<"│[简单介绍]:

游戏制作简陋,还请见谅^_^!

│\n"。

cout<<"│[附加说明]:

作者正在努力学习C++中,嘿嘿~│\n"。

cout<<"└—————————————————————————┘\n"。

cout<<"是否返回?

[Y-返回N-退出]:

"。

charchoice。

cin>>choice。

if(choice=='N'||choice=='n'>

{

cout<<"感谢您的使用,谢谢!

按任意键退出游戏...\n"。

system("pause>nul2>nul">。

returnfalse。

}

else

{

returntrue。

}

}

//-------------------------------选择主菜单-----------------------------//1nowfTG4KI

intFiveChess:

:

MainMenu(>

{

system("cls">。

//清屏fjnFLDa5Zo

system("title五子棋游戏By--落叶化尘QQ:

775904764">。

//修改窗口标题tfnNhnE6e5

system("color3f">。

//定义窗口颜色HbmVN777sL

system("modeconcols=56lines=20">。

//设置窗口大小V7l4jRB8Hs

cout<<"┌—————————————————————————┐\n"。

cout<<"│简单五子棋Ver2.1│\n"。

83lcPA59W9

cout<<"│[1]、单人游戏│\n"。

mZkklkzaaP

cout<<"││\n"。

cout<<"│[2]、双人游戏│\n"。

AVktR43bpw

cout<<"││\n"。

cout<<"│[3]、游戏介绍│\n"。

ORjBnOwcEd

cout<<"││\n"。

cout<<"│[4]、关于作者│\n"。

2MiJTy0dTT

cout<<"││\n"。

cout<<"│[5]、退出│\n"。

gIiSpiue7A

cout<<"└—————————————————————————┘\n"。

cout<<"请选择:

"。

intselect。

cin>>select。

returnselect。

//返回用户选择的值

}

//--------------------------------胜利界面--------------------------------//uEh0U1Yfmh

voidFiveChess:

:

Victory(intNum>

{

system("modeconcols=56lines=20">。

//设置窗口大小IAg9qLsgBX

system("cls">。

if(Num==1>

{

system("color1f">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│恭喜玩家1[黑棋]获得胜利!

│\n"。

WwghWvVhPE

cout<<"││\n"。

cout<<"│[胜利玩家]:

玩家1│\n"。

asfpsfpi4k

cout<<"│[所属棋子]:

黑色│\n"。

ooeyYZTjj1

cout<<"│[祝福话语]:

不错哦^_^!

恭喜您获得了胜利!

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

}

elseif(Num==2>

{

system("color2f">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│恭喜玩家2[白棋]获得胜利!

│\n"。

BkeGuInkxI

cout<<"││\n"。

cout<<"│[胜利玩家]:

玩家2│\n"。

PgdO0sRlMo

cout<<"│[所属棋子]:

白色│\n"。

3cdXwckm15

cout<<"│[祝福话语]:

恭喜您获得了胜利,再接再厉哈^_^!

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

}

elseif(Num==3>

{

system("color3f">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│恭喜您,获得了胜利│\n"。

h8c52WOngM

cout<<"││\n"。

cout<<"│[胜利玩家]:

自己│\n"。

v4bdyGious

cout<<"│[所属棋子]:

黑色│\n"。

J0bm4qMpJ9

cout<<"│[祝福话语]:

不错哦,打败了AI,恭喜!

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

}

elseif(Num==4>

{

system("color5f">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│非常遗憾,您输了!

│\n"。

XVauA9grYP

cout<<"││\n"。

cout<<"│[胜利玩家]:

AI<电脑)│\n"。

bR9C6TJscw

cout<<"│[所属棋子]:

白色│\n"。

pN9LBDdtrd

cout<<"│[祝福话语]:

加油吧,下次一定要把AI打败哦!

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

}

else

{

system("color5f">。

cout<<"┌—————————————————————————┐\n"。

cout<<"│势均力敌——平局│\n"。

DJ8T7nHuGT

cout<<"││\n"。

cout<<"│[胜利玩家]:

无[平局]│\n"。

QF81D7bvUA

cout<<"│[所属棋子]:

黑色或白色│\n"。

4B7a9QFw9h

cout<<"│[祝福话语]:

棋盘居然被走满了,不错不错~!

│\n"。

cout<<"││\n"。

cout<<"└—————————————————————————┘\n"。

}

cout<<"是否返回主界面?

[Y-返回N-退出]:

"。

charchoice。

cin>>choice。

if(choice=='N'||choice=='n'>

{

cout<<"感谢您的使用,谢谢!

按任意键退出游戏...\n"。

system("pause>nul2>nul">。

Continue=false。

}

else

{

Continue=true。

}

}

//----------------------------悔棋-------------------------------//ix6iFA8xoX

voidFiveChess:

:

Retract(int&x1,int&y1,int&x2,int&y2,intvalue[][15]>wt6qbkCyDE

{

if(Sum>=1>

{

Sum--。

}

if((x1==-1>&&(y1==-1>&&(x2==-1>&&(y2==-1>>

{

cout<<"当前无法悔棋,棋盘上没有棋子!

"。

system("pause>nul">。

}

elseif(Renum>=6>

{

cout<<"悔棋超过6次,为了公平,您不能再次悔棋!

"。

system("pause>nul">。

}

else

{

Renum++。

if(x1==0&&y1==0>{value[x1][y1]=0。

Record[x1][y1]=0。

}Kp5zH46zRk

elseif(x1==0&&y1==14>{value[x1][y1]=2。

Record[x1][y1]=0。

}Yl4HdOAA61

elseif(x1==14&&y1==0>{value[x1][y1]=6。

Record[x1][y1]=0。

}ch4PJx4BlI

elseif(x1==14&&y1==14>{value[x1][y1]=8。

Record[x1][y1]=0。

}qd3YfhxCzo

elseif(x1==14&&(y1>0&&y1<14>>{value[x1][y1]=7。

Record[x1][y1]=0。

}E836L11DO5

elseif(y1==14&&(x1>0&&x1<14>>{value[x1][y1]=5。

Record[x1][y1]=0。

}S42ehLvE3M

elseif(x1==0&&(y1>0&&y1<14>>{value[x1][y1]=1。

Record[x1][y1]=0。

}501nNvZFis

elseif(y1==0&&(x1>0&&x1<14>>{value[x1][y1]=3。

Record[x1][y1]=0。

}jW1viftGw9

else{value[x1][y1]=4。

Record[x1][y1]=0。

}

if(x2==0&&y2==0>{value[x2][y2]=0。

Record[x2][y2]=0。

}xS0DOYWHLP

elseif(x2==0&&y2==14>{value[x2][y2]=2。

Record[x2][y2]=0。

}LOZMkIqI0w

elseif(x2==14&&y2==0>{value[x2][y2]=6。

Record[x2][y2]=0。

}ZKZUQsUJed

elseif(x2==14&&y2==14>{value[x2][y2]=8。

Record[x2][y2]=0。

}dGY2mcoKtT

elseif(x2==14&&(y2>0&&y2<14>>{value[x2][y2]=7。

Record[x2][y2]=0。

}rCYbSWRLIA

elseif(y2==14&&(x2>0&&x2<14>>{value[x1][y2]=5。

Record[x2][y2]=0。

}FyXjoFlMWh

elseif(x2==0&&(y2>0&&y2<14>>{value[x2][y2]=1。

Record[x2][y2]=0。

}TuWrUpPObX

elseif(y2==0&&(x2>0&&x2<14>>{value[x2][y2]=3。

Record[x2][y2]=0。

}7qWAq9jPqE

else{value[x2][y2]=4。

Record[x2][y2]=0。

}

cout<<"每盘最多允许悔棋6次,且最多只能回到上一步!

"。

system("pause>nul">。

}

}

//-----------------------------判断用户输入的坐标合法性-------------------------//llVIWTNQFk

intFiveChess:

:

Position(int*x,int*y,intvalue[][15]>yhUQsDgRT1

{

if(cin.fail(>||*x<0||*x>=15||*y<0||*y>=15>

{

cin.clear(>。

cin.sync(>。

return1。

//返回1表示不在范围内或者输入的不是数字

}

elseif(value[*x][*y]==9||value[*x][*y]==10>

{

return2。

//存在棋子

}

else

{

return0。

//返回0表示坐标正常

}

}

//---------------------------判断该哪个玩家先走----------------------------//MdUZYnKS8I

intFiveChess:

:

NextPlayer(intvalue[][15]>

{

inti,j。

intplayer1=0,player2=0。

for(i=0。

i<15。

i++>

{

for(j=0。

j<15。

j++>

{

if(value[i][j]==10>

{

player1++。

//统计棋盘上面黑子的个数

}

elseif(value[i][j]==9>

{

player2++。

//统计棋盘上白子的个数

}

}

}

if(player1>player2||player1

{

return2。

//该玩家2走了(白子>

}

else

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2