栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

三子棋实现思路

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三子棋实现思路

三子棋实现思路

—自己做完后测试了一遍,基本玩法没有大问题(在菜单栏选择的时候如果输入超出预期会有bug 和上一个项目一样doge),源码在最后的链接。

提示:源码放在最后,因为写这项代码的时候我的电脑编码格式进行了设置,所有直接复制代码的话程序运行结果可能会乱码。因为我把电脑编码格式改回默认之后运行也乱码了

文章目录

三子棋实现思路实现思路部分代码

1、判断落子区域2.判断游戏是否结束


实现思路

1、玩家可以选择先手还是后手,玩家的棋子是‘@’,机器的棋子是’*’,目前没有棋子用‘_’表示。
2、游戏开始后初始化并展示棋盘。
3、注意每一步落子之后都要判断游戏是否结束并展示最新的棋盘。
4、注意落子时要判断位置是否在棋盘外以及是否该区域已有棋子。

部分代码 1、判断落子区域

判断落子区域是否正确,if(who !=1)这个是判断是否为机器落子,如果是机器落子则不需要把提示输出到终端。

代码如下(示例):

int drop(char arr[][3], int row, int col, int who)
{
	char q = '@';  
	if (who == 1)//机器下棋时,who为1,用*表示棋子。
		q = '*';
	if (arr[row][col] == '_')
	{
		arr[row][col] = q;
	}else if (row >= 3 || col >= 3)
	{
		printf("落子区域超出棋盘范围,请重新输入n");
		return 0;
	}
	else{
		if(who !=1)
			printf("%d行%d列已经有棋子,请换个位置落子n", row, col);
		return 0;
	}
	return 1;
}
2.判断游戏是否结束

每次落子之后都先判断对角线、行或列是否有3个同样的棋子,若有则胜利。若没有再判断棋盘上有没有空位置,若没有则和棋,有则继续下棋。

int if_win_game(char arr[][3],int row,int col)//根据最后一步落子的位置判断
											//	,机器获胜返回1,人获胜返回0 ,和棋子返回2,游戏继续返回3
{
	if ((arr[row][0] == '*' && arr[row][1] == '*' && arr[row][2] == '*') || 
		(arr[0][col] == '*' && arr[1][col] == '*' && arr[2][col] == '*'))
		return 1;

	if ((arr[row][0] == '@' && arr[row][1] == '@' && arr[row][2] == '@') || 
		(arr[0][col] == '@' && arr[1][col] == '@' && arr[2][col] == '@'))
		return 0;
	if (row == col || (row == 0 && col == 2) || (row == 2 && col == 0))
	{
		if ((arr[0][0] == '*' && arr[1][1] == '*' && arr[2][2] == '*')||
			(arr[0][2] == '*' && arr[1][1] == '*' && arr[2][0] == '*'))
			return 1;
		if ((arr[0][0] == '@' && arr[1][1] == '@' && arr[2][2] == '@') || 
			(arr[0][2] == '@' && arr[1][1] == '@' && arr[2][0] == '@'))
			return 0;
	}

	int i, j, flag = 2;
	for (i = 0; i < 3; ++i)
	{
		for (j = 0; j < 3; ++j)
		{
			if (arr[i][j] == '_')
				flag = 3;
		}
	}
	return flag;
}

源码放在我的码云:https://gitee.com/wszlight/code/tree/master/%E6%89%AB%E9%9B%B7

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号