C++五子棋编写(控制台版_CMD命令框版)【简单五子棋游戏,适合初学者学习,代码有详细注释】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++五子棋Ver2.1程序+代码[带AI、悔棋等]【控制台版】这是用C++编写的一个简单五子棋游戏,带AI(电脑)、悔棋等功能。支持单人游戏(与电脑对战)和双人对战。

使用的C++知识也很简单,只需要懂基本的语法,不需要用到API。这个游戏不是图形界面的。是DOS版或者说控制台版的。

游戏的运行界面如下:

这其实是第三版,添加了悔棋,修复AI[电脑]的几个BUG,以及悔棋的一个小问题。当然了,若是还有什么BUG可以指出,我们的QQ:775904764,有问题也可以找我。

代码如下:

//--------------------------------------------------------------------------//

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

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

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

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

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

// 作者:落叶化尘 QQ:775904764

//--------------------------------------------------------------------------//

#include "五子棋类.h"

#include

#include

using namespace std;

static const char ch[11][4]={"┌","┬","┐","├","┼","┤","└","┴","┘","○","●"}; //可供选用的字符,输出棋盘或者棋子用

static int Record[15][15]={0}; //记录棋子

static int Score[15][15]={0}; //评分

static int Sum=0,Renum=0;

int main()

{

int Default[15][15]={ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,2, //空棋盘

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 };

int value[15][15]={0};

FiveChess Start;

do

{

Start.StartGame(value,Default); //开始游戏

}

while (Start.Continue); //若是要退出就修改这个值

return 0;

}

//------------------------------开始游戏------------------------------------------// void FiveChess::StartGame(int value[][15],int Default[][15])

{

Empty(value,Default); //初始化棋盘ad

ExWhile=true;

while(ExWhile)

{

Choice=MainMenu(); //调用主菜单,并把用户选择的值储存在Choice里

switch(Choice)

{

case 1:flag=1;ExWhile=false;break; //把标志设置为1,与AI对战case 2:flag=2;ExWhile=false;break; //把标志设置为2,双人对战

case 3:Select=Introduce();ExWhile=Select;Continue=false;break; //游戏说明函数

case 4:Select=Coder();ExWhile=Select;Continue=false;break; //作者介绍函数

case 5:Exit();ExWhile=false;Continue=false;break; //退出游戏函数

default:cin.fail();cin.clear();cin.sync();cout<<"输出错误,请重新输入!

\n";system("pause>nul 2>nul");ExWhile=true;break; //其它

}

}

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

{

Single(value);

}

else if (flag==2) //如果标志等于2,说明为双人游戏

{

Double(value);

}

flag=0;

}

//------------------------清空棋盘或初始化棋盘-----------------------------------// void FiveChess::Empty(int value[][15],int Default[][15]) //清空棋盘

{

for (int i=0;i<15;i++)

{

for (int j=0;j<15;j++)

{

value[i][j]=Default[i][j];

}

}

}

void FiveChess::Exit() //退出游戏

{

system("cls");

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

cout<<"│感谢您使用:简单五子棋 Ver2.1 │\n";

cout<<"││\n";

cout<<"│[游戏制作]:落叶化尘│\n";

cout<<"│[联系Q Q ]: 775904764 │\n";

cout<<"│[联系邮箱]:***************│\n";

cout<<"│[简单说明]:游戏结束界面,谢谢您的使用!│\n";

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

cout<<"感谢您的使用,谢谢!按任意键退出游戏...\n";

system("pause>nul 2>nul");

}

bool FiveChess::Introduce() //游戏介绍

{

system("cls");

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

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

cout<<"││\n";

相关文档
最新文档