游戏——简陋的飞机游戏and一堆bug

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<windows.h>

using namespace std;

#define high 15
#define width 25

int enemyNumbers=5;
int feijiX,feijiY;
int zong[high][width]={0};
int score;
int zidanX,zidanY;
bool fire=0;
int enemyX,enemyY;
int p=0;

void hideguangbiao(){
   CONSOLE_CURSOR_INFO guangbiao_info={1,0};
   SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&guangbiao_info);
}

void gotoxy(intx,int y){
   HANDLE handle =GetStdHandle(STD_OUTPUT_HANDLE);
   COORD pos;
   pos.X = x;
   pos.Y = y;
   SetConsoleCursorPosition(handle,pos);
}

void shujuchushihua(){
    feijiX=high-1;
    feijiY=width/2;
    zong[feijiX][feijiY]=1;
    score=0;
    /*zidanX=-1;
    zidanY=-1;
    zong[zidanX][zidanY]=2;*/
}

void show(){
    gotoxy(0,0);
    int i,j;
    for(i=0;i<high;i++){
        for(j=0;j<width;j++){
            if(zong[i][j]==0)
                printf(" ");
            else if(zong[i][j]==1)
                printf("*");
            else if(zong[i][j]==2)
                printf("|");
            else if(zong[i][j]==3)
                printf("@");
        }
        printf("\n");
    }
    printf("得分:%d",score);
}

void withoutinput(){
    if(fire){
        zong[zidanX][zidanY]=0;
        zidanX--;
        if(zong[zidanX-1][zidanY]==3){
             p--;
            score++;
        }
        zong[zidanX][zidanY]=2;
        if(zidanX==-1)
            fire=0;
    }
    while(1){
        if(p>=5)
            break;
        enemyY=rand()%width;
        enemyX=0;
        zong[enemyX][enemyY]=3;
        p++;
    }
}

void input(){
     char shuru;
     if(kbhit()){
        shuru=getch();
        if(shuru=='w'&&feijiX>0){
            zong[feijiX][feijiY]=0;
            feijiX--;
            zong[feijiX][feijiY]=1;
        }
        else if(shuru=='s'&&feijiX<high-1){
            zong[feijiX][feijiY]=0;
            feijiX++;
            zong[feijiX][feijiY]=1;
        }
        else if(shuru=='a'&&feijiY>0){
            zong[feijiX][feijiY]=0;
            feijiY--;
            zong[feijiX][feijiY]=1;
        }
        else if(shuru=='d'&&feijiY<width-1){
            zong[feijiX][feijiY]=0;
            feijiY++;
            zong[feijiX][feijiY]=1;
        }
        else if(shuru==' '){
            zidanY=feijiY;
            zidanX=feijiX-1;
            fire=1;
            zong[zidanX][zidanY]=2;
        }
     }
}

int main(){
    system("mode con cols=28 lines=20");
    hideguangbiao();
    shujuchushihua();
    while(1){
        show();
        withoutinput();
        input();
    }
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值