黑白棋游戏源代码分析

本文介绍了黑白棋游戏的规则,分析了游戏的最优策略,并提供了源代码实现。游戏过程中,玩家轮流放置棋子,若能夹住对方棋子则将其翻转。当无法放置棋子时游戏结束。通过递归模拟对弈,判断获胜方或平局。难点在于计算最优走棋位置及吃棋子的逻辑。
摘要由CSDN通过智能技术生成
 

 

游戏规则:

在一个8x8的棋盘有两个玩家,他们轮流放入分别放入白色和黑色的棋子。

当一个玩家在空棋子的位置放入一个棋子,我们检查放入棋子的8个方向 上 下 左 右 左上 左下 右上 右下,如果这8个方向上有自己这方的棋子夹的全是对方的棋子,则对方的棋子将被吃掉,变成我方的棋子。

当旗盘中不能放入棋子的时候游戏结束。如下图,黑方先走,然后是白方走

 

有用户输入8x8旗盘的格局和哪一方先走,请编写一个程序输出哪一方最后能够赢得游戏,或是平局。

 

输入:

有一个8x8的旗盘(‘b’代表黑色的棋子,‘w’代表白色的棋子,’e’代表空棋子),之后输入谁先走。当输入”endofinpur”(没有了格局)时结束游戏;

在每一种格局里面,最多只有10个空棋子。

 

输出:

每一种格局都用一行输出赢的一方(黑方或是白方)或是平局。确定每一行都没有空棋子。

 

例如输入:

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

black

wwwwwwww

wwwwwwww

wwwwwwww

wwwwwwww

bbbbbbbb

bbbbbbbb

bbbbbbbb

bbbbbbbb

white

endofinput

 

输出:

White

Draw

 

 

 

源代码:

#include"stdio.h"
#include"string.h"
int  kong[10][2], kong_num = 0,    //kong[][]存储旗盘中所有空棋子的位置,kong_num存储空棋子的数目
     yidong[8][2]={
  {-1, -1},{-1, 0},{-1, 1},{0, 1},{1, 1},{1, 0},{1, -1},{0, -1}}; //yidong[][]存储移动的8个方向

void panduan(char qi[8][8]) //通过检查白棋个数判断黑白棋
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值