600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java青蛙过河打字_怎么写出英语单词的游戏 类似金山打字通里的激流勇进(青蛙过河...

java青蛙过河打字_怎么写出英语单词的游戏 类似金山打字通里的激流勇进(青蛙过河...

时间:2020-04-17 03:05:48

相关推荐

java青蛙过河打字_怎么写出英语单词的游戏 类似金山打字通里的激流勇进(青蛙过河...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

#include

#include

#include

#include

#include"graphics.h"

using namespace std;

#define wordnum 12//单词个数

char words[40][40] = { "const", "string", "true", "new", "delete", "static", "sort", "define", "stack", "queue", "namespace", "inline" };

void Welcome()

{

setcolor(YELLOW);

setfont(32, 0, "黑体");//设置字体大小和字体样式(字号 风格 字体)

outtextxy(230, 200, "欢迎来到打字母游戏");

int color = 255;

setfont(18, 0, "华文行楷");

while (true)

{

setcolor(RGB(color, 0, 0));

color -= 10;//颜色越来越暗 出现闪烁效果

if (color<0)

color = 255;//红色

outtextxy(300, 380, "按任意键进入游戏");

Sleep(20);

if (_kbhit())//有按键

{

getch();//接收按键 否则会留在缓冲区

cleardevice();//清屏 准备进入游戏界面

return;

}

}

}

#define MAXSTRING 1024

void PlayGame()

{

int x = 0, y = 0;

short target;//目标单词序号

char str_target[MAXSTRING];//目标单词

srand(time(0));//设置时间种子

int score = 0;

int level = 1;

int miss = 0;

setcolor(WHITE);

while (true)

{

target = rand() % wordnum;//随机生成单词序号

strcpy(str_target , words[target]);

x = rand() % 670 + 2;//随机生成产生单词的位置

setfillcolor(getbkcolor());//以背景色填充

//setfillstyle(EMPTY_FILL);//以背景色填充

//setfillstyle(SOLID_FILL,0);//用这个设置填充颜色并不行 只会出现白色

//让该字母从最顶上面往下落

short i = 0;

for (y = 1; y<520; y += level)

{

int flag = 0;

setfont(18, 0, "无衬线");

outtextxy(x, y, str_target);//string->char * ...char *p=str.data()

Sleep(20);

//bar画一个填充矩形 setfillstyle决定填充颜色

if (_kbhit())//一直有按键

{

int ch = _getch();

if (ch == 27)//'esc'--> exit

{

return;

}

if (ch == str_target[i] || ch == (str_target[i] + 32))//字母大小写

{

++i;

if (i == strlen(str_target))//这个单词打对了

{

bar(x, y, x + 10 * strlen(str_target), y + 16);//擦除刚写出来的

score++;

if (score % 10 == 0)

{

level++;

}

flag = 1;

break;

}

}

else

i = 0;//一旦打错 必须从头开始打这个单词

}

setfont(16, 0, "无衬线");

outtextxy(10, 10, "当前分数:");

char strscore[20];

sprintf(strscore, "%d", score);//swprintf_s(strscore,L"当前分数:%d",score);

//swprintf可以处理任意类型数据 而sprintf只能处理字符 字符串 整型数据

outtextxy(100, 10, strscore);

outtextxy(10, 30, "出错次数:");

char strmiss[20];

sprintf(strmiss, "%d", miss);//swprintf_s(strscore,L"当前分数:%d",score);

//swprintf可以处理任意类型数据 而sprintf只能处理字符 字符串 整型数据

outtextxy(100, 30, strmiss);

outtextxy(10, 50, "难度等级:");

char strlevel[20];

sprintf(strlevel, "%d", level);//swprintf_s(strscore,L"当前分数:%d",score);

//swprintf可以处理任意类型数据 而sprintf只能处理字符 字符串 整型数据

outtextxy(100, 50, strlevel);

if (flag == 1)

break;

}

if (y >= 520)

{

miss++;

}

Sleep(180);

bar(x, y, x + 10 * strlen(str_target), y + 20);//擦除刚写出来的 到等级4的时候就会出现白色轨迹.....

}

}

int main()

{

initgraph(720, 520);//640*480 basic

Welcome();//欢迎界面

PlayGame();//游戏界面

closegraph();

cout << "游戏结束 玩的开心否?" << endl;

system("pause");

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。