- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++编写五子棋
本人写的五子棋是在控制台上面可以玩的输入时仅需要输入两个字母表示下棋的行与 列,比如下在一行二列,只需要输入 ab 即可。这里写的是遍历整个棋盘的,所以效率不算太高,但基本能实现五子棋的逻辑。如果需要 C 语言实现的,可以搜索本人的《C 语言编写五子棋》,如果需要黑白棋,可以搜索本人的《C++编写黑白棋》。
/******************************************************************** created: 2012/03/12
created: 12:3:2012 8:55
filename: e:\Visual Studio 2005\Projects\gobang\gobang\gobang.cpp file path: e:\Visual Studio 2005\Projects\gobang\gobang
file base: gobang file ext: cpp
author: terranlong
*********************************************************************
/
#include iostream using namespace std;
#define ROW 0
#define COL 1
#define ARR_DIAGONAL 2
#define ATH_DIAGONAL 3
class Gobang
{
public:
Gobang()
{
init();
}
void init()
{
count = 0;
playerid = 0; int i, j;
for (i = 0; i chessboard_size; i++)
{
for (j = 0; j chessboard_size; j++)
{
chessboard[i][j] = +;
}
}
}
void gamestart(); void print(); void input();
bool linksame(const char* head, int direction); bool judge();
bool gameover(); private:
const static int chessboard_size = 15; const static int linkcount = 5;
char chessboard[chessboard_size][chessboard_size]; int count;
int playerid;
};
void Gobang::gamestart()
{
while (!gameover())
{
system(cls); print();
input();
}
}
void Gobang::print()
{
int i, j;
printf( a b c d e f g h i j k l m n o\n); for (i = 0; i chessboard_size; i++)
{
printf(%c , i + a);
for (j = 0; j chessboard_size; j++)
{
printf(%c, chessboard[i][j]); if (j != chessboard_size - 1)
{
printf(-);
}
}
printf(\n);
}
}
void Gobang::input()
{
char ix, iy; int x, y;
printf(player %d :, playerid); scanf(%c%c, ix, iy); getchar();
x = ix - a;
y = iy - a;
while (x 0 || x = chessboard_size || y 0 || y = chessboard_size || chessboard[x][y] != +)
{
printf(input error!!\nplease input again: ); scanf(%c%c, ix, iy);
getchar(); x = ix - a;
y = iy - a;
}
chessboard[x][y] = playerid + 1; count++;
playerid = count % 2;
}
bool Gobang::linksame(const char* head, int direction)
{
int i;
if (*head == +)
{
return 0;
}
switch (direction)
{
case ROW:
for (i =
您可能关注的文档
最近下载
- 新人音版二年级音乐下册优秀教学设计《共产儿童团歌》教案.doc VIP
- 肝硬化诊治指南2025年.docx
- 初中数学新人教版八年级上册13综合与实践 确定匀质薄板的重心位置教学课件2025秋.pptx VIP
- 08【人教版英语字帖】八年级上册单词表衡水体字帖(新目标含音标).pdf VIP
- 2023年10月自考06089劳动关系与劳动法押题及答案.pdf VIP
- 新教科版小学科学实验目录五年级上册.docx VIP
- 合理用药用药班会PPT课件.pptx VIP
- 结构设计弯矩二次分配法计算(表格自带公式).xls VIP
- 规范言行从我做起主题班会.pptx
- PanelView Plus 7 Performance 终端用户手册.pdf VIP
文档评论(0)