Arduino och Touchpad Tic Tac Toe (7 / 8 steg)
Steg 7: Programmering Tic Tac Toe
Bifogat är koden för spelet.Låt oss först bryta ner tic tac toe spel i dess olika steg, i två spelarläge:
Steg 1: Spelare A plockar en ofylld cell genom att röra vid en vägkorsning.
Steg 2: Lysdioden för cellen som lyser med färg A.
Steg 3: Kontrollera om spelare A har vunnit.
Steg 4: Spelare B plockar en ofylld cell.
Steg 5: Lysdioden för cellen som lyser med färg B.
Steg 6: Kontrollera om spelare B har vunnit.
Steg 7: Upprepa 1-6 tills det finns en win villkor, eller om alla celler är ifyllda.
Läst cellerna:
Programmet loopar mellan läsning i rutnätet och Visa ledde matrisen. Så länge rutnät sensorn inte registrerar ett annat värde än noll, kommer att denna loop fortsätta. När du trycker på en korsning, lagrar den pressade variabeln den pressade cellen.
Kontrollera om cellen är ofylld:
När en position avläsning erhålls (variabel pressad), den jämförs mot aktuell cell status (lagrade i den variabla GridOnOff) med en bitvis tillägg. Om den pressade cellen är ofylld, sedan fortsätta att lysa upp LED, annars återvänder till läsa cellerna.
Växla mellan färgerna:
En boolesk variabel, tur, används för att registrera vars tur det är. LED färg valt när en cell är plockade bestäms av denna variabel, som växlar varje gång en cell är valt.
Kontrollera om ett win villkor:
Det finns bara 8 möjliga win villkor, och dessa lagras som ordet variabler i en array (winArray). Två bitvis tillägg används för att jämföra en spelares fyllda cell positioner win villkor. Om det finns en match, visar programmet en win rutin, varefter det börjar ett nytt spel.
Kontrollera om Rita ett villkor:
När nio varv har registrerats och det finns fortfarande ingen win villkor, då är spelet oavgjort. Lysdioderna är sedan bleknat ut och ett nytt spel startas.
Byta till en spelare-läge:
Om växeln är i till-läge, går programmet in i läget för en spelare, med den mänskliga spelare början första. I slutet av mänskliga spelarens tur plockar programmet helt enkelt en random cell. Naturligtvis, detta är inte den smartaste strategin!