900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏

一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏

时间:2020-12-23 02:11:23

相关推荐

一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏

今天练习了一个C语言小程序,控制台版的简易“金山打字”小游戏。

效果图:

代码:

#include<stdio.h>#include<stdlib.h>#include<windows.h>#include <conio.h>void printfSpace(int num){for(int i=0;i<num;i++){printf(" ");}}void printfColumn(int num){for(int i=0;i<num;i++){printf("\r\n");}}void printfRow(int num){for(int i=0;i<num;i++){printf("-");}}void printfHead(int level,int score){printfSpace(20);printf("levels:%d",level);printfSpace(10);printf("score:%d",score);//换行printfColumn(1);printfSpace(20);printf("1--pause");printfSpace(10);printf("0--exit");//换行printfColumn(1);//输出横线printfRow(80);}int main(){printfColumn(10);printfSpace(25);printf("press anykey to start");//阻塞等待输入getchar();//清屏幕system("cls");//C语言必须进行初始化int level=0,score=0,random = 0;//初始化头printfHead(level,score);//生成字母char firstC = 'A';while(true){//每一次循环先清屏,重新生成头布局system("cls");printfHead(level,score);//每次掉的时候先生成一个字母random = rand() % 26;char word = firstC + random;//生成显示在第几列(字母显示在第几列)int rowCount = rand() % 80;int limit = 20,i;//开始掉for(i = 0;i<limit;i++){printfSpace(rowCount);printf("%c",word);Sleep(200);//回吃掉字母并且在当前行下移一行printf("\b \n");//使用kbhit来监听键盘敲击,防止使用getchar造成阻塞if(kbhit()){//使用getch会读取一个字符,如果使用getchar会读取输入的所有内容char answer = getch();if(answer == word){score += 10;break;}else if(answer == '1'){//暂停函数,按任意键之后会再继续执行程序system("pause");}else if(answer == '0'){//退出程序exit(0);}}}//能走到这说明直到底都没有消除,所以减十分if(i == limit){score -= 10;if(score <= -30){system("cls");printfColumn(10);printfSpace(25);printf("game over!");break;}}}return 0;}

很好玩,对于java基础好的童鞋,写这些没什么逻辑问题,最主要的就是找一找功能函数,还有C语言是不支持在for循环中定义变量的,这里用的C++编译器,OK的。所以看到如此代码,不要疑惑。

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