資料介紹
描述
我們都喜歡那種懷念童年和青春期玩過的游戲的感覺。幾個游戲機和電腦游戲標志著這個時代。偉大的游戲之一是 Windows 操作系統的掃雷,如圖 1 所示。
在這個游戲中,我們的目標是選擇一個沒有炸彈的位置。否則,我們輸掉了比賽。
因此,我們在考慮這款游戲的概念時,我們創建了這個項目,目的是帶回一款眾所周知的游戲:雷區。
![poYBAGNsWT-AZeMkAABus0_cjl0079.jpg](https://file.elecfans.com/web2/M00/79/5B/poYBAGNsWT-AZeMkAABus0_cjl0079.jpg)
我們的項目包括一個簡單的游戲,具有出色的動態,可以選擇由兩個人玩。
你的主要目標是選擇一個沒有炸彈的空方格。如果有炸彈,游戲就結束了。否則,游戲繼續。基于此,每個位置將由連接到 Arduino 的按鈕表示。
因此,在本文中,您將學習以下概念:
1. 為Arduino開發雷區游戲;
2.學習使用random和randomseed函數。
所以,接下來,我們將開始與Arduino一起開發雷區游戲,讓您與朋友一起玩得開心。
使用 Arduino 開發掃雷游戲
基于此工作原理,開發了圖 1 中的以下電路。
![pYYBAGNsWUeAKCR9AARyP2jRT9Q610.jpg](https://file.elecfans.com/web2/M00/79/EA/pYYBAGNsWUeAKCR9AARyP2jRT9Q610.jpg)
如我們所見,該電路由負責處理游戲邏輯的 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 被激活,表示游戲已經開始,玩家可以開始游戲。然后,用戶必須選擇一個按鍵,如下面的電路所示。
![pYYBAGNsWUqAMOV1AAI1yAvUnlM372.jpg](https://file.elecfans.com/web2/M00/79/EA/pYYBAGNsWUqAMOV1AAI1yAvUnlM372.jpg)
When a selected switch does not have the pump in place, the green LED will remain on and the red LED will remain off. 此外,蜂鳴器不會被觸發。這可以在下圖中看到。
![pYYBAGNsWVGAYxyBAAJAvkg_vw8321.jpg](https://file.elecfans.com/web2/M00/79/EA/pYYBAGNsWVGAYxyBAAJAvkg_vw8321.jpg)
如果用戶選擇了一個位置并有一個泵,紅色 LED 將亮起,綠色 LED 將熄滅,蜂鳴器將繼續響起。這可以在下圖中看到。
![poYBAGNsWVeAawu5AAJn08JgQ_8847.jpg](https://file.elecfans.com/web2/M00/79/5B/poYBAGNsWVeAawu5AAJn08JgQ_8847.jpg)
最后,我們包括一個重置按鈕,用于在泵啟動時重新啟動游戲。按下按鈕后,游戲重新開始,紅色 LED 熄滅,綠色 LED 亮起。
然后繪制另一個隨機圖釘,您的樂趣將繼續。這可以在圖 5 中看到。
![pYYBAGNsWVuAZVjpAAHlxG5sZ0g406.jpg](https://file.elecfans.com/web2/M00/79/EA/pYYBAGNsWVuAZVjpAAHlxG5sZ0g406.jpg)
接下來,我們將為您提供文件,以便在NEXTPCB 印刷電路板上安裝此項目。您可以免費使用和購買。
印刷電路板 NEXTPCB - Arduino Minesweeper
對于這個項目,我們決定為 Arduino UNO 創建一個 Shield 。在此板上,將連接 JST 以連接按鈕、LED 和蜂鳴器。
通過這種方式,我們為該項目開發了電子原理圖設計。示意圖如下圖所示。
![pYYBAGNsWWCAYpSoAAD7wj9qgJ8943.png](https://file.elecfans.com/web2/M00/79/EA/pYYBAGNsWWCAYpSoAAD7wj9qgJ8943.png)
下圖的原理圖是從電子原理圖中獲得的。如您所見,我們放置了 10 個 JST 連接器來連接項目的元素。
![poYBAGNsWWOAbp0nAACTrZ6GEAc990.png](https://file.elecfans.com/web2/M00/79/5B/poYBAGNsWWOAbp0nAACTrZ6GEAc990.png)
您現在可以在 3D 視圖中看到印刷電路板項目的結果。
![poYBAGNsWWaAAZoSAABdHIryKJc626.png](https://file.elecfans.com/web2/M00/79/5B/poYBAGNsWWaAAZoSAABdHIryKJc626.png)
使用您的NEXTPCB 盾牌 Arduino 掃雷器,您可以設置您的項目并與您的朋友一起玩樂。
結論
通過這個游戲的開發,我們學會了如何使用Arduino的幾個功能中的一個,以及如何創建一個互動項目,讓人們玩得開心。
這個項目很簡單,可以在家中與父母和孩子一起設置,也可以在學校設置。
為了讓您的樂趣更加完整,我們已經發布了所有文件,您可以通過此鏈接獲得您的 PCB 單元來設置此項目。
我們感謝低成本印刷電路板 - NEXTPCB 公司的支持,并關注我們的個人資料以接收新的有趣項目。
- GuessMe:為Arduino Cloud Games挑戰而打造的游戲開源
- Arduino微游戲開源硬件
- Arduino迷宮游戲開源分享
- 如何使用游戲手柄模塊制作Arduino SNAKE游戲
- Arduino井字游戲和熄燈游戲開源分享
- Arduino掌上游戲機開源分享
- Arduino游戲控制器開源分享
- Arduino游戲控制器開源
- Arduino陀螺游戲輪開源項目
- 基于Arduino硬件光控燈制作資料 7次下載
- 使用LabVIEW實現計算器和掃雷小游戲與走馬燈等實驗資料合集免費下載 104次下載
- 使用Java實現掃雷游戲的代碼免費下載 4次下載
- 使用LABVIEW設計掃雷軟件的畢業設計論文免費下載 43次下載
- 使用LabVIEW設計掃雷游戲的詳細資料說明 61次下載
- winmine.exe下載(windows自帶的掃雷游戲)
- Arduino模組的KiCad符號與封裝庫介紹 2046次閱讀
- 如何使用Python和PinPong庫控制Arduino 1033次閱讀
- 使用Rust和Nomad進行開源游戲服務器管理 661次閱讀
- C語言+easyX帶你實現:掃雷游戲(六邊形升級版)! 1920次閱讀
- 如何從網頁控制arduino? 4186次閱讀
- dfrobot Arduino Nano控制板介紹 5954次閱讀
- dfrobot模擬PH計 (Arduino兼容)簡介 2118次閱讀
- dfrobotRomeo 三合一Arduino兼容控制器介紹 2580次閱讀
- 接龍掃雷Windows經典游戲原來還有這些用處啊 3611次閱讀
- 關于FPGA在開源方面的探索淺析 3864次閱讀
- Arduino/樹莓派/單片機/arm區別分析 9893次閱讀
- Arduino使用光敏電阻實驗 9655次閱讀
- 淺談Arduino和樹莓派的區別 2.1w次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
- arduino開發板有什么用 2.1w次閱讀
下載排行
本周
- 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次下載 | 免費
評論