新手井字棋程序,求帮忙。。。

逆袭LWJ 逆袭LWJ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include "stdafx.h"
#include<iostream>
using namespace std;

#define SPACE ' '

class JingZiQi
{
char juzhen[3][3];
public:
JingZiQi()
{
juzhen[3][3]={ SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, };
}
void player_move();
void computer_move();
void qipan();
char check();
};




void main()
{
char done;
done=SPACE;

JingZiQi jzq();

cout<<"这是一个井字棋游戏!"<<endl;
cout<<"你即将和电脑对抗!"<<endl;

do
{
jzq.qipan();
jzq.player_move();
done=jzq.check(); /*判断输赢*/
if (done!=SPACE) break;
jzq.computer_move();
done=jzq.check(); /*判断输赢*/

}while(done==SPACE);

if(done=="X")
cout<<"恭喜你击败了计算机!"<<endl;
else
cout<<"很遗憾,计算机赢了!"<<endl;

jzq.qipan(); /*最后棋盘的情况*/
}

void JingZiQi::player_move() /*玩家下棋的函数*/
{
int x,y;
cout<<"请输入下棋的位置:(如:2 2):";
cin>>x>>y;
x--;y--;
if (juzhen[x][y]!=SPACE) /*输入无效的下棋位置时,通过递归来再一次下棋*/
{
cout<<"无效的下棋位置,请重试"<<endl;
player_move();
}
else juzhen[x][y]='X';
}

void JingZiQi::computer_move() /*计算机下棋的函数*/
{
int t;
char *p;
p=(char*)juzhen;
for (t=0; *p!=SPACE && t<9; ++t) p++;
if (t==9)
{
cout<<"平局"<<endl;
exit(0); /*平局,游戏结束*/
}
else *p='O';
}

void JingZiQi::qipan() /*用于输出棋盘的边界*/
{
int t,i;
for (t=0; t<3; t++)
{
cout<<juzhen[t][0]<<"|"<<juzhen[t][1]<<"|"<<juzhen[t][2]<<endl;
if (t!=2)
cout<<"***|***|***"<<endl;
}
cout<<endl;
}

char JingZiQi::check() /*判断输赢的函数*/
{
int t;
char *p;
for (t=0; t<3; t++)
{
p=&juzhen[t][0];
if (*p==*(p+1) && *(p+1)==*(p+2)) return *p; /*行方向3个棋子成一条直线*/
}
for (t=0; t<3; t++)
{
p=&juzhen[0][t];
if (*p==*(p+3) && *(p+3)==*(p+6)) return *p; /*列方向3个棋子成一条直线*/
}
if (juzhen[0][0]==juzhen[1][1] && juzhen[1][1]==juzhen[2][2]) /*右斜方向3个棋子成一条直线*/
return juzhen[0][0];

if (juzhen[0][2]==juzhen[1][1] && juzhen[1][1]==juzhen[2][0]) /*左斜方向3个棋子成一条直线*/
return juzhen[0][2];

return SPACE;
}



------------------------------------------------------------------------------------

错误 1 error C2059: 语法错误 : “{”
错误 2 error C2143: 语法错误 : 缺少“;”(在“{”的前面)
错误 3 error C2059: 语法错误 : “}”
错误 4 error C2228: “.qipan”的左边必须有类/结构/联合
错误 5 error C2228: “.player_move”的左边必须有类/结构/联合
错误 6 error C2228: “.check”的左边必须有类/结构/联合
错误 7 error C2228: “.computer_move”的左边必须有类/结构/联合
错误 8 error C2228: “.check”的左边必须有类/结构/联合
错误 9 error C2446: “==”: 没有从“const char *”到“int”的转换
错误 10 error C2040: “==”: “int”与“const char [2]”的间接寻址级别不同
错误 11 error C2228: “.qipan”的左边必须有类/结构/联合


很着急啊,身边又没人帮忙。。。。。。。
...全文

相关推荐

python GUI井字棋

python实现的GUI井字棋游戏,精美的开始界面及开始按钮 游戏功能: 机器人:简单的AI人工智能算法 玩家:鼠标操作

程序员陈_明勇

【C++ 程序】 井字棋游戏(人 VS 人)

本来有一个现成的程序,只不过是老版 C++/C 的,复制进 Visual Studio 2019 会报错: 然后修改了仍然不太好用,于是决定自己写一个,耗时1.5小时。 以下是程序:(分析见程序下面): 程序 //This program is a simple tic-tac-toe game. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstddef&gt; #include &lt;stdexcept&gt; us

Teddy van Jerry

stc-b单片机项目《基于485通信的双人井字棋对战》

计算机系统设计与创新基础训练创新设计《基于485通信的双人井字棋对战》 这是《计算机系统设计与创新基础训练创新设计》课程设计,实现的是一个《基于485通信的双人井字棋对战》小游戏,你需要两根杜邦线和两块STCb学习板。今天花了十分钟写了这篇博客用于&lt;开源&gt;,时间比较仓促,希望程序能够带给读者快乐,而不是压在我电脑里尘封数年直至消失。 代码链接奉上: gitHub也可以看看: 如果您觉得我的程序不错,可以留下一个赞 一.设计概述: 1.设计目的 为了进一步熟悉单片机开发,学习单片机项目

飞翔的哈士奇

c++ ten超级井字棋程序

使用mcts算法的近似ai,能够对战ten(超级井字棋),能够输出胜率和调整计算难度。超级井字棋:9个九宫格,每个玩家落子的格子由另一个玩家的落子决定。 玩家在任意一个九宫格井字棋胜利则占领这个九宫格,最终在9个九宫格中完成井字棋获胜。

Phantomlsh

人工智能实验报告——井字棋(一字棋)

人工智能实验报告,井字棋的,有源代码的,截图

zhy2400
评论 4
收藏 已收藏
分享
返回顶部
逆袭LWJ
C++ 语言 65,214 成员 250,514 内容