欢迎访问 如意编程网!

如意编程网

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

程序员是怎样练打字速度

发布时间:2024/5/15 编程问答 1 豆豆
如意编程网 收集整理的这篇文章主要介绍了 程序员是怎样练打字速度 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

大家好!欢迎大家来预览此文章,今天我们做出自己的“打字游戏”、还配它音乐(7种音符)

》》》》》》》》》》》》》》》》》》》》

演示效果

素材音乐(do re mi fa so la xi)链接:素材(do re mi fa so la xi)

我不多解释啦!直接上代码,代码有注释

/* 程序类型:(命令行)游戏 编写时间:2019年12月8日16:44:58 游戏说明:本游戏为打字游戏,为了训练手速而设计的,容量小,功能简单,方便,游戏规则为 屏幕上方出现字幕慢慢往下流下来 字幕流到屏幕下方是消失 并生命值减一,减到0为止游戏结束,字幕流到屏幕底之前敲键盘上的相应的字幕会消掉次字幕并得分积一分,积分的同时播放音符,每集10分会改变屏幕字符颜色并游戏速度加速一 个单位,按错会语音提示dong~~~~~ 作者:Abr(A贝尔) 开发环境:VS2019 运行环境:Windows7 ,Windows8.1 ,Windows10 (x64 x86) */#define _CRT_SECURE_NO_WARNINGS //跳过安全检查 #include "windows.h" #include "stdio.h" #include "string.h" #include<mmsystem.h> #include "conio.h"//_getch #pragma comment(lib, "WINMM.LIB")int playMusic(int nums);//播放素材音符int chushizhi = 0; // int speed = 300; //游戏速度 int shengming = 3; //生命 int defen, zifu_x, zifu_y;//输出坐标 char zifu; //输出字符 char color = '3'; //字体颜色 char strcolor[256] = "color 0", strcolorr[256] = "\0";//play music //播放素材音符 int playMusic(int num) {//根据素材序号生成素材名char fileName[MAX_PATH];sprintf(fileName, "music\\%d", num);strcat(fileName, ".mp3");char shortName[MAX_PATH] = { "\0" };GetShortPathNameA(fileName, shortName, sizeof(shortName) / sizeof(char));//获取绝对路径char cmd[MAX_PATH];sprintf(cmd, "play %s", shortName);//播放命令mciSendStringA(cmd, NULL, 0, NULL);//播放素材Sleep(2000 + 50); //这里是防止一播放就结束做的延迟return 0; }void huanhang(int num)//循环换行 改变字符y坐标 {for (int i = num; i > 0; i--){printf("\r\n");} } void kongge(int num)//循环打印空格 改变字符x坐标 {for (int i = num; i > 0; i--){printf(" ");} } void gamehead()//游戏头 初始化界面 {strcpy(strcolorr, strcolor);strcat(strcolorr, &color);system(strcolorr);//命令行颜色kongge(40);printf("欢迎来到Abr打字游戏!\r\n");huanhang(2);kongge(40);printf("生命:%d", shengming);kongge(5);printf("得分:%d\n", defen);for (int i = 100; i > 0; i--)printf("-"); }int main()//主函数 { CG://重新开始标签//初始化变量值color = '3'; //字体颜色shengming = 3; //生命初始化为3defen = 0; //得分清零zifu_y = 0; //字符y坐标清零int num = 1;while (TRUE)//死循环{system("cls");//清屏gamehead();//游戏头huanhang(8);//换行kongge(40);//空格printf("请安任意键开始游戏!");//中间位置输出提示_getch();//按任意键继续while (TRUE){system("cls");//清屏gamehead();//游戏头zifu = 'a' + rand() % 26;//随机输出任意a-z的字符zifu_x = rand() % 99;//字符输出x轴位置int NumMusic = 0; //素材序号清零while (TRUE){//文字往下流代码部分zifu_y++;if (zifu_y > 18)//文字留下来的最低点{shengming -= 1;if (shengming == 0)//判断游戏结束{system("cls");//清屏//居中显示游戏结束huanhang(8);kongge(40);printf("游戏结束!\n");//居中显示游戏得分kongge(40);printf("得分:%d\n", defen);GC://重新输入标签huanhang(2);kongge(24);printf("推出游戏( T )\t\t重新开始( C )\n");char temp = getchar();switch (temp){case 'c':case 'C':goto CG;//重新开始标签 调到游戏头重新开始break;case 't':case 'T':exit(0);//结束游戏break;default:{system("cls");//清屏kongge(24);printf("请重新输入正确标签!\n");goto GC;//按其它键就调到重新输入位置}}exit(0);}zifu_y = 0;//初始化字符行位置break;}kongge(zifu_x);//打印空格printf("%c", zifu);//打印字符Sleep(speed);//下流速度printf("\b \n");//消除最后打印的字符并按空格符if (_kbhit())//判断是否有键盘消息{//printf("\a");//有键盘消息就播放系统提示音dong~~~if (zifu == _getch())//判断是否相同{defen += 1;//敲对就得分加1//把素材从头到尾播放一遍 if (10 == (defen - chushizhi))//每加10分游戏速度加快一个单位{color++;if (color > '9'){color = '2';}strcpy(strcolorr, strcolor);strcat(strcolorr, &color);system(strcolorr);//命令行颜色chushizhi = defen;speed -= 20;CreateThread(NULL, NULL, (unsigned long(__stdcall*)(void*))playMusic, 8, NULL, NULL);//}else{if (num > 7)num = 1;CreateThread(NULL, NULL, (unsigned long(__stdcall*)(void*))playMusic, (void*)num, NULL, NULL);//num++;}zifu_y = 0;//初始化字符行位置break;//退出本次循环} else{printf("\a");//打错就播放系统提示音dong~~~}}}}} }

总结

以上是如意编程网为你收集整理的程序员是怎样练打字速度的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得如意编程网网站内容还不错,欢迎将如意编程网推荐给好友。