【长期维护】C++休闲(修仙)躲方块小游戏
左右键控制小球左右移动,上键加速,Esc退出。
一个‘@’20分
#include <windows.h>
#include <bits/stdc++.h>
#include <conio.h> using namespace std; char mmp[][], putmmp[][]; int main() { system("color 70");
srand(time(NULL)); for (register int i = ; i <= ; i++) { mmp[i][] = mmp[i][] = mmp[i][] = mmp[i][] = mmp[i][] = ' '; if (i % == && i > ) { mmp[i][rand() % ] = '#';
if (i % == ) { mmp[i][rand() % ] = '@'; } } } int j = , x = , score = , delay = ;
char ch; mmp[j][x] = 'O'; for (register int i = ; i <= ; i++) { Sleep(delay);
if (i == )//500帧后加速(10帧一动)
delay = ;
if (i == )//1000帧后加速(10帧一动)
delay = ;
if (i == )//1500帧后加速(10帧一动)
delay = ; if (i % == ) { j++;
score++;
if (mmp[j][x] == '#') { system("cls");
printf("score:%d", score);
Sleep();
system("cls");
printf("again?(Y/N)");
ch = ;
while(ch ^ 'Y' && ch ^ 'y') { ch = getch();
if (ch == 'N' || ch == 'n') { exit(); } }
main(); }
if (mmp[j][x] == '@')
score += ;
mmp[j][x] = 'O';
system("cls");
putmmp[][] = '+', putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = '-', putmmp[][] = '+', putmmp[][] = '\n';
int p = ;
for (register int k = j + ; k >= j; k--, p++) { putmmp[p][] = '|'; for (register int l = ; l < ; l++) { putmmp[p][l + ] = mmp[k][l]; } putmmp[p][] = '|', putmmp[p][] = '\n'; }
putmmp[][x + ] = 'O';
fwrite(putmmp, , * , stdout);
puts("|\n+-----+"); } if (kbhit()) { ch = getch(); switch(ch) { case : exit(); break; case -: ch = getch(); switch(ch) { case : if (x > ) { if (mmp[j][x - ] == '#') { system("cls");
printf("score:%d", j);
Sleep();
system("cls");
printf("again?(Y/N)");
ch = ;
while(ch ^ 'Y' && ch ^ 'y') { ch = getch();
if (ch == 'N' || ch == 'n') { exit(); } }
main(); }
if (mmp[j][x - ] == '@') { score += ; }
mmp[j][x] = ' ';
x--;
mmp[j][x] = 'O';
} break; case : if (x < ) { if (mmp[j][x + ] == '#') { system("cls");
printf("score:%d", j);
Sleep();
system("cls");
printf("again?(Y/N)");
ch = ;
while(ch ^ 'Y' && ch ^ 'y') { ch = getch();
if (ch == 'N' || ch == 'n') { exit(); } }
main(); }
if (mmp[j][x + ] == '@') { score += ; }
mmp[j][x] = ' ';
x++;
mmp[j][x] = 'O';
} break; case : j++;
score++; if (mmp[j][x] == '#') { system("cls");
printf("score:%d", j);
Sleep();
system("cls");
printf("again?(Y/N)");
ch = ;
while(ch ^ 'Y' && ch ^ 'y') { ch = getch();
if (ch == 'N' || ch == 'n') { exit(); } }
main(); } mmp[j][x] = 'O';
Sleep();
system("cls");
putmmp[][] = '+', putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = '-', putmmp[][] = '+', putmmp[][] = '\n';
int p = ;
for (register int k = j + ; k >= j; k--, p++) { putmmp[p][] = '|'; for (register int l = ; l < ; l++) { putmmp[p][l + ] = mmp[k][l]; } putmmp[p][] = '|', putmmp[p][] = '\n'; }
putmmp[][x + ] = 'O';
fwrite(putmmp, , * , stdout);
puts("|\n+-----+"); break; } break; } mmp[j][x] = 'O';
system("cls");
putmmp[][] = '+', putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = putmmp[][] = '-', putmmp[][] = '+', putmmp[][] = '\n';
int p = ;
for (register int k = j + ; k >= j; k--, p++) { putmmp[p][] = '|'; for (register int l = ; l < ; l++) { putmmp[p][l + ] = mmp[k][l]; } putmmp[p][] = '|', putmmp[p][] = '\n'; }
putmmp[][x + ] = 'O';
fwrite(putmmp, , * , stdout);
puts("|\n+-----+"); } } return ; }
更新于二〇一九年八月六日(星期二)
#include <windows.h>#include <bits/stdc++.h>#include <conio.h>
using namespace std;
char mmp[10000001][6], putmmp[16][8];
int main() {
system("color 70");srand(time(NULL));
for (register int i = 1; i <= 10000000; i++) {
mmp[i][0] = mmp[i][1] = mmp[i][2] = mmp[i][3] = mmp[i][4] = ' ';
if (i % 3 == 0 && i > 30) {
mmp[i][rand() % 5] = '#';if (i % 20 == 0) {
mmp[i][rand() % 5] = '@';
}
}
}
int j = 1, x = 2, score = 1, delay = 10;char ch;
mmp[j][x] = 'O';
for (register int i = 1; i <= 100000000; i++) {
Sleep(delay);if (i == 500)//500帧后加速(10帧一动)delay = 8;if (i == 1000)//1000帧后加速(10帧一动)delay = 6;if (i == 1500)//1500帧后加速(10帧一动)delay = 4;
if (i % 10 == 0) {
j++;score++;if (mmp[j][x] == '#') {
system("cls");printf("score:%d", score);Sleep(1000);system("cls");printf("again?(Y/N)");ch = 1;while(ch ^ 'Y' && ch ^ 'y') {
ch = getch();if (ch == 'N' || ch == 'n') {
exit(0);
}
}main();
}if (mmp[j][x] == '@')score += 20;mmp[j][x] = 'O';system("cls");putmmp[0][0] = '+', putmmp[0][1] = putmmp[0][2] = putmmp[0][3] = putmmp[0][4] = putmmp[0][5] = '-', putmmp[0][6] = '+', putmmp[0][7] = '\n';int p = 1;for (register int k = j + 15; k >= j; k--, p++) {
putmmp[p][0] = '|';
for (register int l = 0; l < 5; l++) {
putmmp[p][l + 1] = mmp[k][l];
}
putmmp[p][6] = '|', putmmp[p][7] = '\n';
}putmmp[15][x + 1] = 'O';fwrite(putmmp, 1, 18 * 7, stdout);puts("|\n+-----+");
}
if (kbhit()) {
ch = getch();
switch(ch) {
case 27 :
exit(0);
break;
case -32:
ch = getch();
switch(ch) {
case 75 :
if (x > 0) {
if (mmp[j][x - 1] == '#') {
system("cls");printf("score:%d", j);Sleep(1000);system("cls");printf("again?(Y/N)");ch = 1;while(ch ^ 'Y' && ch ^ 'y') {
ch = getch();if (ch == 'N' || ch == 'n') {
exit(0);
}
}main();
}if (mmp[j][x - 1] == '@') {
score += 20;
}mmp[j][x] = ' ';x--;mmp[j][x] = 'O';}
break;
case 77 :
if (x < 4) {
if (mmp[j][x + 1] == '#') {
system("cls");printf("score:%d", j);Sleep(1000);system("cls");printf("again?(Y/N)");ch = 1;while(ch ^ 'Y' && ch ^ 'y') {
ch = getch();if (ch == 'N' || ch == 'n') {
exit(0);
}
}main();
}if (mmp[j][x + 1] == '@') {
score += 20;
}mmp[j][x] = ' ';x++;mmp[j][x] = 'O';}
break;
case 72:
j++;score++;
if (mmp[j][x] == '#') {
system("cls");printf("score:%d", j);Sleep(1000);system("cls");printf("again?(Y/N)");ch = 1;while(ch ^ 'Y' && ch ^ 'y') {
ch = getch();if (ch == 'N' || ch == 'n') {
exit(0);
}
}main();
}
mmp[j][x] = 'O';Sleep(5);system("cls");putmmp[0][0] = '+', putmmp[0][1] = putmmp[0][2] = putmmp[0][3] = putmmp[0][4] = putmmp[0][5] = '-', putmmp[0][6] = '+', putmmp[0][7] = '\n';int p = 1;for (register int k = j + 15; k >= j; k--, p++) {
putmmp[p][0] = '|';
for (register int l = 0; l < 5; l++) {
putmmp[p][l + 1] = mmp[k][l];
}
putmmp[p][6] = '|', putmmp[p][7] = '\n';
}putmmp[15][x + 1] = 'O';fwrite(putmmp, 1, 18 * 7, stdout);puts("|\n+-----+");
break;
}
break;
}
mmp[j][x] = 'O';system("cls");putmmp[0][0] = '+', putmmp[0][1] = putmmp[0][2] = putmmp[0][3] = putmmp[0][4] = putmmp[0][5] = '-', putmmp[0][6] = '+', putmmp[0][7] = '\n';int p = 1;for (register int k = j + 15; k >= j; k--, p++) {
putmmp[p][0] = '|';
for (register int l = 0; l < 5; l++) {
putmmp[p][l + 1] = mmp[k][l];
}
putmmp[p][6] = '|', putmmp[p][7] = '\n';
}putmmp[15][x + 1] = 'O';fwrite(putmmp, 1, 18 * 7, stdout);puts("|\n+-----+");
}
}
return 0;
}
【长期维护】C++休闲(修仙)躲方块小游戏的更多相关文章
- Java---俄罗斯方块小游戏
去年就已经学了这个技术了,一直没去写,现在抽个时间写了个俄罗斯方块游戏. 只有简单的新游戏,暂停,继续,积分功能.简单的实现了俄罗斯的经典功能. 不介绍了,有兴趣的自己运行一下,后面贴出了图片. 代码 ...
- keras 修仙笔记一
对于牛逼的程序员,人家都喜欢叫他大神:因为大神很牛逼,人家需要一个小时完成的技术问题,他就20分钟就搞定.Keras框架是一个高度集成的框架,学好它,就犹如掌握一个法宝,可以呼风唤雨.所以学keras ...
- oo修仙之路
写在前面: 之前听说过oo这门课的威力,计院全体修仙现场的图也被转了不知多少遍,然而自己不亲身经历就不知这门课的难度所在.每次debug时耳边总会想起三国杀里面周瑜的话"挣扎吧,在血和暗的深 ...
- 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截
程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构 .要想在之后的江湖历练中通关,数据结构必不可少. ...
- LazyCoder修仙之路
本人不才,没有高文凭,茹果本人的修仙[开发]之路能 ,走的很远,后来的人能看的上我 作品,有不足,和不对,帮帮我完善和理解.这也是我 学习笔记把!
- 运维(SA)修仙 之路
运维(SA)修仙 之路: 大纲: 系统 ,网络 ,数据库,开发 系统 :linux(cent OS && ubuntu) 网络 :路由,防火墙,安全 数据库:mysql, mong ...
- 《带你装B,带你飞》pytest修仙之路3 - setup/teardown
1. 简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次.当然还有更高级一点的setupClass和teardownClass ...
- 《带你装B,带你飞》pytest修仙之路5 - yield操作
1. 简介 上一篇中,我们刚刚实现了在每个用例之前执行初始化操作,那么用例执行完之后如需要清除数据(或还原)操作,可以使用 yield 来实现.fixture通过scope参数控制setup级别,既然 ...
- 从零搭建Golang开发环境--go修仙序章
1. 什么是go语言 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态 .强类型.编译型语言 .Go 语 ...
随机推荐
- 【Spring Boot源码分析】@EnableAutoConfiguration注解(一)@AutoConfigurationImportSelector注解的处理
Java及Spring Boot新手,首次尝试源码分析,欢迎指正! 一.概述 @EnableAutoConfiguration注解是Spring Boot中配置自动装载的总开关.本文将从@Enable ...
- axios对put操作对Android的支持之坑
### 前段时间我做的一个手机端H5项目,需要发送一个put请求.因为ajax现在用的人有点少了,而且公司里边都是用的axios,所以我也是用的是axios做的请求. ### 再开发的时候测试都没有问 ...
- CSS实现带箭头的提示框
我们在很多UI框架中看到带箭头的提示框,感觉挺漂亮,但是之前一直不知道其原理,今天网上找了些资料算是弄清楚原理了: 先上效果图: 原理分析: 上面的箭头有没有觉得很像一个三角形,是的,它就是三角形:只 ...
- 死磕 java线程系列之线程池深入解析——体系结构
(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己 ...
- [经验分享]C# 操作Windows系统计划任务
背景:我做了一个事情是要自己提前创建好很多要定时执行的任务,在我不在的时候自动执行这些程序,以保证我的工作能无人值守,那么我就需要建立系统计划任务来帮我完成这件事情,当然用脑子想想如何实现,很简单,每 ...
- icon font在sketch中的下载与安装
icon font的下载安装: 1.首先打开sketch--插件--管理插件--获取插件--搜索 icon font--点击icon font--clone or download--下载的是一个sk ...
- Kubernetes之Pod介绍
下图Pod的客户端有两类:其他Pod和集群外的客户端 集群外访问需要通过service提供固定端点访问 service的类型有:ClusterIP.NodePort.LoadBalancer.Exte ...
- PHP 插入排序 -- 直接插入排序
1)直接插入序 -- Straight Insertion Sort 时间复杂度 :O(n^2) 适用条件: 适合记录数不多的情况 1 <?php 2 $a = [0 =>3,4,5,1, ...
- JavaScript实现百度搜索页面
JavaScript实现百度搜索页面 HTML <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- 快速傅里叶变换(FFT)略解
前言 如果我们能用一种时间上比 \(O(n^2)\) 更优秀的方法来计算大整数(函数)的乘法,那就好了.快速傅里叶变换(FFT) 可以帮我们在 \(O(n\log n)\) 的时间内解决问题. 函数乘 ...