简易音游底力练习器 C++ 自带楼梯板(Version 5)
/*
第一次修改优化了随机数,代码见 https://www.bilibili.com/read/cv11974105
第二次修改修复了输出错误,代码已删除。
第三次修改做到了下落式,代码已删除。
第四次修改修复了刷新屏幕时闪烁以及时间和规定时间内击中数量显示不正确的Bug。
Version4.1修复了位置四为空的问题。
Version5 自带楼梯,从楼梯和随机打勾内随机查找。
类似于别踩白块禅模式,20秒电脑版。
推荐编译器(编辑器):Dev-C++(下载页面:https://lanzoux.com/imXG3gpfjej)
Dev-C++备用下载页面: https://lanzoui.com/imXG3gpfjej
Dev-C++适用于Windows7-64Bit以上。若您是XP系统请使用VC6.0以上。
仅限Bilibili,转载请提前私信我(二次开发不算)
*/
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <windows.h>
using namespace std;
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
int main() {
system("color 7a");
cout << "请按照屏幕上的字符\"√\"按下键盘按键(1:D,2:f,3:J,4:K)\n按任意键开始游戏\n";
int t = 0;
getch();
system("cls");
int d = 0;
time_t start = time(0);
srand(time(0));
int Miss = 0, Tap = 0, b[2][8], ran, t1 = 0;
for (int i = 0; i <= 7; i++) {
for (int j = 0; j <= 1; j++) {
b[j][i] = 4;
}
}
b[0][0] = 0;
b[0][1] = 1;
b[0][2] = 2;
b[0][3] = 3;
b[0][4] = 1;
b[0][5] = 3;
b[0][6] = 1;
b[0][7] = 2;
for (int i = 0; i <= 7; i++) {
b[1][i] = rand() % 4;
}
char a[4] = {'d', 'f', 'j', 'k'}, c;
while (time(0) - start <= 20) {
if (t1 % 8 == 0) {
ran = rand() % 2;
t1 = 0;
}
for (int i = 0; i <= 7; i++) {
switch (b[ran][i]) {
case 0:
cout << "√ × × ×\n";
break;
case 1:
cout << "× √ × ×\n";
break;
case 2:
cout << "× × √ ×\n";
break;
case 3:
cout << "× × × √\n";
break;
}
}
c = getch();
Tap++;
if (ran == 1 && c == a[b[1][7]]) {
Tap++;
b[1][7] = b[1][6];
b[1][6] = b[1][5];
b[1][5] = b[1][4];
b[1][4] = b[1][3];
b[1][3] = b[1][2];
b[1][2] = b[1][1];
b[1][1] = b[1][0];
b[1][0] = rand() % 4;
gotoxy(0, 0);
} else if (ran == 0 && c == a[b[0][7]]) {
Tap++;
t = b[0][7];
b[0][7] = b[0][6];
b[0][6] = b[0][5];
b[0][5] = b[0][4];
b[0][4] = b[0][3];
b[0][3] = b[0][2];
b[0][2] = b[0][1];
b[0][1] = b[0][0];
b[0][0] = t;
gotoxy(0, 0);
} else {
d = time(0) - start;
system("cls");
break;
}
gotoxy(0, 0);
t1++;
}
system("cls");
if (d == 0) {
cout << "击中:" << Tap - 1 << " 耗时约20\"";
} else {
cout << "您击错了。\n击中:" << Tap << " 耗时约" << d << '\"';
}
getch();
getch();
}