源代码:

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std; char temp;
int t=0,score=0,x=12,l1,l2,x1,x2;
char cmd[20][40];
void show(void){
for(int i=0;i<20;i++){
for(int j=0;j<40;j++){
cout<<cmd[i][j];
}
cout<<endl;
}
}
bool check(void){
for(int i=0;i<20;i++){
for(int j=0;j<40;j++){
if(cmd[i][j]=='O')return true;
}
}
return false;
}
void refresh(int status){
if(status==1)cmd[x][2]='O',cmd[x+1][2]=' ';//--x之后执行的刷新操作
if(status==0)cmd[x][2]='O',cmd[x-1][2]=' ';//++x之后执行的刷新操作
if(x1==0 && x2==0){
x1=39;x2=39;l1=rand()%8;l2=rand()%8;score+=10;return;
}
for(int i=0;i<l1;i++){
cmd[i][x1]='#';
}
for(int i=0;i<l2;i++){
cmd[20-i][x2]='#';
}
if(x1!=39 && x2!=39){//把上次的填充为空格
for(int i=0;i<l1;i++){
cmd[i][x1+1]=' ';
}
for(int i=0;i<l2;i++){
cmd[20-i][x2+1]=' ';
}
}
}
void game_over(void){
system("cls");
printf("GAME OVER.YOUR SCORE IS:%04d\n",score);
system("pause");
exit(0);
}
int main(){
system("title flying_game");
srand(time(0));
x1=39;x2=39;l1=rand()%11;l2=rand()%11;
cmd[x][2]='O';
printf("PRESS ANY KEY TO CONTINUE.\n");
getch();
for(;;){
system("cls");
printf("SCORE..%04d\n",score);
show();
if(clock()-t>200){
--x1;--x2;++x;refresh(0);
t=clock();
}
if(_kbhit()){
temp=getch();
if(temp==' '){
--x;
}
refresh(1);
}
if(check()==false){
game_over();
}
}
}

游戏截图:

原理:

使用随机数进行计算柱子的位置,按下空格键把小球上移,碰到柱子结束游戏。使用cmd数组保存杆子等元素的位置,在数组中绘图,然后再显示在输出控制台上。

灵感来源于https://www.cnblogs.com/xiaocaibiancheng/p/15254972.html

本来想用easyx写一个图形版本的然而太复杂就直接用控制台了

C++ 飞行游戏的更多相关文章

  1. Python游戏编程(Pygame)

    安装Pygame pip install pygame C:\Users> pip install pygame Collecting pygame Downloading https://fi ...

  2. 15款Cocos2d-x游戏源码

    (1)用cocos2d-x开发的中国象棋游戏源码 使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现.新局面.悔棋.游戏音乐.胜利后会显示游戏结果. 源码下载:http://www ...

  3. App Store中的开源游戏汇总

    这是国外达人收集的曾经在app store上出现过,或者还在app store上卖的iOS开源游戏的列表,其中代码大部分人你托管在google code或者github上,其中有很多使用Cocos2D ...

  4. 作业八:团队项目——Alpha阶段项目总结

    1.项目的预期目标 最初的项目计划实现一款类似微信飞机大战这样的一款模拟飞行游戏,中途也没有变动. 2.目前项目实现的功能. 击落飞机并计分. 3.下阶段我们可以增加游戏更多的功能,以及增加网络在线对 ...

  5. 未来的 Web:九个不可思议的 WebGL 应用试验

    WebGL 技术允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Ca ...

  6. [转]的C#实现三维数字地形漫游(基于Irrlicht)

    马省轩  任丽娜 摘  要:本文采用C#编程语言,利用Irrlicht三维图形引擎实现了三维数字地形的漫游.为三维数字地形显示提供了较易实现的解决方案. 关键词:C#   高度图 Irrlicht引擎 ...

  7. ubuntu如何安装chromium浏览器并设置成中文版

    在Ubuntu上使用APT安装Chromium有3种方法: 1.在Ubuntu软件中心输入chromium,然后在结果中选择安装即可. 2.在新立得软件包管理器中输入chromium,然后标记安装即可 ...

  8. 引擎设计跟踪 ShadowMap 细节和分析

    之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...

  9. Unity 环境区域网格化

    在使用A星算法和物体布局的过程中,常常会使用的网格的概念,即建立在网格的基础上,会使得游戏的相关编程变得简单的多. 格子的代码: using System.Collections; using Sys ...

随机推荐

  1. Docker部署ELK之部署filebeat7.6.0(3)

    1. filebeat介绍 Filebeat是用于转发和集中日志数据的轻量级传送工具.Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logsta ...

  2. 详细讲讲netty的pipiline!

    前言 提到 Netty 首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到 NioEventLoopGroup 这个线程池,接下来进入正题. 线程模型 首先来看一段 Netty ...

  3. Tag Helper 标签助手

    简介 标签助手是Razor 页面中自动生成HTML语句的可重用组件.标签助手对应特定的HTML标签,ASP.NET Core 包含大量与HTML标签对应的预定义标签助手. Razor页面中的标签助手作 ...

  4. Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)

    靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...

  5. python关于多级包之间的引用问题

    首先得明确包和模块. 包:在一个目录下存在__init__.py,那么该目录就是一个包. 模块:一个.py文件就是一个模块. 我们可以通过from 包 import 模块来引入python文件, 也可 ...

  6. noip20

    T1 首先,这个插球,就是森林中连点,考虑dp,我们设 \(dp_{i,j}\) 表示有i个点的森林,有j个点在第一颗树中的概率,转移时考虑第i个点是否在第一颗子树里,转移方程: \[dp_{i,j} ...

  7. 虚拟机下安装Centos设置静态ip,并通过桥接连接

    Centos7.6设置静态IP 1.CentOS7默认网卡设备文件存放于该目录下 /etc/sysconfig/network-scripts/ 网卡设备默认的名字为:ifcfg-ens33 查看网卡 ...

  8. C# AppDomain 详解

    AppDomain 详解 AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序. AppDomain是CLR实现代码隔离的基本机制.每一个AppDomain可以单独运 ...

  9. C# wpf中DataGrid 支持汇总行

    最近有一个需求,需要汇总金额,份额等字段.我们使用的是原生的WPF控件,自己开发了一套Template.而没有使用比较成熟的第三方控件.所以这个功能得自己开发.并且要做成控件层次的功能. 当然也可以这 ...

  10. 关于int和Integer缓存(一):以及设计构想(享元模式)

    关于Integer的值缓存:在介绍Integer的值缓存之前,我们需要了解的是,java中的包装类型,我们都知道java中有包装类型int                     Integer    ...