html5 大富翁游戏

html5 大富翁游戏,第1张

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

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

struct maptype

{

int money,belong

char name[20]

}map[9][13]={0}

struct player

{

int x,y,money,di

}man[3]={0}

int dx[5]={0,0,1, 0,-1}

int dy[5]={0,1,0,-1, 0}

int i,j,x,y

int turn,step,res

char out[1000]

char *s11="姓名史艳文"

char *s12="资金"

char *s21="姓名比卡超"

char *s22="资金"

char *s31="你需要付给对手"

char *s32="元"

char *s41="老友轮到你走啦"

char *s42="轮到对手走啦"

char *s51="买下此地要"

char *s52="买"

char *s53="不买"

char *s54="老大你的钱不够"

char *z1="起点"

char *z2="休息处"

char *fa="经过起点发旅费"

char *m1="路过岳王庙"

char *m2="路过纯白镇"

char *m3="获取钱三千"

char *m4="获取钱六千"

char *zi1="行"

char *zi2="动"

char *zi3="查"

char *zi4="看"

char *zi5="离"

char *zi6="开"

char *last="你要花两千元升级地价吗"

#define ESC 0x011b

#define ENTER 0x1c0d

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define UP0x4800

#define DOWN 0x5000

#include<stdio.h>

#include<stdlib.h>

#include"first.c"

#include<graphics.h>

#include "bmp16.h"

#include"files.c"

int graphdriver=VGA

int graphmode=VGAHI

FILE *hzk_p

void open_hzk(void)

void get_hz(char incode[],char bytes[])

void dishz(int x,int y,char code[],int color)

#include"rich2.c"

int main()

{

initgraph(&graphdriver,&graphmode,"")

cleardevice()

open_hzk()

first()

begin()

files()

setbkcolor(0)

while (1)

{

print(0)

step=random(6)+1

{}

if (turn==1)

{

next3()

}

chuli(turn,step)

buy()

{}

turn=(turn+1)%2

if (turn==0)

turn=2

step=0

}

return 0

}

void open_hzk()

{

hzk_p=fopen("hzk16","rb")

if (!hzk_p)

{

printf("The file no\n")

getch()

closegraph()

exit(1)

}

}

void get_hz(char incode[],char bytes[])

{

unsigned char qh,wh

unsigned long offset

qh=incode[0]-0xa0

wh=incode[1]-0xa0

offset=(94*(qh-1)+(wh-1))*32L

fseek(hzk_p,offset,SEEK_SET)

fread(bytes,32,1,hzk_p)

}

void dishz(int x0,int y0,char code[],int color)

{

unsigned char mask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}

int i,j,x,y,pos

char mat[32]

get_hz(code,mat)

y=y0

for(i=0i<16i++)

{

x=x0

pos=2*i

for (j=0j<16j++)

{

if ((mask[j%8]&mat[pos+j/8])!=NULL)

putpixel(x,y,color)

++x

}

++y

}

}

#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 //障碍物


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

原文地址: http://outofmemory.cn/zaji/7342361.html

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

发表评论

登录后才能评论

评论列表(0条)

保存