C语言实现三子棋游戏 代码+思路+电脑下棋算法

这篇博客介绍了如何使用C语言编写一个三子棋游戏,包括游戏规则、棋盘操作函数、玩家与电脑交替下棋的流程。电脑下棋策略包括尝试获胜和阻止玩家获胜,通过搜索算法确定最佳落子位置。同时,实现了胜利与平局的判断功能。代码已上传至GitHub供参考。
摘要由CSDN通过智能技术生成

C语言实现三子棋游戏 代码+思路+电脑下棋算法
重点:
当检测到电脑已经两子连续时,将会尝试获得胜利。
在检测到玩家即将胜利(连城两子)时,进行拦截
尝试胜利的优先级高于拦截,意味着如果玩家不能再下一步截断电脑连续的两子,下一回合中将会被击败。
源码:
GitHub链接
https://github.com/SWQXDBA/Sanzi-chess/tree/main/sanziqi
在这里插入图片描述
其中

void clear(char board[H_max][L_max], int H, int L);//清空棋盘
void printboard(char board[H_max][L_max], int H, int L);//打印棋盘
void printmenu();//打印游戏菜单选项
void computerplay(char board[H_max][L_max], int H, int L);//电脑下棋
void search(char board[H_max][L_max], int X, int Y, int H, int L, char ch, char ch2);//核心算法:用于寻找电脑下棋的位置,会把找到的位置传给X和Y;
void putBoard(char board[H_max][L_max],char ch, int x, int y);/把棋子放置到某个位置,ch表示棋子,其中玩家为‘*’,电脑为‘#’;
char isWin(char board[H_max][L_max], int H, int L);判断是否胜利
int isFulled(char board[H_max]判断是否填满棋盘(平局)

main函数部分:
在这里插入图片描述
注意,这里使用了一个int类型来接收getchar()的字符,因为scanf("%d".&option),如果玩家输入了一个非字符的东西会出错
如果像上图这样写,则
在这里插入图片描述
但是如果写成scanf并且尝试接收一个int,如
在这里插入图片描述
在这里插入图片描述
出现死循环
此问题也可以通过加入getchar()来解决,比如

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值