源代码:

#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. Awesome Notes

    Install $ sudo aptitude install awesome Build from source $ aria2c -s 5 http://awesome.naquadah.org/ ...

  2. 3、二进制安装K8s之部署kube-apiserver

    二进制安装K8s之部署kube-apiserver 一.生成 kube-apiserver 证书 1.自签证书颁发机构(CA) cat > ca-config.json <<EOF ...

  3. ManagementEventWatcher throws ManagementException with call to Stop()

    参考网址:https://stackoverflow.com/questions/46100105/managementeventwatcher-throws-managementexception- ...

  4. QT 编译的过程

  5. WPF---数据模板(一)

    一.场景模拟 假设我们现在有如下需求: 我们需要在ListBox中的每个Item中显示某个成员的姓名.年龄以及喜欢的颜色,点击Item的时候,会在右边显示详细信息,同时也想让ListBox的样式变得好 ...

  6. Object 的wait()方法

    The java.lang.Object.wait() causes current thread to wait until another thread invokes the notify() ...

  7. jQuery中ajax请求的六种方法(三、二):$.get()方法

    2.$.get()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  8. 【C语言】

    第3章 最简单的C程序设计 顺序程序设计 数据的表现形式及其运算 常量.变量.常变量.标识符 数据类型 整型.浮点型 整型数据的分类 最基本的整型类型 基本整型(int型):占2个或4个字节 短整型( ...

  9. windows下mysql5.7.17配置

    1.官网下载mysql5.7.17 64位 https://dev.mysql.com/downloads/mysql/ 2.安装完解压到E盘主目录下,改文件名为mysql 3.配置环境变量 我的电脑 ...

  10. js在不同页面的导航背景不同 (设置网站公共头的导航)

    <script type="text/javascript" src="js/jquery.min.js"></script> < ...