一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏
2017-01-03 22:02
267 查看
今天练习了一个C语言小程序,控制台版的简易“金山打字”小游戏。
效果图:
代码:
很好玩,对于java基础好的童鞋,写这些没什么逻辑问题,最主要的就是找一找功能函数,还有C语言是不支持在for循环中定义变量的,这里用的C++编译器,OK的。所以看到如此代码,不要疑惑。
效果图:
代码:
#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的。所以看到如此代码,不要疑惑。
相关文章推荐
- c++函数
- 【C++】学习笔记二十三——字符函数库cctype
- C++之指向const对象的指针和const指针
- webpopupwindow.cpp
- [C++] C++ DFS 记录层数两种写法dfs(int v) dfs(int v,int level)
- webpage.cpp
- urllineedit.cpp
- tabwidget.cpp
- browser.cpp
- browserwindow.cpp
- main.cpp——simplebrowser
- C程序设计笔记1-5章,简介/数据类型/结构
- c++学习第二天
- C++的string类IO输入
- 数制转换
- 最大连续子序列之和
- 基于VS C++平台的OpenCV设置,实现简单的行人检测
- 解决Win10下_findnext()异常
- C++笔试常考题 虚函数
- leetcode 409 Longest Palindrome C++