C++五子棋编写(控制台版_CMD命令框版)【简单五子棋游戏,适合初学者学习,代码有详细注释】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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";