我正在为我的班级制作一个名为 Keyboard Trainer 的游戏,我遇到了一个问题,我想制作一个从 5 到 0 的循环,并检查每个数字是否插入了某些东西,比如一个字符,但是在我的代码中,它只是从 5 计数到 0 而对输入没有任何反应,我想让它对它做出反应,但它不会对倒计时做任何事情。
#include <cstdlib>
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
void countdown(){
for (int o = 5; o >= 0 ; o--)//Countdown timeris, kuris skaiciuoja nuo 5 iki 0
{
cout << o << " ";//Isveda timerio duomenis
Sleep(1000);//Palaukia 1 sekunde
}
}
int main(){
int ivestas_kl, sugeneruotas_kl, ats_neats = 0, taip_ne, Y_N, i = 0, ats = 0, neats = 0;
string taip;
cout << "Sveiki atvyke i Klaviaturos Treniruokli!\n";
cout << "Ar norite pradeti zaidima?(Y/N)?\n" << "Kai paspausite Y, jums atsiras zaidimo taisykles.\n\n";
Y_N = _getch();
if (Y_N == 121)//Patikrina ar Y_N yra Y raide
{
while (Y_N != 110 && i % 2 == 0)//Jei Y_N nera N ir i padalinus is 2 nelieka liekanos
{
i++;
cout << "\tTaisykles\n";
cout << "\t-------------------------------------------------------------------\n";
cout << "\t|Sio zaidimo metu, jus turesite paspausti atsitiktinai sugeneruota|\n\t|klavisa siam tikslui jus turesite 5s. Jei suspesite ji paspausti,|\n\t|jus gausite viena taska ir sitaip taskai bus pridedami po du, jei|\n\t|nesuklysdami atspesite kelis is eiles, bet jei neatspesite vieno,|\n\t|taskai vel prisides po viena ir taip kas 2 spejimus.Trukme- 1min.|\n";
cout << "\t-------------------------------------------------------------------\n";
cout << "Pradeti zaidima?(taip)\t";
cin >> taip;
while (Y_N != 27 && taip == "taip")//Kol Y_N nera ESC ir taip yra lygus taip
{
system("cls");
sugeneruotas_kl = rand() % 78 + 48;//Sugeneruoja betkoki skaciu nuo 48 iki 126
char kl = char(sugeneruotas_kl);//Konvertuoja is int i char
cout << "Spauskite " << kl << " !\n\n";//Parodo koki klavisa paspausti
countdown();
ivestas_kl = _getch();//Paima ivesta simboli
char konv_ivestas_kl = char(ivestas_kl);//Konvertuoja int i char
if (ivestas_kl != 0 && konv_ivestas_kl == kl)//Jei ivestas_kl nera lygus 0 ir konv_ivestas_kl yra lygus ivestam ir jei timerio laikas nesibaige
{
ats++;
cout << "\nTeisingai!\n\n" << "Norint baigti zaidima spauskite ESC.\n";
break;
}
else if (konv_ivestas_kl != kl)
{
neats++;
cout << "\nNespejote.\n\n";
break;
}//Else if pabaiga
}//For pabaiga
Y_N = _getch();
}
}//While pabaiga
}//Pirmo if pabaiga