html5 大富翁游戏

html5 大富翁游戏,第1张

现在用phaser, 排名最高,用着还行,不过文档真比较渣,例子到时很多。

我自己用的melonjs,感觉还不错,上手难度也不高,里面除了可以自己撸地图场景还可以用tiled界面画地图。

#include<iostream.h>

#include<iomanip.h>

#include<string.h>

#define _GOLD 2 //标志有金子的格子

#define _TRAP 3 //标志有陷阱的格子

#define _OBSTACLE 4 //标志有障碍物的格子

class simgame

{

public:

simgame(char *nm,int)

void terminate(){delete []name}

void init(int data[],int n)

void run()

void display()

private:

char *name

int way[50]//标志环道格子种类的数组

int location

int life

int money

int isdead//判断是否死亡

int isforward//判断是顺行还是逆行

}

simgame::simgame(char *nm,int isfd=1)

{

strcpy(name,nm)

isforward=isfd

location=0

life=money=100

isdead=0

}

void simgame::init(int data[],int n)

{

int nn=0//用于循环data数组以保证把way数组完整赋值

int i

way[0]=0

if(isforward)

{

for(int i=1i<50i++)

{

if(nn=n)nn=0//如果data数组到达末尾,从头开始

way[i]=data[nn]

nn++

}

}

else

{

nn=n-1

for(i=1i<50i++)

{

if(nn<0)nn=n-1

way[i]=data[nn]

nn--

}

}

}

void simgame::display()

{

cout<<"老鼠"<<name<<":"

if(life>0)

{

cout<<"位置="<<setw(5)<<location

cout<<"生命="<<setw(5)<<life

cout<<"金钱="<<setw(5)<<money

}

else

cout<<"Dead!"

}

void simgame::run()

{

int i

int isstop=0

if(isdead)return

if(isforward) //正常行走的过程

{

for(i=1i<5i++)

{

if(location+i==50)

location-=50//如果到达末尾则从头开始走,并把位置变量重新赋值

if(way[location+i]==_OBSTACLE) //如果途中有障碍物,则停止

{

location+=i

isstop=1//标志,表示是否停留

break

}

}

if(!isstop)

location+=4

switch(way[location])

{

case _GOLD:money+=50break

case _TRAP:life-=80break

default:break

}

if(life<=0)isdead=1

}

else //逆行的过程

{

for(i=1i<4i++)

{

if(location+i==50)

location-=50

if(way[location+i]==_OBSTACLE)

{

location+=i

isstop=1

break

}

}

if(!isstop)

location+=3

switch(way[location])

{

case _GOLD:money+=50break

case _TRAP:life-=80break

default:break

}

if(life<=0)isdead=1

}

}

void main()

{

simgame mice1("A")

simgame mice2("B",0)

int data[20]={1,2,2,2,3,2,3,4,1,2,3,4,1,2,3,4,3,2,2,1}

mice1.init(data,20)

mice2.init(data,20)

for(int i=0i<5i++)

{

mice1.run()

mice2.run()

cout<<"轮次:"<<i+1<<endl

mice1.display()

mice2.display()

}

mice1.terminate()

mice2.terminate()

}

可以编译,但不可以运行,求大虾给诊断一哈,谢谢谢谢

问题补充:题目:一条由50个格子组成的环形跑道,其中一个格子是起点,两只鼠都从起点按相反方向出发,一只鼠按正方向前进且每次前进4格,另一只鼠按反方向出发,且每次前进3个格子,每只鼠出发时都有100点生命值和100个金子跑道由普通格子,带金币的格子,带陷阱的格子,带障碍的格子等四种组成!

规则:a,起点是普通格子,任何普通格子鼠可以顺利通过.

b.鼠每路过或停在一个带金币的格子上就增加50个金币

c.鼠停留在陷阱的格子上,损失生命80点.

d.鼠路过带障碍的格子时,本轮停止前进.

1.并实现相关的类,同时模拟此游戏

输入:已在main()中提供一个大小为20的一维整型数组data,数值可为1,2,3,4,分别表示四种类型的格子,其中data(0)表示起点.

输出:10轮次内,每轮走完后两只老鼠的各自位置,生命,和拥有的金币数.

要main()函数应为如下格式

void main()

{

int data[20]={1,2,2,2,3,2,3,4,1,2,3,4,1,2,3,4,3,2,2,1}

simgame game

game.init(data,20)

game.run(5)

game.terminate()

}

输出:

轮次1:

老鼠A:位置=##生命=##金钱=##

老鼠B:位置=##生命=##金钱=##

轮次2:

.......

宏:

#define _GOLD 2 //金子

#define _TRAP 3 //陷阱

#define _OBSTACLE 4 //障碍物


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6278654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存