C++打字小游戏
从@小蔡编程 那里获得的灵感,原文地址: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++打字小游戏的更多相关文章
- python 打字小游戏
最近随便用python的pygame编了这个打字小游戏 只要有字母调到窗口底部就结束 上代码: import pygame.freetype import sys import random pyga ...
- c#实现简单金山打字小游戏(源码)
using GameDemo.Utils;using System;using System.Collections.Generic;using System.Linq;using System.Te ...
- [have_fun] 好玩哒小游戏
好玩哒,打字小游戏:http://zty.pe/ 可好玩了,一起来玩吧!
- 分享几个原生javascript面向对象设计小游戏
一.序言 不知大家是不是和我一样,当初都有个梦想.学编程,就是想开发游戏.结果进入大学学习之后,才知道搞的是数据库应用程序开发!在此,本人就分享下业余时间做的几个小游戏吧!本打算想用winform或w ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- 拼图小游戏之计算后样式与CSS动画的冲突
先说结论: 前几天写了几个非常简单的移动端小游戏,其中一个拼图游戏让我郁闷了一段时间.因为要获取每张图片的位置,用`<style>`标签写的样式,直接获取计算后样式再用来交换位置,结果就悲 ...
- 推荐10款超级有趣的HTML5小游戏
HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...
- 如何开发一个简单的HTML5 Canvas 小游戏
原文:How to make a simple HTML5 Canvas game 想要快速上手HTML5 Canvas小游戏开发?下面通过一个例子来进行手把手教学.(如果你怀疑我的资历, A Wiz ...
- JavaScript版拼图小游戏
慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...
随机推荐
- JAVA 调用第三方短信平台接口发送短信
做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...
- 去掉文件中的^M
一般情况下用:set ff=unix就可以解决问题,如果无效,用下面的方法手工完成: :%s/[ctrl+v] [ctrl+m]//g ctrl+v表示按住Ctrl键再按下v键.
- Git-03-工作区和暂存区
工作区和暂存区的概念 工作区 工作区:就是电脑里能看到的目录,如现在学习的目录github 暂存区 版本库:工作区内有一个隐藏目录 .git,这个叫做版本库 git版本库中有一个重要的区叫做暂存区(i ...
- MySQL-09-SQL执行计划
SQL执行计划获取及分析 介绍 (1)获取到的是优化器选择完成的,他认为代价最小的执行计划. 作用: 语句执行前,先看执行计划信息,可以有效的防止性能较差的语句带来的性能问题. 如果业务中出现了慢语句 ...
- Vue系列-04-项目1
路飞学城项目 项目搭建 创建项目目录 # cd 项目目录 # vue init webpack luffy 效果 根据上面的提示,我们已经把vue项目构建好了,接下来我们可以在vscode编辑器中把项 ...
- STM32—4线SPI驱动SSD1306 OLED
文章目录 一.OLED简介 二.驱动SSD1306所需知识 1.引脚介绍 2.通信时序 3.显存GRAM 4.字库 5.SSD1306基本命令 三.代码讲解 1.相关引脚配置 2.模拟SPI通信 3. ...
- STM32—ADC详解
文章目录 一.ADC简介 二.ADC功能框图讲解 1.电压输入范围 2.输入通道 3.转换顺序 4.触发源 5.转换时间 6.数据寄存器 7.中断 8.电压转换 三.初始化结构体 四.单通道电压采集 ...
- 题解 [SDOI2010]所驼门王的宝藏
传送门 保分题再度爆零,自闭ing×2 tarjan没写vis数组,点权算的也有点问题 这题情况3的连边有点麻烦,考场上想了暴力想了二分就是没想到可以直接拿map水过去 不过map果然贼慢,所以这也是 ...
- noip模拟15
T1 恶心的数学题,还卡空间... 于是考虑数组二次调用,用完memset 记录一手二维前缀和对不同询问离线修改,最后一块回答即可 Code #include<cstdio> #inclu ...
- 简单实现 nodejs koa2 mysql 增删改查 制作接口
1.首先 在电脑上安装 nodejs (此处略过) 2.全局安装 koa2 (这里使用的淘宝镜像cnpm,有兴趣的同学可以自行搜索下) cnpm install koa-generator -g 3. ...