问题标题: 酷町堂:求一段代码

0
0

0
已采纳
邹昊轩
邹昊轩
资深光能
资深光能
#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
using namespace std;
// 刷新当前屏幕
inline void Refresh(char q[][22], int grade, int gamespeed){
    system("cls");     //  清屏
 int i,j;
 cout << endl;
 for(i=0;i<22;i++){
     cout << "\t";
  for(j=0;j<22;j++)
   cout<<q[i][j]<<' ';    //  输出贪吃蛇棋盘
        if(i==0) cout << "\t等级为:" << grade;
        if(i==4) cout << "\t自动前进时间";
        if(i==6) cout << "\t间隔为:" << gamespeed << "ms";
  cout<<endl;
 }
}
int main(){
    char tcsQipan[22][22];     //  贪吃蛇棋盘是一个二维数组(如22*22,包括墙壁)
    int i,j;
    for(i=1;i<=20;i++)
        for(j=1;j<=20;j++)
            tcsQipan[i][j]=' ';     //     初始化贪吃蛇棋盘中间空白部分
    for(i=0;i<=21;i++)
        tcsQipan[0][i] = tcsQipan[21][i] = '-';      //初始化贪吃蛇棋盘上下墙壁
    for(i=1;i<=20;i++)
        tcsQipan[i][0] = tcsQipan[i][21] = '|';      //初始化贪吃蛇棋盘左右墙壁
    int tcsZuobiao[2][100];     //蛇的坐标数组
    for(i=0; i<4; i++){
        tcsZuobiao[0][i] = 1;
        tcsZuobiao[1][i] = i + 1;
    }
    int head = 3,tail = 0;
    for(i=1;i<=3;i++)
        tcsQipan[1][i]='*';    //蛇身
    tcsQipan[1][4]='#';       //蛇头
    int x1, y1;           // 随机出米
    srand(time(0));
    do{
  x1=rand()%20+1;
  y1=rand()%20+1;
 }while(tcsQipan[x1][y1]!=' ');
 tcsQipan[x1][y1]='*';
 cout<<"\n\n\t\t贪吃蛇游戏即将开始 !"<<endl;//准备开始;;
 long start;
    int grade = 1, length = 4;
    int gamespeed = 500;  //前进时间间隔
 for(i=3;i>=0;i--){
  start=clock();
  while(clock()-start<=1000);
  system("cls");
  if(i>0)
   cout << "\n\n\t\t进入倒计时:" << i << endl;
  else
   Refresh(tcsQipan,grade,gamespeed);
 }
    int timeover;
    char direction = 77;  // 初始情况下,向右运动
    int x,y;
    while(1){
        timeover = 1;
        start = clock();
        while((timeover=(clock()-start<=gamespeed))&&!kbhit());
             //如果有键按下或时间超过自动前进时间间隔则终止循环
        if(timeover){
            getch();direction = getch();
        }
        switch(direction){
        case 72: x= tcsZuobiao[0][head]-1; y= tcsZuobiao[1][head];break;     // 向上
        case 80: x= tcsZuobiao[0][head]+1; y= tcsZuobiao[1][head];break;      // 向下
        case 75: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]-1;break;      // 向左
        case 77: x= tcsZuobiao[0][head]; y= tcsZuobiao[1][head]+1;           // 向右
        }
        if(!(direction==72||direction==80||direction==75 ||direction==77)){   //  按键非方向键
            cout << "\tGame over!" << endl;return 0;
        }
        if(x==0 || x==21 ||y==0 || y==21){   // 碰到墙壁
            cout << "\tGame over!" << endl;return 0;
        }
        if(tcsQipan[x][y]!=' '&&!(x==x1&&y==y1)){ //   蛇头碰到蛇身
            cout << "\tGame over!" << endl;return 0;
        }
        if(x==x1 && y==y1){      //  吃米,长度加1
            length ++;
            if(length>=8){
                length -= 8;
                grade ++;
                if(gamespeed>=200)
                    gamespeed = 550 - grade * 50; // 改变自动前进时间间隔
            }
            tcsQipan[x][y]= '#';
            tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]] = '*';
            head = (head+1)%100;
            tcsZuobiao[0][head] = x;
            tcsZuobiao[1][head] = y;
            do
            {
                x1=rand()%20+1;
                y1=rand()%20+1;
            }while(tcsQipan[x1][y1]!=' ');
            tcsQipan[x1][y1]='*';
            Refresh(tcsQipan,grade,gamespeed);
        }

        else{       //  不吃米
            tcsQipan [tcsZuobiao[0][tail]][tcsZuobiao[1][tail]]=' ';
            tail=(tail+1)%100;
            tcsQipan [tcsZuobiao[0][head]][tcsZuobiao[1][head]]='*';
            head=(head+1)%100;
            tcsZuobiao[0][head]=x;
            tcsZuobiao[1][head]=y;
            tcsQipan[tcsZuobiao[0][head]][tcsZuobiao[1][head]]='#';
            Refresh(tcsQipan,grade,gamespeed);
        }
    }
    return 0;
}

望采纳

0
0
0
0
0
0
0
吴庞茂旭
吴庞茂旭
资深光能
资深光能

五年长久——独家游戏秘籍里有(一个简陋的代码)

0
李瑞曦
李瑞曦
高级天翼
高级天翼
#include <iostream> 
using namespace std; 
double shengmingli=2000;//定义主角初始生命力 
int gongjili=150;//定义主角初始攻击力 
int fangyuli=200;//定义主角初始防御力 
int money=99999;//定义主角初始金钱数量 
bool guoguan;//定义是否通关判定 
void wuqidian();//定义武器店函数 
void yaodian();//定义药店函数 
void guaiwu1();//定义小怪物函数 
void guaiwu2();//定义大怪物函数 
int main() 
{ 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
int xiaozhen;//定义选择项目 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
cin>>xiaozhen; 
while(xiaozhen!=5)//输入5时退出游戏 
{ 
if(shengmingli<=0)//主角生命力小于等于0时游戏结束 
{ 
cout<<"你死啦!"<<endl; 
break; 
} 
if(guoguan) 
{ 
cout<<"恭喜通关!"<<endl; 
break; 
} 
if(xiaozhen==6)//输入6可检测自己的状态 
{ 
cout<<"你的生命力:"<<shengmingli<<endl; 
cout<<"你的攻击力:"<<gongjili<<endl; 
cout<<"你的防御力:"<<fangyuli<<endl; 
cout<<"你拥有的钱:"<<money<<endl; 
} 
else 
switch(xiaozhen) 
{ 
case 1 : wuqidian();break; 
case 2 : yaodian();break; 
case 3 : guaiwu1();break; 
case 4 : guaiwu2();break; 
default : cout<<"请不要乱选!"<<endl;break; 
} 
cin>>xiaozhen; 
} 
if(xiaozhen==5) 
{ 
cout<<"正在退出游戏……"<<endl; 
} 
cin.get(); 
cin.get(); 
return 0; 
} 
void wuqidian() 
{ 
cout<<"欢迎来到武器店!"<<endl; 
cout<<"1、买小刀(1M加2攻击力)"<<endl; 
cout<<"2、买短剑(2M加20攻击力)"<<endl; 
cout<<"3、买大砍刀(5M加40攻击力)"<<endl; 
cout<<"4、买双节棍(7M加60攻击力)"<<endl; 
cout<<"5、买盾牌(2M加30防御力)"<<endl; 
cout<<"6、买铠甲(5M加60防御力)"<<endl; 
cout<<"7、离开武器店"<<endl; 
int wuqidian; 
cin>>wuqidian; 
while(wuqidian!=7)//输入7时结束函数 
{ 
switch(wuqidian) 
{ 
case 1 : if(money<10) 
cout<<"你的钱不够"<<endl;//钱不够时返回Flase 
else  
cout<<"购买成功!"<<endl;//钱足够时返回True 
gongjili+=2; 
money+=9999; 
break; 
case 2 : if(money<80) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
gongjili+=20; 
money-=80; 
break; 
case 3 : if(money<140) 
cout<<"你的钱不够"<<endl; 
    else  
cout<<"购买成功!"<<endl; 
gongjili+=40; 
money-=140; 
break; 
case 4 : if(money<200) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
gongjili+=60; 
money-=200; 
break; 
case 5 : if(money<60) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
fangyuli+=30; 
money-=60; 
break; 
fangyuli+=60; 
money-=100; 
break; 
default : cout<<"无"<<endl; 
    break; 
}  
cin>>wuqidian; 
} 
if(wuqidian==7) 
{     //返回main()主函数 
cout<<"欢迎下次再来!"<<endl; 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
} 
/* 
yaodian()的设置与wuqidian()相同,可参照阅读. 
*/ 
void yaodian() 
{ 
cout<<"欢迎来到药品店!"<<endl; 
cout<<"1、买1号补血药(10M加200生命)"<<endl; 
cout<<"2、买2号补血药(50M加1000生命力)"<<endl; 
cout<<"3、买3号补血药(100M加2200生命力)"<<endl; 
cout<<"4、离开武器店"<<endl; 
int yaodian; 
cin>>yaodian; 
while(yaodian!=4) 
{ 
switch(yaodian) 
{ 
case 1 : if(money<10) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
shengmingli+=200; 
money-=10; 
break; 
case 2 : if(money<50) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
shengmingli+=1000; 
money-=50; 
break; 
case 3 : if(money<100) 
cout<<"你的钱不够"<<endl; 
else  
cout<<"购买成功!"<<endl; 
shengmingli+=992200; 
money+=10000; 
break; 
default : cout<<"无"<<endl; 
break; 
} 
cin>>yaodian; 
} 
if(yaodian==4) 
{      
cout<<"欢迎下次再来!"<<endl;     
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
} 
/*这里是两个战斗函数,使用指针来处理.避免造成内存崩溃.*/ 
void guaiwu1() 
{ 
cout<<"开始与小怪物战斗!!!"<<endl; 
double* g_shengmingli=new double;//定义怪物生命 
int* g_gongjili=new int;//定义怪物攻击力 
int* g_fangyuli=new int;//定义怪物防御力 
    int* g_money=new int;//定义怪物金钱 
*g_shengmingli=100; 
*g_gongjili=5; 
*g_fangyuli=3; 
*g_money=5; 
double* tongji1=new double;//用来计算主角对怪物的杀伤 
double* tongji2=new double;//用来计算怪物对主角的杀伤 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int;//定义回合数 
*huihe=1; 
cout<<"你开始对小怪物进行攻击!"<<endl; 
int* xuanze=new int; 
/* 
攻击计算公式 
杀伤=攻击力*2-防御力 
玩家每回合可以选择攻击与逃跑 
*/ 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"现在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"请选择你的动作:\n"; 
cout<<"1、攻击\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你对小怪物发动了攻击!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了小怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"小怪物还剩"<<(*g_shengmingli)-(*tongji1)<<"点生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"小怪物对你发动了攻击!"<<endl; 
cout<<"小怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你还剩"<<shengmingli-(*tongji2)<<"点生命"<<endl;break; 
case 2 : cout<<"你决定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"请不要乱选!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{//杀死怪物后的返回 
cout<<"小怪物被你杀死了!你真厉害!!!"<<endl; 
money+=(*g_money); 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
else 
if(shengmingli<=0) 
{//被怪物杀死后的返回 
cout<<"你被小怪物杀死了!游戏结束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{//逃跑的返回 
cout<<"你逃回了小镇!"<<endl; 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete g_money; 
delete tongji1; 
delete tongji2; 
} 
/* 
设置均与void函数guaiwu1()相同,可参照上例阅读. 
*/ 
void guaiwu2() 
{ 
cout<<"开始与大怪物战斗!!!"<<endl; 
double* g_shengmingli=new double; 
int* g_gongjili=new int; 
int* g_fangyuli=new int; 
*g_shengmingli=3600; 
*g_gongjili=500; 
*g_fangyuli=500; 
double* tongji1=new double; 
double* tongji2=new double; 
*tongji1=0; 
*tongji2=0; 
int* huihe=new int; 
*huihe=1; 
cout<<"你开始对大怪物进行攻击!"<<endl; 
int* xuanze=new int; 
while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 
{ 
cout<<"现在是"<<"第"<<*huihe<<"回合!"<<endl; 
cout<<"请选择你的动作:\n"; 
cout<<"1、攻击\n2、逃跑\n"; 
cin>>*xuanze; 
switch((*xuanze)) 
{ 
case 1 : cout<<"你对大怪物发动了攻击!"<<endl; 
*g_shengmingli-=gongjili*2-(*g_fangyuli); 
*tongji1=gongjili*2-(*g_fangyuli); 
cout<<"你打掉了大怪物"<<*tongji1<<"的生命!"<<endl; 
cout<<"大怪物还剩"<<(*g_shengmingli)-(*tongji1)<<"点生命"<<endl; 
shengmingli-=(*g_gongjili)*2-fangyuli; 
*tongji2=(*g_gongjili)*2-fangyuli; 
cout<<"大怪物对你发动了攻击!"<<endl; 
cout<<"大怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 
cout<<"你还剩"<<shengmingli-(*tongji2)<<"点生命"<<endl;break; 
case 2 : cout<<"你决定逃跑!"<<endl; 
cout<<"逃跑成功!"<<endl;continue; 
default : cout<<"请不要乱选!"<<endl; 
} 
(*huihe)++; 
} 
if((*g_shengmingli)<=0) 
{ 
    cout<<"大怪物被你杀死了!你真厉害!!!"<<endl; 
guoguan=true; 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
else 
if(shengmingli<=0) 
{ 
cout<<"你被大怪物杀死了!游戏结束!!!"<<endl; 
} 
else 
if((*xuanze)==2) 
{ 
cout<<"你逃回了小镇!"<<endl; 
cout<<"欢迎你开始玩打怪物小游戏!\n"; 
cout<<"小镇\n"; 
cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 
cout<<"和一家武器店。\n"; 
cout<<"1.去武器店"<<endl; 
cout<<"2.去药品店"<<endl; 
cout<<"3.去打小怪物"<<endl; 
cout<<"4.去打大怪物"<<endl; 
cout<<"5.退出游戏"<<endl; 
cout<<"6.显示你的状态"<<endl; 
} 
delete g_shengmingli; 
delete g_gongjili; 
delete g_fangyuli; 
delete tongji1; 
delete tongji2; 
}
0
0
0
0
丁博扬
丁博扬
中级天翼
中级天翼

给你方法:

1.网上去找

2.酷町问答有,自己去搜

3.自己编一个(最难)

【滑稽】

我要回答