פרויקט A-XO: איקס עיגול לארדואינו

אחרי שהצלחתי להפעיל את רכיבי ה-SSD ולהציג בעזרתם ספרות, ניסיתי לחשוב מה עוד אפשר לעשות איתם. משחק הסודוקו הוא מועמד טבעי, אך לשם כך – אפילו לגרסת שש הספרות של הילדים – דרושים יותר רכיבי תצוגה ממה שיש לי כרגע. האופציה הבאה בתור, שיכולה לעניין גם מתכנתים וגם חובבי ארדואינו, היא משחק איקס-עיגול.

לרוע המזל, תצוגות SSD לא מאפשרות הצגה של הסימן "X", אך אני בטוח שלא תהיה לכם בעיה אם, במקום זאת, ניצור משחק H-עיגול. נכון?

זהו, אם כן, הרעיון של פרויקט A-XO (כלומר Arduino X's & O's). בשלב הראשון אכתוב בסביבת הפיתוח של ארדואינו תוכנה, שתהיה מסוגלת לנהל משחק איקס-עיגול – גם כ"מפקחת" על משחק בין שני בני אדם וגם כשחקנית בפני עצמה – ובשלב השני נכין את החומרה המתאימה ונשלב את השתיים ביחד. הערות, רעיונות ושאלות יתקבלו, כרגיל, בברכה.

מבחינת החומרה, התכנון שלי בינתיים הוא להצטמצם למינימום ההכרחי. זה אומר שלושה רכיבי SSD של שלוש ספרות כל אחד, ושני לחצנים בלבד: "שינוי" ו"בחירה/איפוס". הממשק יפעל כך:

1. בחירת מספר שחקנים: על ה"מסך" יוצג הטקסט הבא –

PLA
yEr
S=1

בעזרת לחצן "שינוי", המשתמש יוכל לבחור בין שחקן (אנושי) אחד לשניים. האפשרות הנוכחית תוצג מימין למטה, ולחיצה על "בחירה/איפוס" תקבע את הבחירה ותעביר לשלב הבא.

2. בחירת סימן: אם נבחר שחקן יחיד, יוצג הטקסט הבא –

yOU
PLA
y O

המשתמש יוכל לבחור בין O ל-H, והארדואינו ייקח את הסימן השני.

3. המשחק: סימני O ו-H יוצגו על המסך. כשיגיע תור של שחקן אנושי, יוצג הסימן של השחקן הנוכחי כשהוא מהבהב במשבצת הפנויה הראשונה. לחיצה על "שינוי" תעביר את הסימן למשבצת הפנויה הבאה (ותחזור לראשונה אם אין עוד), ו"בחירה/איפוס" תשים שם את הסימן ותעביר את התור לשחקן השני. לחיצה ארוכה על "בחירה/איפוס" (3 שניות?) תאפס את המשחק ותחזור לשלב 1.

4. אם אחד השחקנים ניצח, הסימן שלו יהבהב במרכז המסך עד שהמשתמש ילחץ על לחצן כלשהו. אם היה תיקו, תופיע המילה TIE [עדכון: לא, זה לא טוב, כי אין אפשרות נורמלית לכתוב T… אז אולי H=O?]

שתי הערות: א – למעשה, אפשר להסתפק בלחצן יחיד שמקבל לחיצה קצרה ("שינוי"), בינונית ("בחירה")  וארוכה ("איפוס"), אבל זה כבר פחות נוח ומועד לתקלות. ב – תצוגת SSD שכזו תחייב רענון בקצב גבוה וכמעט קבוע, ולשם כך אצטרך מן הסתם ללמוד להשתמש בפסיקות מבוססות טיימר. יש למה לחכות! 🙂

המשך יבוא בקרוב מאד…

להרשמה
הודע לי על
0 Comments
Inline Feedbacks
הראה את כל התגובות