新手守护
代码:
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <cstdio>
using namespace std;
string map[25][25];//20*20的地图
int cho,sea,dif,g_cnt,go_pl=10; //金币初始为10(买一个炸药)
struct yy{
int x,y,h;//map[x][y]
}goa[400],pl;//金币;玩家
int main(){
// freopen("sead.txt","r",stdin);
// cin>>sea;
// fclose(stdin);
// freopen("sead.txt","w",stdout);
// int sea1;
// for(int i=1;i<=sea;i++)sea1=rand();
// cout<<sea1;
// fclose(stdout);
cout<<"请输入一个随机的地图种子\n";
cin>>sea;//地图种子
cout<<"请输入难度(1-3)\n";
cin>>dif;
int sc=5-dif,sc1=dif*400,tl=(5-dif)*50;
pl.x=1;
pl.y=1;
cout<<"生成地图中,请稍后...\n";
while(sea--){//生成地图
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
if(rand()%sc==1)map[i][j]="##";
else map[i][j]=" ";
}
}
}
map[1][1]=" ";
map[20][20]=" ";
cout<<"按动w/s/a/d开始游戏\n";
while(1){
cho=getch();
map[pl.x][pl.y]=" ";
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
if(rand()%sc1==1&&map[i][j]==" "){//生成新的金币
g_cnt++;
goa[g_cnt].x=i;
goa[g_cnt].y=j;
}
if(map[i][j]=="go")map[i][j]=" "; //取消老的金币
}
}
if(cho=='w'){
if(pl.x>1&&map[pl.x-1][pl.y]!="##")pl.x--;system("cls");
}else if(cho=='s'){
if(pl.x<20&&map[pl.x+1][pl.y]!="##")pl.x++;system("cls");
}else if(cho=='a'){
if(pl.y>1&&map[pl.x][pl.y-1]!="##")pl.y--;system("cls");
}else if(cho=='d'){
if(pl.y<20&&map[pl.x][pl.y+1]!="##")pl.y++;system("cls");
}
if(cho=='e'){//商店
system("cls");
cout<<"1.面包:2金币 (增加10体力)\n2.肉:4金币 (增加25体力)\n3.炸药:10金币 (破环以你为中心5*5的障碍)\n4.退出";
char cho1;
cho1=getch();
if(cho1=='1'&&go_pl>=2){
go_pl-=2;
tl+=10;
}else if(cho1=='2'&&go_pl>=4){
go_pl-=4;
tl+=25;
}else if(cho1=='3'&&go_pl>=10){
go_pl-=10;
for(int n=pl.x-2;n<=pl.x+2;n++){
for(int m=pl.y-2;m<=pl.y+2;m++){
map[n][m]=" ";
}
}
}
system("cls");
}
for(int i=1;i<=g_cnt;i++){
if(pl.x==goa[i].x&&pl.y==goa[i].y&&goa[i].h==0){
go_pl++;//捡金币
goa[i].h=1;//这个金币已经捡过了
}
if(goa[i].h==0)map[goa[i].x][goa[i].y]="go";
}
map[pl.x][pl.y]="Yo";
tl--;
if(tl==0){
system("cls");
cout<<"you die...";
return 0;
}
cout<<"金币:"<<go_pl<<" 体力:"<<tl<<endl;
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
cout<<map[i][j];
}
cout<<endl;
}
if(pl.x==20&&pl.y==20){
system("cls");
cout<<"you win!";
return 0;
}
}
return 0;
}
复制到DEV C++
新手守护
走迷宫0.0版本作品介绍:
1.进入游戏
进入游戏后你会看到这个问题:
这是你只需随机输入一个数(最好在10000以内)即可
然后就可以输入本局游戏的难度(1—3)
2.开始游戏
开始游戏后你会看到一张迷宫地图
此时只需按动"w","s","a","d"四个键就可以移动在左上角的玩家(必须用英文输入法)
游戏过程中可以捡那些"go",他们是金币,按"e"键唤出交易栏
3.胜利与失败
当你走到地图的右下角时你就胜利;当你的体力耗尽时你就失败
体力可以通过交易栏里的物品获得