日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏)

發布時間:2025/3/21 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們會發現我們網上看到的打字游戲都是上來就敲代碼,小白看的一臉懵,所以鑫哥在這給大家送上一份超級詳細的打字游戲編寫流程及對應的結果展示,希望可以幫到小白進行入門學習。

話不多說,我們先看一下什么叫做打字游戲:

運行效果

很簡單的一個C語言的小游戲,接下來鑫哥將帶領大家進行編寫運行。

一、開發環境:

本次使用的環境為:Ubuntu系統云+sublime進行開發的。

二、框架分析:

最外層時一個大循環:----------while

打印游戲規則

按下任意鍵打印生成的隨機字符串(20字母的字符串)

先生成一個隨機的字符串----按下任意鍵----打印出來

按下任意鍵----生成一個隨機的字符串----打印出來

按下任意鍵(需要做出一個沒有回顯的)----------獲取鍵盤輸入

生成一個隨機的字符串(生成 隨機數->字母->數組)(已知次數循環)--for-函數的調用

打印出來--------輸出

按照上面的字符串進行敲鍵盤

同時進行判斷,如果正確就原樣輸出,如果錯誤就_輸出-------if ---else

在第0次按下時開始計時、最后結束計時--------調用時間函數獲取當前系統時間

如果按下的按鍵和對應的數組中的字母相同---原樣輸出(同時k++)

如果不一樣-----打印_

最后完成了,打印用時、正確個數(正確個數由k表示)

用時 = 結束時間-開始時間 正確個數 = k

按下esc退出、按下空格鍵繼續

判斷按下的是什么

ESC退出: retrun 0;//結束當前函數并返回一個0

空格繼續:清屏繼續玩

三、開始編程:

1.能玩一次的打字游戲

1.1打印游戲規則:

#include <stdio.h> int main() {//1.打印游戲規則printf("按下任意鍵開始游戲,按下首字母開始計時,正確原樣輸出,錯誤_表示n");//2.按下任意鍵,生成一個隨機的字符串,打印輸出 }

運行效果

1.2.按下任意鍵

提供給大家一個源碼:mygetch 無回顯的getchar(不需要回車)

//------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;} //----------------------------------------------------- 復制粘貼在main函數上方進行使用

正常代碼:(按下任意鍵不需要知道按了什么,所以不需要用變量去接返回值)

#include <stdio.h> //------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;} //----------------------------------------------------- int main() {//1.打印游戲規則printf("按下任意鍵開始游戲,按下首字母開始計時,正確原樣輸出,錯誤_表示n");//2.按下任意鍵,生成一個隨機的字符串,打印輸出mygetch();//函數名+( );就表示函數的調用 按下任意鍵return 0; }

運行效果

將隨機數->字母

#include <stdio.h> #include <stdlib.h> #include <time.h> int main() {srand(time(NULL));//設置隨機數種子,使用的是時間(當前的系統時間)int a =rand();printf("%dn",a);char b = a%26+'a';//一個很大的數%26取余就變成了0-25//一個0-25的數+‘a’就變成了‘a’-‘z’隨機字母(ASCII碼)printf("%cn",b);return 0; }

運行效果

創建數組,將生成好的字母(字符)放入數組的對應位置中

#include <stdio.h> //------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> #include <stdlib.h> #include <time.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;} // //-----------------------------------------------------int main() {char haha[20] = "";//20 表示的是數組的長度srand(time(NULL));//設置隨機數種子,使用的是時間(當前的系統時間)//循環的生成、放入、生成、放入//因為一共20次,因此我們使用已知循環次數的循環forint i;mygetch();//按下任意鍵for (i = 0; i < 20; ++i)//要將int i= 0;的int去掉{// char b = rand()%26+'a';//生成一個隨機的字母// haha[i] = b;//給數組中的第i個賦值haha[i] = rand()%26+'a';}printf("%sn", haha);//打印生成好的隨機字符串// int a =rand();// printf("%dn",a);// char b = a%26+'a';// //一個很大的數%26取余就變成了0-25// //一個0-25的數+‘a’就變成了‘a’-‘z’隨機字母// printf("%cn",b);return 0; }

按照你上面有的字符進行敲擊鍵盤

#include <stdio.h> //------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> #include <stdlib.h> #include <time.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;} // //----------------------------------------------------- int main() {char haha[20] = "";//20 表示的是數組的長度srand(time(NULL));//設置隨機數種子,使用的是時間(當前的系統時間)int i;mygetch();//按下任意鍵for (i = 0; i < 20; ++i)//要將int i= 0;的int去掉{haha[i] = rand()%26+'a';}printf("%sn", haha);//打印生成好的隨機字符串int time_s = 0,time_e = 0,k = 0;for (i = 0; i < 20; ++i){char a = mygetch();//獲取鍵盤輸入的一個字符if (i == 0){time_s = time(NULL);//如果第0次按下就獲取下當前的時間}if (a == haha[i]){printf("%c", a);k++;}elseprintf("_");}time_e = time(NULL);printf("n");printf("用時:%ds,正確個數%d個n",time_e - time_s ,k);return 0; }

運行效果

3.如何做成可以玩多次的打字游戲:

按下空格就打印haha,按下esc就退出

#include <stdio.h> //------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> #include <stdlib.h> #include <time.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;} int main(int argc, char const *argv[]) {int r = 1;while(1)//死循環{printf("hahahahahan");r = 1;while(r){printf("esc退出,空格繼續,其他不好使n");char ch = mygetch();if (ch == 27){return 0;}else if (ch ==32){r = 0;}elser = 1;}}return 0; }

將上面進行合并最后就是整個小項目:

#include <stdio.h> //------------------封裝好的mygetch------------------ #include <termios.h> #include <unistd.h> #include <stdlib.h> #include <time.h> char mygetch(){struct termios oldt, newt;char ch;tcgetattr( STDIN_FILENO, &oldt );newt = oldt;newt.c_lflag &= ~( ICANON | ECHO );tcsetattr( STDIN_FILENO, TCSANOW, &newt );ch = getchar();tcsetattr( STDIN_FILENO, TCSANOW, &oldt );return ch;}int main(int argc, char const *argv[]) {int r = 1;while(1)//死循環{system("clear");//清空屏幕printf("按下任意鍵開始游戲,按下首字母開始計時,正確原樣輸出,錯誤_表示n");char haha[21] = "";//20 表示的是數組的長度srand(time(NULL));//設置隨機數種子,使用的是時間(當前的系統時間)int i;mygetch();//按下任意鍵for (i = 0; i < 20; ++i)//要將int i= 0;的int去掉{haha[i] = rand()%26+'a';}printf("%sn", haha);//打印生成好的隨機字符串int time_s = 0,time_e = 0,k = 0;for (i = 0; i < 20; ++i){char a = mygetch();//獲取鍵盤輸入的一個字符if (i == 0){time_s = time(NULL);//如果第0次按下就獲取下當前的時間}if (a == haha[i]){printf("%c", a);k++;}elseprintf("_");}time_e = time(NULL);printf("n");printf("用時:%ds,正確個數%d個n",time_e - time_s ,k);r = 1;while(r){printf("esc退出,空格繼續,其他不好使n");char ch = mygetch();if (ch == 27){return 0;}else if (ch ==32){r = 0;}elser = 1;}}return 0; }

打字游戲最終的運行效果

感謝各位小伙伴的支持歡迎點贊關注,謝謝,配合B站使用更佳

鑫哥B站:

千鋒項目體驗課-自制ipod-2打字游戲框架_嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili?www.bilibili.com 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av基地| 国产亚洲综合精品 | 在线视频a| 亚洲精品在线观 | 亚洲中文字幕无码av永久 | 久久久黄色片 | 国产资源站 | 免费成人高清在线视频 | 国产一精品一aⅴ一免费 | 久久刺激 | 国产噜噜噜 | 久久综合爱 | 国产毛片精品国产一区二区三区 | 欧美极品第一页 | 黄色天堂 | 69sex久久精品国产麻豆 | 精品动漫一区 | 久久国产精品一区二区三区 | 午夜精品视频在线观看 | 国产人妻精品久久久久野外 | 超碰在线免费97 | 伊人网av在线 | 豆花在线观看 | 邻家有女4完整版电影观看 欧美偷拍另类 | 日韩少妇高潮抽搐 | 成人在线短视频 | 成人免费网站 | 2020国产精品 | 每日在线观看av | 国产视频一级 | 免费av不卡 | 久久久久五月 | 影音先锋在线观看视频 | 在线看片网站 | 国产婷婷一区二区三区久久 | 午夜激情视频网 | 亚洲一区二区三区久久久 | 日本三级视频在线播放 | 亚洲欧美第一页 | 久久97人妻无码一区二区三区 | 国产性70yerg老太 | 开心激情综合 | 色漫在线观看 | 韩国一级片在线观看 | 亚洲污片| 东北老女人av | 亚洲综合激情五月久久 | 欧洲一二三区 | 亚洲av无码一区二区二三区 | 日韩精品电影在线观看 | 久久亚洲网站 | 视频这里只有精品 | 成人在线超碰 | 国产绿帽刺激高潮对白 | 免费看国产黄色 | 在线观看的网站 | 超碰青青操| 无码人妻久久一区二区三区不卡 | 韩国一区二区在线观看 | 少妇一级淫免费播放 | 免费在线日本 | 亚洲av日韩av永久无码下载 | 色欧美88888久久久久久影院 | 欧美色图俺去了 | 欧美精品一区二区蜜臀亚洲 | 亚洲无线看 | 欧美在线视频网站 | 高清国产一区二区三区 | 台湾佬美性中文娱乐网 | 亚洲精品乱码久久久久久麻豆不卡 | 在线免费观看黄色小视频 | 国产毛片高清 | wwwxxx日本| 婷婷中文| 欧美日韩久久久久 | 北条麻妃久久精品 | sese亚洲| 精品一区二区三区四区五区六区 | 人妻洗澡被强公日日澡电影 | 向着小小的花蕾绽放 | 国产香蕉视频在线观看 | 日本成人精品视频 | 国产精品69毛片高清亚洲 | 92久久精品一区二区 | 日韩一级片免费在线观看 | 国产一区二区三区四区五区 | 香蕉久久网站 | 双性皇帝高h喷汁呻吟 | 91在线无精精品白丝 | 亚洲国产精品激情在线观看 | cao在线视频| 妺妺窝人体色www婷婷 | 亚洲h视频在线观看 | 国产无遮挡免费观看视频网站 | 国产99久久久欧美黑人 | 日本美女视频一区 | 亚洲精品成a人 | 亚洲天堂h | 美女100%视频免费观看 |