用C++语言编写一个打字训练器

用C++语言编写一个打字训练器,第1张

// 打字母游戏

#include <graphics.h>

#include <conio.h>

#include <time.h>

// 欢迎界面

void welcome()

{

// 输出屏幕提示

cleardevice()

setcolor(YELLOW)

setfont(64, 0, "黑体")

outtextxy(160, 50, "打字母游戏")

setcolor(WHITE)

setfont(16, 0, "宋体")

outtextxy(100, 200, "就是很传统的那个掉字母然后按相应键就消失的游戏")

outtextxy(100, 240, "只是做了一个简单的实现")

outtextxy(100, 280, "功能并不很完善,比如生命数、分数等都没有写")

outtextxy(100, 320, "感兴趣的自己加进去吧")

// 实现闪烁的“按任意键继续”

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()

{

cleardevice()

setcolor(YELLOW)

setfont(48, 0, "黑体")

outtextxy(104, 180, "多写程序 不老青春")

getch()

}

//岁悄 主函数

void main()

{

initgraph(640, 480) //斗判 初始化屏幕为 640x480

welcome()// 显示欢迎界面

srand(time(NULL)) // 设置随机种子

setfont(16, 0, "Arial")// 设置字母的字体和大小

setfillstyle(BLACK) // 设置清除字母的填充区域颜色

char target // 目标字母

char key// 用户的按乎销渣键

int x, y// 字母的位置

// 主循环

while(true)

{

target = 65 + rand() % 26 // 产生任意大写字母

x = rand() % 620 // 产生任意下落位置

for (y=0y<460y++)

{

setcolor(WHITE) // 设置字母的颜色

outtextxy(x, y, target)// 显示字母

if(kbhit())

{

key = getch() // 获取用户按键

if((key == target) || (key == target + 32))

{

// 按键正确,“击落”字母(画黑色方块擦除)

bar(x, y, x + 16, y + 16)

break // 跳出循环,进行下一个字母

}

else if (key == 27)

{

goto EXIT // 如果按 ESC,退出游戏主循环

}

}

// 延时,并清除字母

Sleep(10)

bar(x, y, x + 16, y + 16)

}

}

EXIT:

// 退出部分

goodbye()

// 关闭图形界面

closegraph()

}

1、计算机中的所有数据都是以二进制存储的,因此字符也是以二进制存储且占用一个字节,在c语言中可以把char型当作只有野逗一个字节的有符号整数,8位有符号,最大正值就是127了。

2、例如:可以这样使用循环的

#include <消陪stdio.h>

#include <stdlib.h>

int main()

{

char c

int i

printf("please input a char:"拿脊蠢)

for(i='a'i<'t'i++)

printf("hello world!\n")

return 0

}

你需要计算被删除字符所在的区域(搭仔CRect),并使用InvalidateRect函数刷新这个区知猜汪域来清除区域;

根据你当前代码,并不能保证在一行的中间删除和中间插入可以正常(这需要更多计算和兆余处理),另外,也不能保证窗口最小化(或被遮盖)后重新显示可以正常(尤其多行)。

其实在视图中处理文本,应该使用CEditView更方便,使用标准CView基类,太多事情需要自己处理了,不划算。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12518763.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存