资料介绍
描述
我们都喜欢那种怀念童年和青春期玩过的游戏的感觉。几个游戏机和电脑游戏标志着这个时代。伟大的游戏之一是 Windows 操作系统的扫雷,如图 1 所示。
在这个游戏中,我们的目标是选择一个没有炸弹的位置。否则,我们输掉了比赛。
因此,我们在考虑这款游戏的概念时,我们创建了这个项目,目的是带回一款众所周知的游戏:雷区。
我们的项目包括一个简单的游戏,具有出色的动态,可以选择由两个人玩。
你的主要目标是选择一个没有炸弹的空方格。如果有炸弹,游戏就结束了。否则,游戏继续。基于此,每个位置将由连接到 Arduino 的按钮表示。
因此,在本文中,您将学习以下概念:
1. 为Arduino开发雷区游戏;
2.学习使用random和randomseed函数。
所以,接下来,我们将开始与Arduino一起开发雷区游戏,让您与朋友一起玩得开心。
使用 Arduino 开发扫雷游戏
基于此工作原理,开发了图 1 中的以下电路。
如我们所见,该电路由负责处理游戏逻辑的 Arduino UNO、模拟位置的按钮以及 LED 和蜂鸣器组成,通过灯光和声音信号指示游戏中的胜负.
从现在开始,我们将介绍电路的操作和电路中实现的逻辑。
Arduino扫雷
游戏的主要目标是找到一个没有炸弹的空地。否则,如果用户按下泵所在的按钮,系统将产生用户输掉游戏的警报信号。
为此,我们将使用按钮来模拟每个正方形。我们将使用编程逻辑来绘制其中一个按钮的数字引脚号。抽奖后,地雷将分配给相应的按钮。
这样,我们现在将展示开发项目的代码。
代码如下所示。
int numero;
int estado;
int buzzer = 2;
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
randomSeed(analogRead(A0));
numero = random(8,14);
}
void loop()
{
digitalWrite(3, HIGH);
estado = digitalRead(numero);
while(estado == 1)
{
digitalWrite(4, HIGH);
tone(buzzer,1500);
delay(100);
digitalWrite(3, LOW);
noTone(buzzer);
digitalWrite(4, LOW);
tone(buzzer,1500);
delay(100);
digitalWrite(3, HIGH);
noTone(buzzer);
delay(100);
while(estado == 0)
{
estado = 1;
}
}
}
如您所见,首先为连接到按钮的数字引脚声明了一个变量。此外,我们将创建一个变量来检查这些按钮的状态,即它们是处于高逻辑状态还是低逻辑状态。
最后,我们为蜂鸣器声明一个变量,并为该变量分配一个数字端口。
int numero; // Variável referente aos pinos digitais conectados aos botões //
int estado; // Variável para verificar o estado dos botôes, se estão em nivel lógico alto ou baixo. //
int buzzer = 2; // Váriavel atribuida ao pino digital 7, referente ao buzzer.//
接下来,我们有设置功能。在此函数中,我们将用于连接按钮的 I/O 引脚配置为输入,将 LED 和蜂鸣器引脚配置为输出。
此外,我们使用 randomSeed 函数。此函数使用在断开的模拟输入上读取的值作为参数来生成种子值。因为众所周知,断开的模拟引脚会生成随机值,因此,我们对代码中生成的值产生了真正的随机影响。
除了 randomseed 函数,我们还使用 random 函数。此函数从内部 Arduino 预先建立的列表中返回数字。这是一个巨大的乱码列表,并且总是相同的数字序列,实际上它不是随机数。
当我们重新启动 Arduino 时,它会再次启动此序列。
对于这个项目,我们抽奖了一个 8-14 范围内的数字。选择这些值是因为它们是连接到 Arduino 上的按钮的数字引脚的值。
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
randomSeed(analogRead(A0));
numero = random(8,14);
}
最后,我们有循环功能。开始时,绿色 LED 被激活,表示游戏已经开始,玩家可以开始游戏。然后,用户必须选择一个按键,如下面的电路所示。
When a selected switch does not have the pump in place, the green LED will remain on and the red LED will remain off. 此外,蜂鸣器不会被触发。这可以在下图中看到。
如果用户选择了一个位置并有一个泵,红色 LED 将亮起,绿色 LED 将熄灭,蜂鸣器将继续响起。这可以在下图中看到。
最后,我们包括一个重置按钮,用于在泵启动时重新启动游戏。按下按钮后,游戏重新开始,红色 LED 熄灭,绿色 LED 亮起。
然后绘制另一个随机图钉,您的乐趣将继续。这可以在图 5 中看到。
接下来,我们将为您提供文件,以便在NEXTPCB 印刷电路板上安装此项目。您可以免费使用和购买。
印刷电路板 NEXTPCB - Arduino Minesweeper
对于这个项目,我们决定为 Arduino UNO 创建一个 Shield 。在此板上,将连接 JST 以连接按钮、LED 和蜂鸣器。
通过这种方式,我们为该项目开发了电子原理图设计。示意图如下图所示。
下图的原理图是从电子原理图中获得的。如您所见,我们放置了 10 个 JST 连接器来连接项目的元素。
您现在可以在 3D 视图中看到印刷电路板项目的结果。
使用您的NEXTPCB 盾牌 Arduino 扫雷器,您可以设置您的项目并与您的朋友一起玩乐。
结论
通过这个游戏的开发,我们学会了如何使用Arduino的几个功能中的一个,以及如何创建一个互动项目,让人们玩得开心。
这个项目很简单,可以在家中与父母和孩子一起设置,也可以在学校设置。
为了让您的乐趣更加完整,我们已经发布了所有文件,您可以通过此链接获得您的 PCB 单元来设置此项目。
我们感谢低成本印刷电路板 - NEXTPCB 公司的支持,并关注我们的个人资料以接收新的有趣项目。
- GuessMe:为Arduino Cloud Games挑战而打造的游戏开源
- Arduino微游戏开源硬件
- Arduino迷宫游戏开源分享
- 如何使用游戏手柄模块制作Arduino SNAKE游戏
- Arduino井字游戏和熄灯游戏开源分享
- Arduino掌上游戏机开源分享
- Arduino游戏控制器开源分享
- Arduino游戏控制器开源
- Arduino陀螺游戏轮开源项目
- 基于Arduino硬件光控灯制作资料 6次下载
- 使用LabVIEW实现计算器和扫雷小游戏与走马灯等实验资料合集免费下载 98次下载
- 使用Java实现扫雷游戏的代码免费下载 4次下载
- 使用LABVIEW设计扫雷软件的毕业设计论文免费下载 38次下载
- 使用LabVIEW设计扫雷游戏的详细资料说明 49次下载
- winmine.exe下载(windows自带的扫雷游戏)
- Arduino模组的KiCad符号与封装库介绍 1502次阅读
- 如何使用Python和PinPong库控制Arduino 718次阅读
- 使用Rust和Nomad进行开源游戏服务器管理 517次阅读
- C语言+easyX带你实现:扫雷游戏(六边形升级版)! 1570次阅读
- 如何从网页控制arduino? 3836次阅读
- dfrobot Arduino Nano控制板介绍 5611次阅读
- dfrobot模拟PH计 (Arduino兼容)简介 1944次阅读
- dfrobotRomeo 三合一Arduino兼容控制器介绍 2372次阅读
- 接龙扫雷Windows经典游戏原来还有这些用处啊 3481次阅读
- 关于FPGA在开源方面的探索浅析 3706次阅读
- Arduino/树莓派/单片机/arm区别分析 9736次阅读
- Arduino使用光敏电阻实验 9532次阅读
- 浅谈Arduino和树莓派的区别 2.1w次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
- arduino开发板有什么用 2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多