弹指间计算机协会做游戏学编程活动2019:飞机大战

简介: 弹指间计算机协会做游戏学编程活动2019:飞机大战

整体流程:

1.清屏

2.生成随机数

3.检测有无输入

4.输出飞机

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main()
{
  bool isFire = false; //是否发射了子弹
  bool isKilled = false; //是否击中了目标
  //竖直方向是x轴,水平方向是y轴,向右向下为正
  int x = 5, y = 10; //(x, y)是飞机最左边一个点的坐标
  int nx = 0, ny = 5; //(x, y)是目标的坐标
  srand((unsigned)time(NULL));
  while (true) {
    system("cls"); //清屏
    if (isKilled) //如果目标被命中
    {
      //随机生成一个新目标
      nx = (rand() % 6);//[0, 5]
      ny = (rand() % 9) + 2;//[2, 10]
      //将新目标标记为未被击中
      isKilled = false;
    }
    if (!isKilled)
    {
      //输出目标
      for (int i = 0; i < nx; i++)
        cout << endl;
      for (int i = 0; i < ny; i++)
        cout << " ";
      cout << "+" << endl;
    }
    if (isFire == false) //输出飞机上面的空行
    {
      for (int i = 0; i < x - nx; i++)
        cout << endl;
    }
    else //输出飞机上面的激光竖线
    {
      for (int i = 0; i < x - nx; i++)
      {
        for (int j = 0; j < y; j++)
          cout << " ";
        cout << "  |" << endl;
      }
      //飞机头与目标在一条线上
      if (y + 2 == ny)
        isKilled = true; //击中目标
      isFire = false;
    }
    //下面输出一个飞机图案
    for (int i = 0; i < y; i++)
      cout << " ";
    cout << "  *" << endl;
    for (int i = 0; i < y; i++)
      cout << " ";
    cout << "*****" << endl;
    for (int i = 0; i < y; i++)
      cout << " ";
    cout << " * * " << endl;
    if (kbhit()) //判断是否有输入
    {
      char input = getch(); //根据用户的不同输入来移动,不必输入回车
      switch (input) {
      case 'a':
      case 'A':
        y--;
        break;
      case 'd':
      case 'D':
        y++;
        break;
      case 'w':
      case 'W':
        x--;
        break;
      case 's':
      case 'S':
        x++;
        break;
      case ' ':
        isFire = true;
      }
    }
  }
  return 0;
}


目录
打赏
0
0
0
0
54
分享
相关文章
计算机毕业论文|校园资料分享系统的设计与实现
计算机毕业论文|校园资料分享系统的设计与实现
117 1
创作活动(五十)———还记得当初自己为什么选择计算机?
创作活动(五十)———还记得当初自己为什么选择计算机?
54 0
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
122 0
弹指间计算机协会 2020做游戏学编程:井字棋
弹指间计算机协会 2020做游戏学编程:井字棋
165 0
想过七夕?->女朋友陪你玩游戏(C)(上)
三子棋 七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩三子棋~
想过七夕?->女朋友陪你玩游戏(C)(上)
农场游戏开发详情版丨农场游戏dapp系统开发丨农场游戏源码案例部署
以分布式网络为基础结构,对数据进行验证、记账、存储、维护和传输等 操作,利用纯数学方法建立节点之间的交互信任关系,进而形成去中心化、可信任的分布 式系统;
想过七夕?->女朋友陪你玩游戏(C)(中)
在一定数值范围内,游戏随机生成一个数字,玩家输入比随机数大的数字时,程序会提醒,数值大于目标数,反之亦然。通过不断试错,最终找出目标数字。此游戏可以重复玩。
想过七夕?->女朋友陪你玩游戏(C)(中)
想过七夕?->女朋友陪你玩游戏(C)(下)
七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩扫雷~
想过七夕?->女朋友陪你玩游戏(C)(下)
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
219 0
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
三个想要改变世界的黑客马拉松活动
当提到黑客马拉松的时候,你会想到编程,对吧? 当然, 编程是黑客马拉松的来源, 但随着更多的非盈利性组织和公民领袖把它当成是社会化的创新活动,现在的黑客马拉松也不仅仅是编程了。
161 0
三个想要改变世界的黑客马拉松活动
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等