📄 wumpus.h
字号:
#ifndef _WUMPUS_H_
#define _WUMPUS_H_
enum thing//定义格子里放的东西
{
blank,//空格子
gold,//金子
wumpus,//巫魔
pit,//陷阱
deadwumpus,//被杀死的巫魔
unknown,//尚不清楚里面放的是什么,待估计之后填入
him//英雄自己
};
class grid//定义格子的状态
{
public:
thing sthin;//格子里放了什么东西
bool breeze;//是否有风声
bool stench;//是否有臭味
bool glitter;//是否有闪光
grid()
{
sthin=blank;
breeze=false;
stench=false;
glitter=false;
}
};
enum direction
{
N=0,//往北走
W=1,//往南走
S=2,//往西走
E=3 //往东走
};
class position//定义在迷宫中的位置
{
public:
int x;
int y;
};
class guide//定义英雄根据经验猜测出来的格子的情况
{
public:
int wumpus;//猜测该格子里有巫魔的次数
int pit;//猜测该格子里有陷阱的次数
thing in;//格子里有什么东西
int visittime;//英雄到过该格子多少次
guide()
{
wumpus=0;
pit=0;
visittime=0;
in=unknown;
}
};
class Map
{
public:
grid maze[4][4];//迷宫定义
position wumpos;//巫魔的位置
position pitpos1;//第一个陷阱的位置
position pitpos2;//第二个陷阱的位置
position pitpos3;//第三个陷阱的位置
position goldpos;//金子的位置
void locatewumpus();//安排巫魔的信置
void locatepit1();//安排第一个陷阱的位置
void locatepit2();//安排第二个陷阱的位置
void locatepit3();//安排第三个陷阱的位置
void locategold();//安排金子的位置
grid gridstate(int x,int y);//用于提供给英雄他进入的格子的相关信息
Map();
~Map();
};
class Hero
{
public:
bool firstgetgold;
bool firstshootwumpus;
bool arrow;//英雄是否还有箭
bool wumpusalive;//巫魔是否还活着
bool alive;//自己是否还活着
bool gotgold;//是否已经拿到金子
bool knownwupos;//英雄觉得自己知道了巫魔的位置,是放箭的前提
bool success;//拿到金子并爬出洞口为真
bool noway;//是否已经无路可走
bool stepforward();//英雄向前走一步
position wumpos;//英雄眼中的巫魔位置
direction currentdirection;
int stepcount;//已经走过的步数
int score;//根据规则英雄得到的分数
guide handbook[4][4]; //英雄根据自己的经验判断出相关格子的情况,并根据这一张表
//进行相关的操作
void feel();
int x,y;//英雄当前的位置
bool grab();//英雄捡起格子里的金子,如果格子里有金子的话
bool shoot();//英雄根据自己的book决定放箭,如果射中,则巫魔大叫
bool climb();//英雄从洞口爬出
void choosedirA();//扩张地图,在找到金子之前尽可能地试探
void choosedirB();//找到金子之后,要尽可能地回到洞口
void makedecision();
void turnback();
void Init();
Hero();
~Hero();
Map map;
};
class wumpusproblem
{
public:
Hero hero;
void game();
};
void print(Map map);
void print(guide handbook[4][4]);
void printb(Map map);
void prints(Map map);
void printu(guide handbook[4][4]);
void wait();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -