Ahoj, rád by som dnes predstavil svoju implementáciu pre hru Mastermind, ktorá je aj známa ako Logik. V tejto implementácii hráč neháda farby a ich poradie ako je to v originálnej - stolnej verzii, ktorú hrajú dvaja hráči, ale háda čísla a ich poradie. Je nutné zdôrazniť, že čísla sa nemôžu opakovať. V úlohe určenia čísel a ich poradia je Arduino, ktoré ich vygeneruje.
Arduino slúži ďalej ako počítadlo pokusov a prijíma logické vstupy prostredníctvom 5 tlačidiel, ktoré sa spínajú proti zemi (INPUT_PULLUP). Tlačidlami sa zadáva používateľský vstup v podobe čísel na pozície. Posledným tlačidlom sa vstup potvrdí a odošle do Arduina. Na LCD displeji je okrem aktuálneho používateľského vstupu aj vyobrazenie výsledku.
Ak používateľ neuhádne číslo a ani pozíciu, na displeji sa na príslušnej pozícii zobrazí -, ak uhádne číslo s pozíciou, zobrazí sa =, ak uhádne číslo, ale nie pozíciu, zobrazí sa C. Pre vývojárske účely je možné použiť DEBUG makro, ktoré je nutné odkomentovať. V princípe len zobrazí na displej hľadané číslo, ak chce vývojár odtestovať funkčnosť jednotlivých prvkov a overiť, či hra skončí po prekročení pokusov, alebo uhádnutí hľadaného čísla.
Hra je limitovaná na 10 pokusov hráča. V prípade prekročenia počtu pokusov sa hra ukončí s hláškou o prehre hráča. V prípade, že hráč uhádne cieľové číslo, hra sa končí s výpisom hlášky o výhre hráča. Hra nie je časovo obmedzená. Pri hre sa odporúča využiť aj ceruzku a papier na písanie si vstupov, čo môže viesť k štatistickej výhode pri hľadaní cieľového čísla.
Schéma zapojenia pre Mastermind:
Knižnica pre LCD displej: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
Program pre Mastermind: http://arduino.clanweb.eu/mastermind-arduino.php