minimax 九宫格

Minimax算法被广泛应用在棋类游戏中,是一种找出失败的最大可能性中的最小值的算法(Wikipedia)。

博弈树问题

在这里插入图片描述

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <limits>
//定义Game类 
class Game
{
   
//	定义枚举数据类型Player 
	enum class Player
	{
   
		none = '-',
		human = 'X',
		computer = 'O'
	};
//	定义结构体Move 
	struct Move
	{
   
//		unsigned(无符号),表明该类型是无符号数,和 signed 相反。 
		unsigned int x = 0;
		unsigned int y = 0;
	};
//	定义棋盘大小为3*3 
	Player board[3][3];

public:
	Game()
	{
   
		for (unsigned int i = 0; i < 3; i++)
		{
   
			for (unsigned int j = 0; j < 3; j++)
			{
   
//				从Player枚举类型中获取none填充到board,意思是整个棋盘没有棋子的地方全是“-” 
				board[i][j] = Player::none;
			}
		}
	}
//打印棋盘 
	void printBoard()
	{
   
		std::cout << "+-----------------+";
		for (unsigned int i = 0; i < 3; i++)
		{
   
			//换行 
			std::cout << "\n|";
			for (unsigned int j = 0; j < 3; j++)
			{
   
				//C++ setw() 函数用于设置字段的宽度,语法格式如下
//				打印 
				std::cout << std::setw(3) << static_cast<char>(board[i][j]) << std::setw(3) << " |";
			}
		} 
		std::cout << "\n+-----------------+\n";
	}
//判断是否存在空位 
	bool isTie()
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值