项目说明:

曾做过电脑版的,后来接触Arduino后做了一个Arduino版。

材料:Arduino、2004液晶屏、电阻(用于调节液晶屏对比度)、面包版、排线等。

代码:

#include

#include

//Keypad.h下载地址:https://github.com/Chris--A/Keypad

int Combo=0;

long randomNumber=0;

int Rand[8];

char key;

char str[32];

char time[32];

const byte ROWS=2;  //矩阵键盘行数

const byte COLS=4;  //矩阵键盘列数

//按键定义

char Keys[ROWS][COLS]={

{'1', '2', '3', '4'},

{'5', '6', '7', '8'}

};

byte rowPins[ROWS]={6, 7};  //行 针脚连接6端口(忽略7端口)

byte colPins[COLS]={5, 4, 3, 2};  //列 针脚分别连接5、4、3、2端口

Keypad keypad=Keypad(makeKeymap(Keys), rowPins, colPins, ROWS, COLS);

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

//液晶屏最右侧显示提示信息

void start(){

lcd.setCursor(19, 0);

lcd.print('1');

lcd.setCursor(19, 1);

lcd.print('2');

lcd.setCursor(19, 2);

lcd.print('3');

lcd.setCursor(19, 3);

lcd.print('4');

}

//游戏结束显示提示信息

void display(){

lcd.clear();

lcd.setCursor(6, 1);

lcd.print("Game Over");

lcd.setCursor(5, 2);

lcd.print("Combo: ");

lcd.setCursor(12, 2);

itoa(Combo, str, 10);

lcd.print(str);

lcd.setCursor(0, 3);

lcd.print("time:");

for(int i=0; i<10; i++){

delay(1000);

itoa((9-i), time, 10);

lcd.setCursor(5, 3);

lcd.print(time);

}

}

void setup(){

Serial.begin(9600);

randomSeed(analogRead(0));  //0端口随机读取一个数值作为随机数种子

lcd.begin(20, 4);  //设置2004液晶

}

void loop(){

//一共四个键,生成1~4的随机数,用Rand数组储存

for(int i=7; i>=1; i--){

Rand[i]=random(1, 5);

}

while(1){

if(Rand[1]==0){

for(int i=1;i<=6;i++){

int j=i+1;

Rand[i]=Rand[j];

}

Rand[7]=random(1, 5);

}

//讲Rand数组储存的数值以#号代替“白块”显示在液晶屏上

for(int i=7;i>=1;i--){

if(Rand[i]==1){

lcd.setCursor(19-i, 3);

lcd.print('#');

}else if(Rand[i]==2){

lcd.setCursor(19-i, 2);

lcd.print('#');

}else if(Rand[i]==3){

lcd.setCursor(19-i, 1);

lcd.print('#');

}else if(Rand[i]==4){

lcd.setCursor(19-i, 0);

lcd.print('#');

}

if(key){

lcd.clear();

}

}

start();

key=keypad.getKey();

//按键判定

if(key){

if((int)key-48==Rand[1]){

Rand[1]=0;

Combo++;

}else{

display();

Rand[1]=0;

Combo=0;

}

}

}

}

代码比较简单,只能实现按键按下,“块”下落,无法使之自动下落。也由于液晶屏特性,残影比较严重,无法实现其自由下落。

接线:

液晶屏        Arduino

RS ————>  7

E —————> 8

D3 ————> 9

D4 ————> 10

D5 ————> 11

D6 ————> 12

按键接线见程序。

效果如图

别踩白块儿游戏c语言代码,Arduino 模拟“别踩白块儿”游戏相关推荐

  1. 约瑟夫双向生死游戏c语言代码,数据结构程序设计——约瑟夫双向生死杀人游戏...

    首先是主函数: /** *版权所有(C)2017,ShangWenZhe * *文件名称:main.cpp *文件标识:无 *内容摘要:本文件的作用是调用算法库里面的函数,完成题目要求. *其它说明: ...

  2. 弹力球C语言课程设计,弹力球游戏c语言代码.docx

    弹力球游戏c语言代码 #include #include #include #include /*定义游戏级别*/#define ELEMENTARY 15 /*初级*/#define INTERME ...

  3. 弹力球c语言代码运行,弹力球游戏c语言代码

    弹力球游戏c语言代码 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 #include #include #include #inc ...

  4. 快快吃豆游戏c语言代码,C语言快快吃豆游戏.doc

    C语言快快吃豆游戏 C语言--快快吃豆游戏 使用说明 运行程序时,首先进入到是游戏开始界面,根据提示,按键,决定是否进入游戏.运行效果如图7.1所示. 图7.1 进入游戏界面 按两下任意键,进入到快快 ...

  5. 猜成语游戏c语言代码,拼音首字母猜词语游戏 快乐大本营的一个游戏,给了些拼音的首字母,然后组词,让方块移到对面,这个游戏叫什么名字?...

    快乐大本营的一个游戏,给了些拼音的首字母,然后组词,让方块移到对面,这个游戏叫什么名字? 游戏名字叫'天才笨笨碰'游戏规则两人同时坐在椅子上(椅子会喷气.翻倒和摇晃),随机给出4个活动声母和一个固定声 ...

  6. h5游戏php语言什么意思,我们常说的H5游戏是什么意思?

    原标题:我们常说的H5游戏是什么意思? 国内游戏行业发展越来越成熟,2017年H5游戏行业市场规模在30-40亿元,随着用户认知度提高和消费升级完成,未来潜在市场空间在300亿元以上,有望成为游戏行业 ...

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

    今天练习了一个C语言小程序,控制台版的简易"金山打字"小游戏. 效果图: 代码: #include #include #include #include void printfSp ...

  8. c语言小游戏跳一跳代码及注释,如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...

    原标题:如何获得微信小游戏跳一跳源码以及源代码组合包括哪些 很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇 ...

  9. 五子棋c语言代码 贴吧,控制台版本的五子棋游戏

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需求定义: 编写程序实现两人互玩的五子棋游戏.游戏开始时要求在控制台输出以下棋盘,然后提示黑方和白方下子,玩家从命令行输入落子坐标,如:1-2,表示在第二 ...

  10. 2048游戏C语言代码

    听说2048游戏实现起来很easy! 所以今天就试了试!确实不太难,要想编的很成功,也不是太容易!有很多细节需要考虑! 下面是我自己设计的代码,估计里面会漏洞百出!希望路过大神能指点一二! #incl ...

最新文章

  1. VLC架构及流程分析
  2. 介绍几款Web TimeSheet相关的软件
  3. CryptoQuant CEO:比特币大规模从Coinbase流出是最强劲的看涨信号
  4. 独家揭秘!抖音爆款实时视频漫画变身特效背后技术
  5. 2019 互联网大事记:谁是最后的赢家?
  6. vs生成命令和属性的宏
  7. 【转】你用什么手机,你就是什么人品!!
  8. matlab的imnoise
  9. 面向对象的数据库db4o: 安装并使用db4o
  10. android 创建线程的三种方式
  11. 脉冲响应函数方差分解Eviews
  12. 2018铁三测评题write以及一些想送给你们的话
  13. 太极定二仪,清浊始以形:红黑树的实现和性质
  14. 小男孩学机器人编程好还是学钢琴好
  15. Java中元空间解析
  16. [生存志] 第56节 李聃函谷授道德经
  17. GJB5000A与CMMI的区别与共性
  18. JAVA451小轮好不好,20寸 406 451的通勤代步用途的小轮, 50/39T的齿比比较安逸, 大家觉得呢?...
  19. Java爬虫入门篇---Jsoup工具
  20. 爱丁堡大学的PMR(PMR in the University of Edinburgh)【1】

热门文章

  1. 怎么用计算机属性打开文件,鼠标双击打不开文件怎么办 鼠标双击变成属性的解决方法...
  2. 2015中国企业500强名单
  3. [python] 多值参数(定义多值参数的函数、案例演练、元组和字典的拆包)
  4. 卡尔沃宁方法 | 计算运动目标心率
  5. springboot 定时器使用方法之并行
  6. 高校如何优雅的使用Ipv6--抱着道长的大腿
  7. c语言怎样处理lrc文件格式,lrc文件的一般格式是什么_教你如何打开lrc文件 - 驱动管家...
  8. 服装销售系统计算机毕业论文,大学本科计算机专业服装销售管理系统设计毕业论文.doc...
  9. 计算机网络实验双绞线制作,实验一 双绞线制作实验报告
  10. 双绞线连接布线方案(计算机网络)