程序员是怎样练打字速度
生活随笔
收集整理的這篇文章主要介紹了
程序员是怎样练打字速度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大家好!歡迎大家來預覽此文章,今天我們做出自己的“打字游戲”、還配它音樂(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~~~}}}}} }總結
以上是生活随笔為你收集整理的程序员是怎样练打字速度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jetson_TK1_TX1学习网站
- 下一篇: 在Win10安装上Hadoop2.7.5