从@小蔡编程 那里获得的灵感,原文地址:https://www.cnblogs.com/xiaocaibiancheng/p/15158997.html

那篇文章是说python写打字游戏的,本文就用C++语言写一遍。

废话少说,先上代码:

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std; int score=0;
char a[5][5];
int start_time;
char temp; int randbetween(int bottom,int top){
return rand()%(top-bottom)+bottom;
}
void refresh(){
system("cls");
printf("SCORE..%08d\n",score);
for(int i=4;i>0;i--){//向下移动
for(int j=0;j<5;j++){
a[i][j]=a[i-1][j];
}
}
for(int i=0;i<5;i++){
a[0][i]=(char)randbetween('a','z');//生成随机字符
}
for(int i=0;i<5;i++){
if(a[4][i]!='\0'){//字符到了最后一行
cout<<"GAME OVER";exit(0);
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(a[i][j]!='\0')printf("%c ",a[i][j]);
else printf(" ");
}
printf("\n");
}
} void run(char c){
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(a[i][j]==c)a[i][j]='\0',score+=10;
}
}
system("cls");
printf("SCORE..%08d\n",score);
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(a[i][j]!='\0')printf("%c ",a[i][j]);
else printf(" ");
}
printf("\n");
}
} int main(){
srand(time(0));
system("title game");
for(;;){
start_time=clock();
refresh();
while(clock()-start_time<=3000){//3秒以内
if(_kbhit()){
temp=getch();
run(temp);
}
}
}
/*for(;;){
cout<<(char)randbetween('a','z');
getchar();
}*/
return 0;
}

简单说下代码,

每隔一段时间需要刷新一下屏幕,刷新也就是refresh。因此我们把这些内容写进refresh函数。主要用途:

1,把每一行的元素往下移动

2,最上面一行加入随机字符,randbetween其实是模仿excel中的一个函数,基本还是调用rand标准库函数。

3,如果最下面一行有字符还没有消除,那么就game over

然后是run函数,用于消除字符。我们反复使用getch()函数进行输入字符,通过run进行判断字符是否在数组中,如果在数组中就把它消除掉。

main函数中,clock()-start_time<=3000是指和上一次刷新时间相隔3000ms,也就是3秒。这样就可以指定3秒刷新一次。

system("title game")用于把标题栏设置为game。

效果演示:

C++打字小游戏的更多相关文章

  1. python 打字小游戏

    最近随便用python的pygame编了这个打字小游戏 只要有字母调到窗口底部就结束 上代码: import pygame.freetype import sys import random pyga ...

  2. c#实现简单金山打字小游戏(源码)

    using GameDemo.Utils;using System;using System.Collections.Generic;using System.Linq;using System.Te ...

  3. [have_fun] 好玩哒小游戏

    好玩哒,打字小游戏:http://zty.pe/ 可好玩了,一起来玩吧!

  4. 分享几个原生javascript面向对象设计小游戏

    一.序言 不知大家是不是和我一样,当初都有个梦想.学编程,就是想开发游戏.结果进入大学学习之后,才知道搞的是数据库应用程序开发!在此,本人就分享下业余时间做的几个小游戏吧!本打算想用winform或w ...

  5. jQuery实践-网页版2048小游戏

    ▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...

  6. 拼图小游戏之计算后样式与CSS动画的冲突

    先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲 ...

  7. 推荐10款超级有趣的HTML5小游戏

    HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...

  8. 如何开发一个简单的HTML5 Canvas 小游戏

    原文:How to make a simple HTML5 Canvas game 想要快速上手HTML5 Canvas小游戏开发?下面通过一个例子来进行手把手教学.(如果你怀疑我的资历, A Wiz ...

  9. JavaScript版拼图小游戏

    慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...

随机推荐

  1. JAVA 调用第三方短信平台接口发送短信

    做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...

  2. 去掉文件中的^M

    一般情况下用:set ff=unix就可以解决问题,如果无效,用下面的方法手工完成: :%s/[ctrl+v] [ctrl+m]//g ctrl+v表示按住Ctrl键再按下v键.

  3. Git-03-工作区和暂存区

    工作区和暂存区的概念 工作区 工作区:就是电脑里能看到的目录,如现在学习的目录github 暂存区 版本库:工作区内有一个隐藏目录 .git,这个叫做版本库 git版本库中有一个重要的区叫做暂存区(i ...

  4. MySQL-09-SQL执行计划

    SQL执行计划获取及分析 介绍 (1)获取到的是优化器选择完成的,他认为代价最小的执行计划. 作用: 语句执行前,先看执行计划信息,可以有效的防止性能较差的语句带来的性能问题. 如果业务中出现了慢语句 ...

  5. Vue系列-04-项目1

    路飞学城项目 项目搭建 创建项目目录 # cd 项目目录 # vue init webpack luffy 效果 根据上面的提示,我们已经把vue项目构建好了,接下来我们可以在vscode编辑器中把项 ...

  6. STM32—4线SPI驱动SSD1306 OLED

    文章目录 一.OLED简介 二.驱动SSD1306所需知识 1.引脚介绍 2.通信时序 3.显存GRAM 4.字库 5.SSD1306基本命令 三.代码讲解 1.相关引脚配置 2.模拟SPI通信 3. ...

  7. STM32—ADC详解

    文章目录 一.ADC简介 二.ADC功能框图讲解 1.电压输入范围 2.输入通道 3.转换顺序 4.触发源 5.转换时间 6.数据寄存器 7.中断 8.电压转换 三.初始化结构体 四.单通道电压采集 ...

  8. 题解 [SDOI2010]所驼门王的宝藏

    传送门 保分题再度爆零,自闭ing×2 tarjan没写vis数组,点权算的也有点问题 这题情况3的连边有点麻烦,考场上想了暴力想了二分就是没想到可以直接拿map水过去 不过map果然贼慢,所以这也是 ...

  9. noip模拟15

    T1 恶心的数学题,还卡空间... 于是考虑数组二次调用,用完memset 记录一手二维前缀和对不同询问离线修改,最后一块回答即可 Code #include<cstdio> #inclu ...

  10. 简单实现 nodejs koa2 mysql 增删改查 制作接口

    1.首先 在电脑上安装 nodejs (此处略过) 2.全局安装 koa2 (这里使用的淘宝镜像cnpm,有兴趣的同学可以自行搜索下) cnpm install koa-generator -g 3. ...