#include<stdio.h>
#include<graphics.h>//EGE图形库函数
#include <conio.h>//屏幕显示函数
#include<stdlib.h>
#include<winnt.h>//句柄头文件
//地图
int mape[14][14]={
{0,1,1,1,1,1,1,1,1,1,1,1,0,0},
{0,1,0,0,0,0,0,1,0,0,0,1,0,0},
{0,1,1,1,0,1,0,1,0,1,1,1,0,0},
{0,1,0,1,0,1,0,1,0,1,0,1,0,0},
{0,1,0,1,0,1,6,1,4,1,0,1,0,0},
{0,1,0,1,0,0,0,0,0,0,0,1,0,0},
{0,1,0,1,0,4,5,6,4,0,0,1,0,0},
{0,1,0,1,3,4,1,4,1,3,3,1,1,0},
{0,1,0,1,6,4,5,6,4,0,0,0,1,0},
{0,1,0,1,0,0,0,0,0,0,0,0,1,0},
{0,1,0,1,1,1,1,4,4,4,4,4,0,0},
{0,3,0,4,0,0,3,0,3,0,0,4,0,0},
{0,4,0,6,0,0,4,0,5,0,0,4,0,0},
{0,5,0,6,5,4,5,0,5,0,0,2,0,0}
};
//角色信息
typedef struct gameRole
{
int hp; //血
int mp; //蓝
int defence; //防御
int ce; //攻击
int yk; //黄钥匙
int level; //等级
int exp; //经验
}brole;
//怪物信息
struct monster
{
int hp;
int ce;
int defence;
int exp;
};
//蝙蝠防御高
struct monster batsoldier={15,10,10,25};
struct monster batking={150,60,20,55};
//骷髅攻击高
struct monster skeletonsoldier={20,30,10,25};
struct monster skeletonking={150,120,5,50};
brole role = { 200,260,30,50,0,0,0};
//游戏玩法
int bloodPK(struct monster mon,brole *x)
{
int cesub=x->ce-mon.ce;
int desub=x->defence-mon.defence;
float finalsub=cesub+desub;
float roletempce=x->ce*(1+(finalsub/100));
float montempce=mon.ce*(1-(finalsub/100));
for(int coun0=0;x->hp>=0&&mon.hp>=0;coun0++)
{
x->hp-=montempce;
mon.hp-=roletempce;
}
if((x->hp)>0)
{
x->exp+=mon.exp;
return 1;//胜利
}
else
{
return 0;//失败
}
}
HWND hwnd;//用于提示玩家的交互窗口
void keydown()
{
int i=0,j=0;
for(i=0;i<14;i++)
{
for(j=0;j<14;j++)
{
if(mape[i][j]==2)
break;
}
if(mape[i][j]==2)
break;
}//搜索玩家位置
//控制人物
char userkey=getch();
switch(userkey)
{
case 'A':
case 'a':
case 75://小键盘
if(mape[i][j-1]==1)//空格
{
mape[i][j]=1;
mape[i][j-1]=2;
}
else if(mape[i][j-1]==4)//钥匙
{
mape[i][j]=1;
mape[i][j-1]=2;
role.yk++;
}
else if(mape[i][j-1]==3&&role.yk>0)//门
{
role.yk--;
mape[i][j]=1;
mape[i][j-1]=2;
}
else if(mape[i][j-1]==5)//蝙蝠
{
int ID=MessageBox(hwnd,"遇到小蝙蝠","是否攻击小蝙蝠",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(batsoldier,&role)==1)
{
mape[i][j]=1;
mape[i][j-1]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
else if(mape[i][j-1]==6)//骷髅
{
int ID=MessageBox(hwnd,"遇到骷髅怪","是否攻击骷髅怪",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(skeletonsoldier,&role)==1)
{
mape[i][j]=1;
mape[i][j-1]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
break;
case 'D':
case 'd':
case 77:
if(mape[i][j+1]==1)
{
mape[i][j]=1;
mape[i][j+1]=2;
}
else if(mape[i][j+1]==4)
{
mape[i][j]=1;
mape[i][j+1]=2;
role.yk++;
}
else if(mape[i][j+1]==3&&role.yk>0)
{
role.yk--;
mape[i][j]=1;
mape[i][j+1]=2;
}
else if(mape[i][j+1]==5)//蝙蝠
{
int ID=MessageBox(hwnd,"遇到小蝙蝠","是否攻击小蝙蝠",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(batsoldier,&role)==1)
{
mape[i][j]=1;
mape[i][j+1]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
else if(mape[i][j+1]==6)//骷髅
{
int ID=MessageBox(hwnd,"遇到骷髅怪","是否攻击骷髅怪",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(skeletonsoldier,&role)==1)
{
mape[i][j]=1;
mape[i][j+1]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
break;
case 'S':
case 's':
case 80:
if(mape[i+1][j]==1)
{
mape[i][j]=1;
mape[i+1][j]=2;
}
else if(mape[i+1][j]==4)
{
mape[i][j]=1;
mape[i+1][j]=2;
role.yk++;
}
else if(mape[i+1][j]==3&&role.yk>0)
{
role.yk--;
mape[i][j]=1;
mape[i+1][j]=2;
}
else if(mape[i+1][j]==5)//蝙蝠
{
int ID=MessageBox(hwnd,"遇到小蝙蝠","是否攻击小蝙蝠",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(batsoldier,&role)==1)
{
mape[i][j]=1;
mape[i+1][j]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
else if(mape[i+1][j]==6)//骷髅
{
int ID=MessageBox(hwnd,"遇到骷髅怪","是否攻击骷髅怪",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(skeletonsoldier,&role)==1)
{
mape[i][j]=1;
mape[i+1][j]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
break;
case 'W':
case 'w':
case 72:
if(mape[i-1][j]==1)
{
mape[i][j]=1;
mape[i-1][j]=2;
}
else if(mape[i-1][j]==4)
{
mape[i][j]=1;
mape[i-1][j]=2;
role.yk++;
}
else if(mape[i-1][j]==3&&role.yk>0)
{
role.yk--;
mape[i][j]=1;
mape[i-1][j]=2;
}
else if(mape[i-1][j]==5)//蝙蝠
{
int ID=MessageBox(hwnd,"遇到小蝙蝠","是否攻击小蝙蝠",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(batsoldier,&role)==1)
{
mape[i][j]=1;
mape[i-1][j]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO);
exit(0);
}
}
}
else if(mape[i-1][j]==6)//骷髅
{
int ID=MessageBox(hwnd,"遇到骷髅怪","是否攻击骷髅怪",MB_YESNO);
if(ID==IDYES)
{
if(bloodPK(skeletonsoldier,&role)==1)
{
mape[i][j]=1;
mape[i-1][j]=2;
}
else
{
int beginID=MessageBox(hwnd,"你阵亡了","游戏结束",MB_YESNO)
没有合适的资源?快使用搜索试试~ 我知道了~
1.1.zip
共14个文件
jpg:7个
layout:1个
o:1个
需积分: 0 0 下载量 63 浏览量
2023-12-27
17:04:23
上传
评论
收藏 614KB ZIP 举报
温馨提示
1.1.zip
资源推荐
资源详情
资源评论
收起资源包目录
1.1.zip (14个子文件)
1.1
obj
Debug
main.o 18KB
main.cpp 10KB
img
2.jpg 1KB
6.jpg 2KB
1.jpg 914B
inf.png 28KB
5.jpg 2KB
0.jpg 1004B
3.jpg 967B
4.jpg 928B
bin
Debug
mt map pre12181349.exe 1.81MB
mt map pre12181349.depend 1KB
mt map pre12181349.layout 361B
mt map pre12181349.cbp 1KB
共 14 条
- 1
资源评论
䥬357
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功