新手求助!!!井字游戏编程

lg257 2012-06-27 12:56:31
我刚刚学c++,有很多地方都很菜,老师布置作业让我们编写一个井字游戏的程序,求各位大神帮我理理思路吧~~~
我自己写了一点点,但是思路很乱,求助!!!万分感谢!!!
Psudocode
1.展示游戏说明
2.用户选择游戏级别e.g.level 1 or level 2
3.初始棋盘格 8|3|4
----------
1|X|9
----------
6|7|2
(电脑走第一步,X代表电脑走的,O代表用户走的)
4.While 没有人赢或者不是平局
if 用户的选择机会
human move //用户选择
update board with human move//更新棋盘
otherwise
computer's move//电脑选择
<computer's strategy:电脑策略
1. 电脑选择最优路线
2. 电脑屏蔽用户最优路线
3. 如果以上两种都不成立,则电脑随机选择
update board with computer move//更新棋盘
display board
switch turns
Note: 横竖斜线相加等于15; 电脑判断最优策略: e.g. 如果电脑已选择8和3,则最优策略为15-(8+3)=4;
5.End game/输出棋盘

Function prototype

void welcomeScreen()
void displayBoard()
void userInput()
void resultScreen()

void welcomeScreen()
{
cout<<"Welcome to play tic tac toe 井字游戏"<<endl;


}

void displayBoard()
{
cout<<endl;cout<<endl;
cout<<"8 "<<8<<" "<<'|'<<"3 "<<3<<" "<<'|'<<"4"<<4<<endl;
cout<<" -----------"<<endl;
cout<<" 1"<<1<<" "<<'|'<<" 5"<<"X"<<" "<<'|'<<"9 "<<9<<endl;
cout<<" -----------"<<endl;
cout<<"6 "<<6<<" "<<'|'<<"7 "<<7<<" "<<'|'<<"2 "<<2<<endl;
cout<<endl;cout<<endl;
}

int main()
{
int usemove[4] ={0};
int compmove[4]={0};
int useOpp[4]={0};
int compOpp[4]={0};
char board[9]={‘8’,‘3’,‘4’,‘1’,‘5’,‘9’,‘6’,‘7’,‘2’};
int magic[9]=;
int level=0;

welcomeScreen();
cout<<"选择游戏级别level 1(简单) or 2(困难):"<<endl;
cin>>level;

switch (level)
case 1:
displayBoard();
...全文
204 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
houmin0036 2012-06-28
  • 打赏
  • 举报
回复
这个题我也遇到过 不过我没懂 但是有答案 需要吗
JiOng_JiAng 2012-06-28
  • 打赏
  • 举报
回复
去年写过。。不过用openGL画了界面的 http://download.csdn.net/detail/jiong_jiang/3727322
主要部分可以看下。
说下设计

变量 游戏结束否?
变量 棋盘信息,可以是一个9个short的数组,其中只有1 2 3,分别表示该格 被电脑占了,被人占了,空着

下棋(传入下哪个地方)
{
重置数组信息中下的地方的值()
清屏()
按照数组信息重绘()
}

赢了(传入谁赢了)
{
清屏 显示谁赢了。
游戏结束状态置为 true
}

判断)
{
//此时有如下几种赢的可能 左上到右下三个连 左下到右上 , 横着三个 竖着三个,供八种情况
左上格子有人下了,可以左上到右下连,横着一种 ,竖着一种,分别判断,有没有自己的子,如果三种道路中有两颗自己的子,下第三课(此时调用画图函数,再调用赢了函数,传入电脑赢了) 两颗人的判断第三颗,如果第三颗也是人的(调用赢了的函数,传入人赢了。)若没下则下第三颗(此时调用下棋函数!)。都不是,判断上方中间,此时上方中间只有一种情况可以连三子,仍然是两子相同的规则继续。。如此下去其实只要判断4颗子就能判断完8中情况。

过程完了还没下,就随便选吧。
}

主函数
{
while(!结束状态)
{
判断()
人下()
{
等输入
调用下棋(传入输入)
}

}

}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧