别踩白块儿游戏c语言代码,Arduino 模拟“别踩白块儿”游戏
项目说明:
曾做过电脑版的,后来接触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 模拟“别踩白块儿”游戏相关推荐
- 约瑟夫双向生死游戏c语言代码,数据结构程序设计——约瑟夫双向生死杀人游戏...
首先是主函数: /** *版权所有(C)2017,ShangWenZhe * *文件名称:main.cpp *文件标识:无 *内容摘要:本文件的作用是调用算法库里面的函数,完成题目要求. *其它说明: ...
- 弹力球C语言课程设计,弹力球游戏c语言代码.docx
弹力球游戏c语言代码 #include #include #include #include /*定义游戏级别*/#define ELEMENTARY 15 /*初级*/#define INTERME ...
- 弹力球c语言代码运行,弹力球游戏c语言代码
弹力球游戏c语言代码 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 #include #include #include #inc ...
- 快快吃豆游戏c语言代码,C语言快快吃豆游戏.doc
C语言快快吃豆游戏 C语言--快快吃豆游戏 使用说明 运行程序时,首先进入到是游戏开始界面,根据提示,按键,决定是否进入游戏.运行效果如图7.1所示. 图7.1 进入游戏界面 按两下任意键,进入到快快 ...
- 猜成语游戏c语言代码,拼音首字母猜词语游戏 快乐大本营的一个游戏,给了些拼音的首字母,然后组词,让方块移到对面,这个游戏叫什么名字?...
快乐大本营的一个游戏,给了些拼音的首字母,然后组词,让方块移到对面,这个游戏叫什么名字? 游戏名字叫'天才笨笨碰'游戏规则两人同时坐在椅子上(椅子会喷气.翻倒和摇晃),随机给出4个活动声母和一个固定声 ...
- h5游戏php语言什么意思,我们常说的H5游戏是什么意思?
原标题:我们常说的H5游戏是什么意思? 国内游戏行业发展越来越成熟,2017年H5游戏行业市场规模在30-40亿元,随着用户认知度提高和消费升级完成,未来潜在市场空间在300亿元以上,有望成为游戏行业 ...
- 金山打字游戏c语言代码,一天练习一个小C/C++程序(一) 控制台版“金山打字”游戏...
今天练习了一个C语言小程序,控制台版的简易"金山打字"小游戏. 效果图: 代码: #include #include #include #include void printfSp ...
- c语言小游戏跳一跳代码及注释,如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...
原标题:如何获得微信小游戏跳一跳源码以及源代码组合包括哪些 很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇 ...
- 五子棋c语言代码 贴吧,控制台版本的五子棋游戏
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需求定义: 编写程序实现两人互玩的五子棋游戏.游戏开始时要求在控制台输出以下棋盘,然后提示黑方和白方下子,玩家从命令行输入落子坐标,如:1-2,表示在第二 ...
- 2048游戏C语言代码
听说2048游戏实现起来很easy! 所以今天就试了试!确实不太难,要想编的很成功,也不是太容易!有很多细节需要考虑! 下面是我自己设计的代码,估计里面会漏洞百出!希望路过大神能指点一二! #incl ...
最新文章
- VLC架构及流程分析
- 介绍几款Web TimeSheet相关的软件
- CryptoQuant CEO:比特币大规模从Coinbase流出是最强劲的看涨信号
- 独家揭秘!抖音爆款实时视频漫画变身特效背后技术
- 2019 互联网大事记:谁是最后的赢家?
- vs生成命令和属性的宏
- 【转】你用什么手机,你就是什么人品!!
- matlab的imnoise
- 面向对象的数据库db4o: 安装并使用db4o
- android 创建线程的三种方式
- 脉冲响应函数方差分解Eviews
- 2018铁三测评题write以及一些想送给你们的话
- 太极定二仪,清浊始以形:红黑树的实现和性质
- 小男孩学机器人编程好还是学钢琴好
- Java中元空间解析
- [生存志] 第56节 李聃函谷授道德经
- GJB5000A与CMMI的区别与共性
- JAVA451小轮好不好,20寸 406 451的通勤代步用途的小轮, 50/39T的齿比比较安逸, 大家觉得呢?...
- Java爬虫入门篇---Jsoup工具
- 爱丁堡大学的PMR(PMR in the University of Edinburgh)【1】
热门文章
- 怎么用计算机属性打开文件,鼠标双击打不开文件怎么办 鼠标双击变成属性的解决方法...
- 2015中国企业500强名单
- [python] 多值参数(定义多值参数的函数、案例演练、元组和字典的拆包)
- 卡尔沃宁方法 | 计算运动目标心率
- springboot 定时器使用方法之并行
- 高校如何优雅的使用Ipv6--抱着道长的大腿
- c语言怎样处理lrc文件格式,lrc文件的一般格式是什么_教你如何打开lrc文件 - 驱动管家...
- 服装销售系统计算机毕业论文,大学本科计算机专业服装销售管理系统设计毕业论文.doc...
- 计算机网络实验双绞线制作,实验一 双绞线制作实验报告
- 双绞线连接布线方案(计算机网络)