Агуулгын хүснэгт:

Arduino Touch Tic Tac Toe тоглоом: 6 алхам (зурагтай)
Arduino Touch Tic Tac Toe тоглоом: 6 алхам (зурагтай)

Видео: Arduino Touch Tic Tac Toe тоглоом: 6 алхам (зурагтай)

Видео: Arduino Touch Tic Tac Toe тоглоом: 6 алхам (зурагтай)
Видео: Arduino - Tic Tac Toe Game with Touchpad 2024, Оны зургадугаар сарын
Anonim
Image
Image
Arduino Touch Tic Tac Toe тоглоом
Arduino Touch Tic Tac Toe тоглоом
Arduino Touch Tic Tac Toe тоглоом
Arduino Touch Tic Tac Toe тоглоом
Arduino Touch Tic Tac Toe тоглоом
Arduino Touch Tic Tac Toe тоглоом

Эрхэм хүндэт найзуудаа, Arduino -ийн өөр нэг хичээлд тавтай морил! Энэхүү нарийвчилсан заавар дээр бид Arduino Tic Tac Toe тоглоом бүтээх гэж байна. Таны харж байгаагаар бид мэдрэгчтэй дэлгэц ашиглаж, компьютерийн эсрэг тоглож байна. Tic Tac Toe шиг энгийн тоглоом бол тоглоомын програмчлал, хиймэл оюун ухааны гайхалтай танилцуулга юм. Хэдийгээр бид энэ тоглоомонд хиймэл оюун ухааны алгоритм ашиглахгүй ч гэсэн хиймэл оюун ухааны алгоритм нь илүү нарийн төвөгтэй тоглоомуудад яагаад шаардлагатай байгааг бид ойлгох болно.

Arduino -д зориулсан тоглоом хөгжүүлэх нь тийм ч хялбар биш бөгөөд маш их цаг хугацаа шаарддаг. Гэхдээ бид Arduino -д зориулж хэд хэдэн энгийн тоглоом бүтээх боломжтой, учир нь энэ нь хөгжилтэй бөгөөд хиймэл оюун ухаан гэх мэт програмчлалын илүү дэвшилтэт сэдвүүдийг судлах боломжийг олгодог. Энэ бол суралцах гайхалтай туршлага бөгөөд эцэст нь та хүүхдүүдэд сайхан тоглоом тоглох болно!

Одоо энэ төслийг боловсруулцгаая.

Алхам 1: Бүх эд ангиудыг авах

Image
Image
2.8
2.8

Энэхүү төслийг бүтээхэд дараахь хэсгүүд шаардлагатай болно.

An Arduino Uno ▶

2.8 инчийн мэдрэгчтэй дэлгэц ▶

Төслийн өртөг маш бага байна. Энэ нь ердөө 15 доллар юм

Энэхүү төслийг бүтээхээс өмнө мэдрэгчтэй дэлгэцийн талаар миний бэлтгэсэн видеог үзээрэй. Үүнийг би энэ зааварт хавсаргасан болно. Энэ нь кодыг ойлгох, мэдрэгчтэй дэлгэцийг тохируулахад тусална.

Алхам 2: Arduino -д зориулсан 2.8 инчийн мэдрэгчтэй өнгөт дэлгэц

Image
Image
2.8
2.8
2.8
2.8

Би энэ мэдрэгчтэй дэлгэцийг banggood.com дээрээс олж мэдээд зарим төслүүддээ ашиглахын тулд үүнийг худалдаж авахаар шийдсэн. Таны харж байгаагаар дэлгэц нь хямдхан бөгөөд ойролцоогоор 11 долларын үнэтэй байдаг.

Эндээс авна уу ▶

Дэлгэц нь 320x240 пикселийн нарийвчлалтай бөгөөд бамбай хэлбэрээр ирдэг бөгөөд энэ нь Arduino -тай холбогдоход маш хялбар болгодог. Таны харж байгаагаар дэлгэц нь Arduino Uno -ийн бараг бүх дижитал болон аналог тээглүүрийг ашигладаг. Энэхүү бамбайг ашиглахдаа бид төслүүддээ зөвхөн 2 дижитал тээглүүр, 1 аналог зүүтэй үлдэх болно. Аз болоход дэлгэц нь Arduino Mega -тэй сайн ажилладаг тул бидэнд илүү олон зүү хэрэгтэй бол Arduino Uno -ийн оронд Arduino Mega -ийг ашиглаж болно. Харамсалтай нь энэ дэлгэц нь Arduino Due эсвэл Wemos D1 ESP8266 самбар дээр ажилладаггүй. Бамбайны бас нэг давуу тал нь ашиглахад тун хялбар бичил SD үүрийг санал болгодог явдал юм.

Алхам 3: Төслийг бүтээх, турших

Төслийг бүтээх, турших
Төслийг бүтээх, турших
Төслийг бүтээх, турших
Төслийг бүтээх, турших
Төслийг бүтээх, турших
Төслийг бүтээх, турших

Дэлгэцийг Arduino Uno -той холбосны дараа бид кодыг ачаалж, тоглоход бэлэн боллоо.

Эхлээд бид "Тоглоом эхлүүлэх" товчийг дарахад тоглоом эхэлнэ. Ардуино хамгийн түрүүнд тоглодог. Дараа нь бид зүгээр л дэлгэцэн дээр хүрч хөдөлгөөнөө тоглуулж болно. Дараа нь Arduino хөдөлгөөнөө тоглуулдаг гэх мэт. Гурван тэмдгийг хэвтээ, босоо эсвэл диагональ эгнээнд амжилттай байрлуулсан тоглогч ялалт байгуулна. Тоглоом дуусахад Game Over дэлгэц гарч ирнэ. Дараа нь бид дахин тоглох товчийг дарж тоглоомыг дахин эхлүүлж болно.

Arduino энэ тоглоомыг маш сайн хийдэг. Энэ нь ихэнх тоглолтуудад ялах болно, эсвэл хэрэв та маш сайн тоглогч бол энэ тоглолт тэнцээгээр дуусах болно. Би энэхүү алгоритмыг хүний тоглогчдод хожих боломжийг олгохын тулд зарим алдаа гаргахаар санаатайгаар зохион бүтээсэн. Тоглоомын кодод хоёр мөр нэмж оруулснаар бид Arduino -г тоглоомыг алдах боломжгүй болгож чадна. Гэхдээ 2 долларын чип болох Arduino CPU нь хүний тархийг яаж цохих вэ? Бидний боловсруулсан хөтөлбөр хүний тархинаас илүү ухаалаг гэж үү?

Алхам 4: Тоглоомын алгоритм

Тоглоомын алгоритм
Тоглоомын алгоритм
Тоглоомын алгоритм
Тоглоомын алгоритм

Энэ асуултанд хариулахын тулд миний хэрэгжүүлсэн алгоритмыг авч үзье.

Компьютер үргэлж хамгийн түрүүнд тоглодог. Энэхүү шийдвэр нь дангаараа Arduino -г ялахад тоглоомыг ихээхэн хөнгөвчилдөг. Эхний алхам бол үргэлж булан юм. Arduino -ийн хоёр дахь алхам бол тоглогчийн хөдөлгөөнд огт хамаагүй байсан санамсаргүй булан юм. Энэ мөчөөс эхлэн Arduino эхлээд тоглогч дараагийн алхамд хожиж чадах эсэхийг шалгаж, энэ хөдөлгөөнийг блоклодог. Хэрэв тоглогч ганц алхамаар ялж чадахгүй бол энэ нь боломжтой бол булангийн цохилт эсвэл үлдсэн хэсгээс санамсаргүй байдлаар тоглодог. Энэ бол энэ энгийн алгоритм нь хүн бүрийг хожиж чаддаг, эсвэл хамгийн муу тохиолдолд тоглоом тэнцэх болно. Энэ бол tic tac toe тоглоомын хамгийн сайн алгоритм биш боловч хамгийн энгийн хувилбаруудын нэг юм.

Энэ алгоритмыг Arduino дээр хялбархан хэрэгжүүлэх боломжтой, учир нь Tic Tac Toe тоглоом нь маш энгийн бөгөөд бид үүнийг хялбархан дүн шинжилгээ хийж, шийдвэрлэх боломжтой. Хэрэв бид тоглоомын модыг зохион бүтээвэл бид хожсон зарим стратегиа олж, тэдгээрийг кодоор хялбархан хэрэгжүүлэх боломжтой эсвэл CPU -д тоглоомын модыг бодит цаг хугацаанд тооцоолж, хамгийн сайн алхамыг өөрөө сонгох боломжтой болно. Мэдээжийн хэрэг, энэ тоглоомонд ашигладаг алгоритм нь маш энгийн, учир нь тоглоом маш энгийн. Хэрэв бид шатрын ялалтын алгоритмыг зохиох гэж оролдвол хамгийн хурдан компьютер ашиглаж байсан ч бид мянган жилийн дараа тоглоомын модыг тооцоолж чадахгүй. Ийм тоглоомуудын хувьд бидэнд өөр арга барил хэрэгтэй, бидэнд хиймэл оюун ухааны алгоритм, мэдээж боловсруулах асар их хүч хэрэгтэй. Энэ талаар дэлгэрэнгүйг ирээдүйн видеоноос үзнэ үү.

Алхам 5: Төслийн код

Төслийн код
Төслийн код

Төслийн кодыг хурдан харцгаая. Кодыг эмхэтгэхийн тулд бидэнд гурван номын сан хэрэгтэй.

  1. Adafruit TFTLCD:
  2. Adafruit GFX:
  3. Мэдрэгчтэй дэлгэц:

Таны харж байгаагаар ийм энгийн тоглоом хүртэл 600 гаруй кодын код шаарддаг. Код нь нарийн төвөгтэй тул би үүнийг богино зааварчилгаар тайлбарлахыг хичээхгүй. Гэхдээ би танд Arduino -ийн шилжих алгоритмын хэрэгжилтийг харуулах болно.

Эхэндээ бид хоёр санамсаргүй булан тоглодог.

<int firstMoves = {0, 2, 6, 8}; // эдгээр байрлалыг хамгийн түрүүнд ашиглах болно (counter = 0; counter <4; counter ++) // Эхний тоглосон хөдөлгөөнийг тоолох {if (board [firstMoves [counter]! = 0) // Эхний алхамыг хэн нэгэн тоглодог {movePlayed ++; }} do {if (move <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; if (board [c] == 0) {саатал (1000); самбар [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}

Дараа нь тойрог бүрт тоглогч дараагийн алхамд ялж чадах эсэхийг шалгадаг.

int checkOpponent ()

{if (board [0] == 1 && board [1] == 1 && board [2] == 0) буцах 2; өөрөөр бол (самбар [0] == 1 && самбар [1] == 0 && самбар [2] == 1) буцаах 1; өөр бол (board [1] == 1 && board [2] == 1 && board [0] == 0) 0 буцаана уу; өөр бол (самбар [3] == 1 && самбар [4] == 1 && самбар [5] == 0) буцаах 5; өөр бол (самбар [4] == 1 && самбар [5] == 1 && самбар [3] == 0) буцаах 3; өөр бол (самбар [3] == 1 && самбар [4] == 0 && самбар [5] == 1) буцаах 4; өөр бол (самбар [1] == 0 && самбар [4] == 1 && самбар [7] == 1) буцаах 1; өөр 100 буцаана; }

Хэрэв тийм бол бид ихэнхдээ энэ хөдөлгөөнийг хаадаг. Хүний тоглогчид ялах боломжийг олгохын тулд бид бүх алхамыг хаадаггүй. Аль хөдөлгөөн хаагдаагүй байгааг олж мэдэх үү? Шилжилтийг хаасны дараа бид үлдсэн булан эсвэл санамсаргүй байдлаар тоглодог. Та кодыг судалж, өөрийн ялагдашгүй алгоритмыг хялбархан хэрэгжүүлэх боломжтой. Үргэлж энэхүү зааварчилгаанд хавсаргасан төслийн кодыг олж болно.

ТАЙЛБАР: Banggood нь хоёр өөр дэлгэцийн драйвертай ижил дэлгэцийг санал болгодог тул дээрх код ажиллахгүй бол initDisplay функцийг дараах байдлаар өөрчилнө үү

хүчингүй initDisplay ()

{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }

Алхам 6: Эцсийн бодол ба сайжруулалт

Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт

Таны харж байгаагаар Arduino Uno байсан ч гэсэн бид энгийн тоглоомуудын хувьд алгоритмыг бүтээж чадна. Энэхүү төсөл нь маш сайн, учир нь бүтээхэд хялбар бөгөөд хиймэл оюун ухаан, тоглоомын програмчлалын гайхалтай танилцуулга юм. Би илүү хүчирхэг Raspberry Pi ашиглан ирээдүйд хиймэл оюун ухааны тусламжтайгаар илүү дэвшилтэт төслүүдийг бүтээхийг хичээх болно. Энэ төслийн талаархи таны сэтгэгдлийг сонсох дуртай.

Сэтгэгдлээ доор бичээрэй, хэрэв танд сонирхолтой санагдсан бол зааварчилгаа өгөхийг бүү мартаарай. Баярлалаа!

Зөвлөмж болгож буй: