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

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

时间:2021-02-14 23:59:42

相关推荐

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

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

效果图:

代码:

#include

#include

#include

#include

void printfSpace(int num){

for(int i=0;i

printf(" ");

}

}

void printfColumn(int num){

for(int i=0;i

printf("\r\n");

}

}

void printfRow(int num){

for(int i=0;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

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的。所以看到如此代码,不要疑惑。

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