Tic-Tac-Toe Robot (4 / 7 steg)

Steg 4: Koden



jag har fäst min kod. Jag ska försöka förklara det här så att du kan använda den med din robot och anpassa den om det behövs. Denna kod är skriven för Arduino IDE version 0022. Det bör fungera i senare versioner men om du har problem sedan sticka med 0022 för detta projekt.

Behöver du en mikro trollkarl (ingen spelar roll vilken version) och microM biblioteket som kan laddas ner från här: https://sites.google.com/site/daguproducts/home/arduino-libraries

Om du föredrar kan du använda en annan Arduino ombord. Du kommer förmodligen behöva ett bakbord och hopparen kablar att ansluta en IR-mottagare och servon. Du kanske föredrar att använda Ken Shirriff flera protokoll IR bibliotek som kan hittas här: http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

Som ni ser har jag fördelade min kod i logiska avsnitt och sätta dem i olika flikar. Detta gör det mycket enklare att redigera din kod.

[TicTacToe] denna första fliken är din huvudsakliga kod. Det har din Setup() funktion där alla dina initieringen är klar och Loop() funktion där spelet spelas. Funktionen Loop() består av 3 sektioner.

  1. Val av läge - programmet ser ut för någon ny IR-kommandon och ändrar lägen om det behövs.
  2. Spelare flytta - när det är din tur i det här avsnittet kan du göra ditt drag.
  3. Robotar flytta - beroende på svårighetsgraden, olika strategier är vald här.

Efter en övergång har gjorts det visas på den seriella bildskärmen. Roboten kontrollerar sedan om någon fler förflyttningar kan göras och om någon har vunnit.

[IOpins.h] på den här fliken är du kopplingsschema. Om du vill ändra förbinds vilket stift ett servo för att sedan bara ändra pin-kod här. Som IR är-mottagaren hårdkodade att D4 det inte anges.

[Constants.h] på den här fliken innehåller konstanter som används i programmet. IR-mottagare koder och förinställda värden för gripdon och pins mekanism servon definieras här. Som du robot kommer att skilja sig från mig kommer att du behöva ändra dessa värden som passar. All värden är i µS för användning med kommandot writeMicroseconds() .

[Kalibrera] denna funktion används för att undervisa roboten där varje position i styrelsen är. Inledningsvis alla positioner är lika med både arm servon att vara i mittläget. Som du lär armen, sparas nya positioner i processorer EEPROM så att även om makt är avstängd roboten inte kommer att glömma vad du lärt.

[eepromFunctions] när programmet körs första gången EEPROM läses så att roboten vet placerar av styrelsen. När du kalibrerar roboten skrivs nya positioner till EEPROM så att när strömmen är avstängd roboten inte kommer att glömma ståndpunkterna.

[DisplayGrid] spelet visas på serial monitorn för felsökning ändamål och låter dig spela luffarschack mot Micro magikern använder bara en TV remote. Roboten endast behövs för att imponera på dina vänner och familj och gör spelet roligare att spela. 0 representerar en tom position. Robotar bollar är representerade med 1. Dina bollar representeras av en 2.

[MoveArm] som namnet antyder, denna funktion flyttar arm från en position i styrelsen till en annan. min kod bryter flytten ner till små steg så att armen rör sig långsamt och smidigt. Större drag är uppdelade i fler steg så att alla flyttar hända ungefär med samma hastighet.

[CheckForWin] efter varje flytta styrelsen kontrolleras för att se om det finns en vinnare. Alla rader, kolumner och diagonaler kontrolleras för 3 av samma.

[ClearBoard] i slutet av spelet till roboten samlar alla bollar och sätter dem tillbaka i deras ränna. Roboten använder minne för att avgöra om bollen tillhör spelaren eller robot och returnerar bollen till rätt hålan. Pin mekanism höjer bollar högt nog för gripdon att samla in dem och sedan sänker bollar igen så att armen kan röra sig fritt.

[RandomMove] på den enklaste nivån, alla robotar drag är slumpmässiga. Detta läge är avsett för att lära barn spelet för första gången. En random flytta används också av roboten när andra strategier misslyckas. För att göra spelet mindre predicable (roligare), när det är robotarna för att starta ett spel börjar roboten med en random flytta.

[BlockPlayer] den här funktionen används av roboten att titta på dina rörelser och avgöra om du kommer att vinna. Om roboten upptäcker du har två bollar i en linje med tredje positionen att vara gratis då det kommer att placera sin boll gratis möjlighet att blockera dig. Denna funktion används inte i den enklaste nivån som är avsedd för att lära barn hur man spelar.

[MakeLine] den här funktionen liknar [BlockPlayer] Förutom att den används av roboten för att få 3 i rad. Denna funktion används inte i de enklaste nivåerna.

[SecondMove] som ett spel av Tic Tac Toe inte har många flyttar, andra flytten är ofta där din strategi kommer in i bilden. Roboten använder detta i den svåraste nivån att försöka slå dig. Jag erkänner, denna del av koden kan förbättras. Jag är inte bra på strategispel.

Se Steg
Relaterade Ämnen

Tic-Tac-Toe sköld...

Detta är en hemmagjord sköld för Arduino. Jag kan spela Tic-Tac-tå med MCU med denna sköld bifogas.Folk frågar mig, "Hej, vad gör du hela tiden i din arbetsbänk?", eller "Hey, Visa oss något du har gjort." Och för det mesta jag har int...

Amerikanska flaggan Tic Tac Toe

Hålla din fjärde av juli part gäster underhöll med detta lätt att göra amerikanska flaggan tic tac toe styrelse!Steg 1: Samla ditt material 10 stenarBlå permanenta märkpennaRöd permanenta märkpennaBox (dubblerar som tic tac toe styrelsen och behållar...

Halloween tic tac toe (återvunnet grejer)

Halloween Tic Tac ToeÅtervinna projektet är för barn. Resultatet i detta projekt är att börja undervisa några tidiga återvinning medvetenhet. Ha det så kul!!Vad ett bra sätt att återanvända dessa lock som är från vår dagliga användning.Jag bara hade...

Att göra för... tic-tac-toe (Mario bros)

våra döttrar älskar mario och tic tac toe, så jag har dem gått sammanSteg 1: polymerlera hitta en bild på Internet på mario och hans vännerSteg 2: och göra det av leraSteg 3: och baka i ugnen i 30 min 266 grader Fahrenheit och grädda i ugnen i 30 min...

Atmel mikrokontroller spelar Tic-Tac-Toe spelet

detta är Tic-Tac-Toe spel genomförs med nakna ben ATmega168 micro controller. Det fungerar på lägsta möjliga för denna controller frekvens 1 MHz. Som får ström direkt från två AAA laddningsbara batterier. Du kan hitta några ytterligare detaljer i det...

Svart & blå Tic-Tac-Toe

Tic-Tac-Toe är ett fantastiskt spel som kan hålla både barn och vuxna sysselsatta under timmar. Jag tog några av min vänstra över MDF bitar från ett annat projekt och gjorde detta snabb tic-tac-toe spel. Med lite MDF, vinyl papper och kreativitet kun...

BATCH TIC-TAC-TOE BETA

Detta är en beta av en tic-tac-toe spel jag gjorde i baken skriften.Jag jobbar på att göra datorspelare smartare och mer sannolikt att vinna så här betaversion, har bara datorspelare plocka ställen på måfå.Du kan använda detta som en bas för en tic-t...

Resa Tic Tac Toe

Tic tac toe är en awesome resa spel som kan hålla både barn och vuxna ockuperade under timmar av en roadtrip. Med en liten filt och kreativitet kunde jag göra en awesome återanvändbara resor tic tac toe styrelse som även fungerar som en extra väska o...

Hur man skriver en Tic-Tac-Toe Program i Java

Inledning:Tic-Tac-Toe är ett mycket vanligt spel som är ganska lätt att spela. Spelets regler är enkla och välkända. På grund av dessa saker är Tic-Tac-Toe ganska lätt att koden upp. I denna handledning kommer vi att titta på hur man arbetar spela Ti...

Altoids Tic-Tac-Toe och Puzzle kul

med en övernattning fest? Underhålla barnen på en lördag morgon genom att låta dem göra dessa kex. Du kan inte gå fel som betjänar dessa en morgon. Frukost blir aldrig tråkig leker med Tic-tac-toe och pussel kex. Jag ville att mina barn var unga igen...

Vinnande tic-tac-toe strategier

Alla älskar den enkel omgång tic-tac-toe, men det verkar som en random spel. Egentligen är inte!Det verkar som att många tvister kan lösas genom en enkel spel...Nu kan du vinna nästa tic-tac-toe-off genom att titta på dessa 4 lätt strategier!** EDIT...

Kul rustika Tic Tac Toe

Älskar Tic Tac Toe?? Det gör jag med! Jag har spelat det sedan jag var liten, så nu jag antingen vinna eller det är oavgjort ;-DDet är ett roligt spel för att spela med barnen och att göra denna rustik version gör det extra roligt! Gör det och gåva d...

K'nex Tic-Tac-Toe

vem vet inte detta spel? Tic-Tac-Toe, en av de mest spelade spel någonsin. Nyligen har jag gjort den Tic-Tac-Toe som Daniel662000 har gjort. Jag såg att det skulle kunna använda förbättring, så jag gjorde denna version. Det är mindre och har en lägre...

Elektroniska Tic-Tac-Toe med RGB lysdioder

RGB LED spel att spela Tic-Tac-Toe för två spelare. Använder 2 AVR mikrokontroller: Mega16 och Mega8. RGB-ljusdioder tillåter varje användare att välja sin färg att representera / mutter....

FPGA Tic Tac Toe

"Tic Tac Toe? Vad är det? Jag har aldrig hört detta."-Ingen någonsinAv Ryan Frawley och Derek NguyenDenna guide visar dig hur man gör en arbetande Tic Tac Toe spel i VHDL på en Nexys 2 FPGA ombord. Denna handledning var gjort för en del av en Ca...

Tic Tac Toe maskin

detta är en enkel maskin som spelar luffarschack. Det gjordes mestadels form döda elektronik, som en skrivare och en DVD-läsare.Hur det fungerar: Först måste vi sätta vår prägel, det är en svart kvadrat i papp, sedan genom att trycka på en knapp vi s...

Tic-Tac-Toe från tidningen

jag och min bror älskar att spela tic-tac-toe...så jag gjorde en tic-tac-toe från tidningenför att göra det behöver vi baragamla tidningtejpsaxSteg 1: för att göra huvudramen för--luffarschack behöver vi totalt 4 rullar av papper.för att göra rulle h...

Hur till vinna Tic Tac Toe: enkelt!

Hej, jag är InstructableUltimate och jag idag jag kommer att visa dig hur man vinner Tic Tac Toe på bara några få steg, och detta är verkligen enkel!Steg 1: Vinna går först Tja, det är en lätt seger! Adjö och jag hoppas detta hjälpte dig! (Om detta i...

Upcycled Tic-Tac-Toe

Denna månad jag tog den "CENT-SATORISKT bärgning" utmaning. I utmaningen jag är uppgift med omvandla en vanlig post hittades på min lokala Habitat för mänskligheten återställa center till något "cent-satoriskt." Och jag kunde inte spen...