问题描述
- 是个C++打字游戏代码,新手,有很多错误,帮忙改下,谢谢,急用
-
#include graphics.h
#include conio.h
#include time.h// 欢迎界面
#include iostream
#include thread
using namespace std;
void welcome()
{
// 输出屏幕提示
cleardevice();
setcolor(YELLOW);
setfont(50, 0, "黑体");
outtextxy(160, 10, "打字母游戏");
// 实现闪烁的“按任意键继续”
int c=255;
while(!kbhit())
{setcolor(RGB(c, 0, 0));
outtextxy(280, 400, "游戏开始"); c-=8;
if (c<0) c=255;Sleep(20);
}getch();
cleardevice();
}// 退出界面
void goodbye()
{
int s;
cleardevice();
setcolor(YELLOW);
setfont(48, 0, "黑体");
outtextxy(110, 150, "最终成绩是:");
outtextxy(110, 250, s);
getch();
}
void time()
{
int a,b;
for(a=1;a!=61;a++)
{
char q[5];
sprintf(q,"%d",b-a);
outtextxy(20,20,q);
Sleep(1000);
if(b-a==0)
{
goto EXIT;} }
}// 主函数
void program()
{
int s;
char target[2] = "s"; // 定义字母字符串
char key; // 定义用户按键变量
srand(time(NULL)); // 设置随机种子
setfont(50, 0, "Arial"); // 设置字母的字体和大小
outtextxy(380,20,"分数:");
outtextxy(550,20,s); // 主循环
while(true)
{target[0] = 65 + rand() % 26; // 产生任意大写字母
int x = rand()%630;for (int y=0; y<460; y++)
{
setcolor(WHITE); // 设置字母的颜色
outtextxy(x, y, target); // 显示字母
if(kbhit())
{
key = getch();
if((key == target[0]) || (key == target[0] + 32))
{
// 设置清除
setcolor(BLACK);
outtextxy(x, y, target); // 清除原字符
/// int i++;
break; // 跳出循环,进行下一个字符
}
else if (key == 27)
{ goto EXIT; // 如果按ESC,退出游戏主循环
} int a;
// sprintf(i, "%d", a);
/// outtextxy(520,20,i);
}
// 延时,并清除原字符
Sleep(10);
setcolor(BLACK);
outtextxy(x, y, target);
}
}
}int main()
{
// 初始化屏幕为640x480initgraph(640, 480); welcome(); // 显示欢迎界面 std::thread first (time); std::thread second (program); first.join(); second.join(); EXIT: goodbye(); // 退出部分 // 关闭图形界面 closegraph();
}
解决方案
你要是着急,还是找一个现成的吧。比如
http://download.csdn.net/detail/zhcxy199133/4084675
你也可以自己google下
解决方案二:
你说的错误是运行错误还是编译错误?
如果是编译错误,那么就贴出编译错误提示信息。
运行错误的话,就需要你添加一些断点等,单步调试跟踪,起码自己先简单分析一下,有什么疑问再贴出来
解决方案三:
错误,你没有自己改过?请帖出具体的错误,大家分析你来改。
不要指望别人帮你干活