【发布时间】:2019-09-09 11:24:55
【问题描述】:
我正在为我的项目使用 turbo c++ 制作游戏程序,我需要有关如何添加游戏计时器的帮助,我看过有关如何使用 while 循环创建计时器的视频,但我不知道如何实现它到我的游戏。我的游戏计划是让它显示 6 个已初始化的字母(例如“NAEBTS”),并在 30 秒内输入尽可能多的具有对应点的单词(6=10pts,5=8pts,4=6pts,3=4pts )。正确的单词与对应的点一起写在一个txt文件中。整个事情也与 clrscr(); 循环在一起。
以下是部分游戏代码:
void start()
{
char arr[10][50] = {" B A N S E T ",
" L E A Z D Z ",
" M B L U E J ",
" P R G N I S ",
" A C Q U K Y ",
" S A H L E S ",
" R E D G A E ",
" Z E D Z U B "};
int i = 0;
int sum = 0;
int x = 0;
do
{
clrscr();
cout << "\n\t\t\t\t\t SCORE: " << sum << " pts"
<< "\n ******************************\n";
cout << " * " << arr[i] << " *\n";
cout << " ******************************\n\n";
char a[50], b[50];
int c;
if (arr[0])
{
ifstream fin;
fin.open("lvl1.txt");
if (fin.fail())
{
cout << "File doesn't exist!";
exit(1);
}
cout << "\tEnter word: ";
cin >> a;
do
{
fin >> b >> c;
if (fin.eof() == 1)
{
cout << "Incorrect! Try Again!";
delay(1500);
exit(1);
}
} while (strcmp(a, b) != 0);
fin.close();
if (strcmp(a, b) == 0)
{
sum += c;
}
}
} while(s != 0);
}
【问题讨论】:
-
只需阅读
time(),并在用户结束后再次阅读,看看每次通话间隔了多少秒。 -
如果你想让程序在 30 秒后自动超时,那会复杂得多。
-
time()返回 Unix 时间,即自1970-01-01 00:00 UTC以来经过的秒数。使用time()获取当前时间并将其保存到类似time_t start = time();的变量中。用户输入后,检查time() - start,如果结果超过30,则用户需要超过30秒才能写出答案。 -
@SmashMyKeyboard 你应该知道 turbo-c++ 在上个世纪已经过时了。使用它你不会学到任何对现代 c++ 编程有用的东西。
-
@Scheff 按照您提供的链接并在 Havenard 的帮助下。我能够使它成为一种速度运行,时间从 void start(); 开始。完成所有级别后打开和结束。它会打印出你完成游戏的速度,这也是我从一开始就希望它成为的好选择。顺便说一句,这也是我的第一篇文章,我喜欢这个社区。干杯