תוכן עניינים:
- שלב 1: קבל את כל החלקים
- שלב 2: תצוגת צבע המגע בגודל 2.8 אינץ 'עבור Arduino
- שלב 3: בניית הפרויקט ובדיקתו
- שלב 4: אלגוריתם המשחק
- שלב 5: קוד הפרויקט
- שלב 6: מחשבות ושיפורים אחרונים
וִידֵאוֹ: משחק Arduino Touch Tic Tac Toe: 6 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
חברים יקרים ברוכים הבאים להדרכה נוספת של Arduino! במדריך מפורט זה אנו הולכים לבנות משחק Arduino Tic Tac Toe. כפי שאתה יכול לראות, אנו משתמשים במסך מגע ואנו משחקים נגד המחשב. משחק פשוט כמו Tic Tac Toe הוא היכרות מצוינת עם תכנות משחק ואינטליגנציה מלאכותית. למרות שלא נשתמש באלגוריתמים של בינה מלאכותית במשחק הזה, נבין מדוע נדרשים אלגוריתמים של בינה מלאכותית במשחקים מורכבים יותר.
פיתוח משחקים עבור Arduino אינו קל ודורש הרבה זמן. אבל אנחנו יכולים לבנות כמה משחקים פשוטים עבור Arduino כי זה כיף וזה יאפשר לנו לחקור כמה נושאי תכנות מתקדמים יותר, כמו בינה מלאכותית. זוהי חווית למידה נהדרת ובסוף יהיה לכם משחק נחמד לילדים!
בואו עכשיו לבנות את הפרויקט הזה.
שלב 1: קבל את כל החלקים
החלקים הדרושים לבניית פרויקט זה הם:
Uno Arduino ▶
מסך מגע בגודל 2.8 אינץ '▶
עלות הפרויקט נמוכה מאוד. זה רק 15 $
לפני שתנסה לבנות פרויקט זה אנא צפה בסרטון שהכנתי על צג המגע. צירפתי אותו במדריך זה. זה יעזור לך להבין את הקוד, ולכייל את מסך המגע.
שלב 2: תצוגת צבע המגע בגודל 2.8 אינץ 'עבור Arduino
גיליתי את מסך המגע הזה ב- banggood.com והחלטתי לקנות אותו על מנת לנסות להשתמש בו בכמה מהפרויקטים שלי. כפי שאתה יכול לראות התצוגה זולה, היא עולה בסביבות 11 $.
קבל את זה כאן ▶
התצוגה מציעה רזולוציה של 320x240 פיקסלים והיא מגיעה כמגן מה שהופך את החיבור עם Arduino לקל ביותר. כפי שאתה יכול לראות, התצוגה משתמשת כמעט בכל הסיכות הדיגיטליות והאנלוגיות של ה- Arduino Uno. כשמשתמשים במגן זה נותרו לנו רק 2 סיכות דיגיטליות וסיכה אנלוגית אחת לפרויקטים שלנו. למרבה המזל, התצוגה עובדת מצוין גם עם ה- Arduino Mega, כך שכאשר אנו זקוקים לסיכות נוספות נוכל להשתמש ב- Arduino Mega במקום ב- Arduino Uno. למרבה הצער תצוגה זו אינה פועלת עם לוח Arduino Due או לוח Wemos D1 ESP8266. יתרון נוסף של המגן הוא שהוא מציע חריץ מיקרו SD שהוא מאוד קל לשימוש.
שלב 3: בניית הפרויקט ובדיקתו
לאחר חיבור המסך ל- Arduino Uno, נוכל לטעון את הקוד ואנו מוכנים לשחק.
בהתחלה, אנו לוחצים על כפתור "התחל משחק" והמשחק מתחיל. הארדואינו משחק ראשון. לאחר מכן נוכל לשחק את המהלך שלנו פשוט על ידי נגיעה במסך. הארדואינו משחק אז את המהלך שלו וכן הלאה. השחקן שמצליח להציב שלושה סימנים בשורה אופקית, אנכית או אלכסונית מנצח את המשחק. כאשר המשחק מסתיים, יופיע מסך Game Over. לאחר מכן נוכל ללחוץ על כפתור ההפעלה שוב כדי להתחיל את המשחק מחדש.
הארדואינו טוב מאוד במשחק הזה. הוא ינצח ברוב המשחקים, או אם אתה שחקן טוב מאוד המשחק יסתיים בתיקו. תכננתי בכוונה את האלגוריתם הזה כדי לעשות כמה טעויות על מנת לתת לשחקן האנושי הזדמנות לנצח. על ידי הוספת שתי שורות נוספות לקוד המשחק, אנו יכולים להפוך את הארדואינו לבלתי אפשרי להפסיד את המשחק. אבל איך שבב של 2 $, מעבד Arduino, יכול לנצח את המוח האנושי? האם התוכנית שפיתחנו חכמה יותר ממוח האדם?
שלב 4: אלגוריתם המשחק
כדי לענות על שאלה זו, הבה נבחן את האלגוריתם שיישמתי.
המחשב תמיד משחק ראשון. ההחלטה הזו בלבד, מקלה הרבה יותר על המשחק של הארדואינו. המהלך הראשון הוא תמיד פינה. המהלך השני של הארדואינו הוא גם פינה אקראית מהשאר מבלי לדאוג למהלך השחקן כלל. מנקודה זו והלאה, הארדואינו בודק תחילה אם השחקן יכול לנצח בצעד הבא וחוסם את המהלך הזה. אם השחקן לא יכול לנצח במהלך אחד, הוא משחק מהלך פינתי אם הוא זמין או אקראי מהשאר. זהו, האלגוריתם הפשוט הזה יכול לנצח את השחקן האנושי בכל פעם או במקרה הגרוע ביותר המשחק יגרור תיקו. זה לא האלגוריתם הטוב ביותר של משחק הטיק טק, אבל אחד הפשוטים ביותר.
ניתן ליישם את האלגוריתם הזה בארדואינו בקלות, מכיוון שמשחק הטיק טק טו הוא פשוט מאוד, ונוכל לנתח אותו ולפתור אותו. אם נעצב את עץ המשחק נוכל לגלות כמה אסטרטגיות מנצחות וליישם אותן בקלות בקוד או שנוכל לתת למעבד לחשב את עץ המשחק בזמן אמת ולבחור את המהלך הטוב ביותר בעצמו. כמובן שהאלגוריתם בו אנו משתמשים במשחק זה הוא פשוט מאוד, מכיוון שהמשחק פשוט מאוד. אם ננסה לעצב אלגוריתם מנצח לשחמט, גם אם נשתמש במחשב המהיר ביותר לא נוכל לחשב את עץ המשחק מזה אלף שנה! עבור משחקים כאלה, אנו זקוקים לגישה נוספת, אנו זקוקים לכמה אלגוריתמים של בינה מלאכותית וכמובן כוח עיבוד עצום. עוד על כך בסרטון עתידי.
שלב 5: קוד הפרויקט
בואו נסתכל מהר על הקוד של הפרויקט. אנו זקוקים לשלוש ספריות על מנת שהקוד יערך.
- Adafruit TFTLCD:
- Adafruit GFX:
- מסך מגע:
כפי שאתה יכול לראות, אפילו משחק פשוט כזה דורש יותר מ -600 שורות קוד. הקוד מורכב, כך שלא אנסה להסביר אותו במדריך קצר. אולם אראה לך את יישום האלגוריתם למהלכי הארדואינו.
בהתחלה, אנו משחקים בשתי פינות אקראיות.
<int firstMoves = {0, 2, 6, 8}; // ישתמש במיקומים אלה תחילה עבור (counter = 0; counter <4; counter ++) // ספירת המהלכים הראשונים שהושמעו {if (board [firstMoves [counter]! = 0) // המהלך הראשון מושמע על ידי מישהו {movesPlayed ++; }} עשה {if (moves <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; אם (לוח [c] == 0) {עיכוב (1000); לוח [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}
לאחר מכן, בכל סיבוב אנו בודקים אם השחקן יכול לנצח במהלך הבא.
int checkOpponent ()
{if (לוח [0] == 1 && לוח [1] == 1 && לוח [2] == 0) החזר 2; אחרת אם (לוח [0] == 1 && לוח [1] == 0 && לוח [2] == 1) החזר 1; אחרת אם (לוח [1] == 1 && לוח [2] == 1 && לוח [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; }
אם כן אנו חוסמים את המהלך הזה, לרוב. אנחנו לא חוסמים את כל המהלכים על מנת לתת לשחקן האנושי סיכוי לנצח. האם תוכל למצוא אילו מהלכים אינם חסומים? לאחר חסימת המהלך, אנו משחקים פינה שנותרה, או מהלך אקראי. אתה יכול ללמוד את הקוד וליישם אלגוריתם משלך ללא תחרות. כמו תמיד אתה יכול למצוא את הקוד של הפרויקט המצורף להוראה זו.
הערה: מכיוון שבנגגוד מציעה את אותה תצוגה עם שני מנהלי התקן תצוגה שונים, אם הקוד לעיל אינו פועל, שנה את הפונקציה initDisplay לפעולה הבאה:
void initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }
שלב 6: מחשבות ושיפורים אחרונים
כפי שאתה יכול לראות, אפילו עם Arduino Uno, אנו יכולים לבנות אלגוריתם ללא תחרות למשחקים פשוטים. הפרויקט הזה הוא נהדר, כי הוא קל לבנות, ובמקביל מבוא מצוין לבינה מלאכותית ותכנות משחקים. אנסה לבנות כמה פרויקטים מתקדמים יותר עם בינה מלאכותית בעתיד באמצעות ה- Raspberry Pi החזק יותר, אז הישאר מעודכן! אשמח לשמוע את דעתכם על הפרויקט.
אנא פרסם את הערותיך למטה ואל תשכח לאהוב את המדריך אם אתה מוצא מעניין. תודה!
מוּמלָץ:
בקר משחק DIY מבוסס Arduino - בקר משחקים Arduino PS2 - משחק Tekken עם לוח המשחקים Arduino DIY: 7 שלבים
בקר משחק DIY מבוסס Arduino | בקר משחקים Arduino PS2 | משחק Tekken עם DIY Arduino Gamepad: שלום חבר'ה, משחקים זה תמיד כיף, אבל משחק עם בקר DIY מותאם אישית משלך הוא יותר כיף. אז נכין בקר משחק באמצעות arduino pro micro במדריך זה
משחק 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 שלבים (עם תמונות)
משחק 3D4x: 3D 4x4x4 Tic-Tac-Toe: נמאס לכם לשחק אותו אותו דבר ישן, משעמם, דו מימדי? ובכן יש לנו את הפתרון בשבילכם! קמצן בתלת מימד !!! עבור 2 שחקנים, בקוביית 4x4x4 זו, קבלו 4 נוריות LED ברציפות (לכל כיוון) ותזכו! את עושה את זה. אתה פלא
Tic Tac Toe ב- Arduino עם AI (אלגוריתם מינימקס): 3 שלבים
Tic Tac Toe על Arduino עם AI (אלגוריתם מינימקס): במדריך זה אני הולך להראות לך כיצד לבנות משחק Tic Tac Toe עם AI באמצעות Arduino. אתה יכול לשחק נגד הארדואינו או לצפות בארדואינו משחק נגד עצמו. אני משתמש באלגוריתם שנקרא "אלגוריתם מינימקס"
Tic Tac Toe ב- Visual Basic: 3 שלבים (עם תמונות)
Tic Tac Toe ב- Visual Basic: Tic Tac Toe הוא אחד ממשחקי העברת הזמן הפופולריים ביותר. במיוחד בחדרי כיתות;). במדריך זה אנו הולכים לעצב את המשחק הזה במחשב האישי שלנו באמצעות פלטפורמת תכנות GUI פופולרית, Visual Basic
Arduino ו- Touchpad Tic Tac Toe: 8 שלבים (עם תמונות)
Arduino ו- Touchpad Tic Tac Toe: או, תרגיל בריבוי כניסות ופלט, ועבודה עם סיביות. והגשה לתחרות הארדואינו. זהו יישום של משחק טיק טק באמצעות מערך 3x3 של נוריות דו -צבעוניות לתצוגה, לוח מגע התנגדות פשוט