Pumpktris - Tetris pumpa (5 / 10 steg)

Steg 5: Programmering spelet



Ladda ner den bifogade Pumpktris.ino.zip, packa upp den och öppna filen i utvecklingsmiljön Arduino. Kompilera och ladda upp den till din Arduino. Nu bör du kunna spela på mini ledde matrisen som angetts i föregående steg. Jag har försökt att kommentera koden så mycket som möjligt, men här är en allmän översikt av huvudprocesserna:

Beskriva formerna

Det finns sju tetrominos, alla med 4 pixlar, och var och en med fyra möjliga rotationer. Vi lagrar allt detta i en multi-dimensionell array: den första dimensionen som består av sju figurer, den andra dimensionen som innehåller de fyra rotationer för varje form, de tredje som innehåller fyra pixel beskrivningar som varje består av en X- och Y samordna.

Till exempel, beskriver detta formen "T":

/* T */ {
/ * vinkel 0 * / {{0,1} {1,1}, {2,1}, {1,2}},
/ * vinkel 90 * / {{1,0} {1,1}, {2,1}, {1,2}},
/ * vinkel 180 * / {{1,0} {0,1}, {1,1}, {2,1}},
/ * vinkel 270 * / {{1,0} {0,1}, {1,1}, {1,2}}
}

Spåra den aktiva bit

För att hålla reda på lappa för närvarande i lek, har programmet en activePiece variabel. Det här är index för den aktiva formen på den högsta nivån i matrisen. Det håller också en rotation variabel som innehåller indexet för nuvarande rotation. En xOffset variabel spår hur långt åt vänster eller höger (0-7) varje bit är och yOffset spårar hur långt (0-15) styrelsen det har fallit. Om du vill rita den aktiva bit lägger programmet till X och Y kompensera värdena för X och Y-koordinaterna för varje pixel drog från nuvarande rotation av valda lappa.

Spåra de fasta bitarna

En 16 byte-array används för att hålla reda på de fasta bitarna, med varje byte representerar en rad. Exempelvis skulle matrisen nedan representerar en L-form som sitter i mitten av botten två rader (som anges av 1s i de sista två byte):

byte sampleGrid [16] =
{
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00100000,
B00111000
};

Kollision upptäckt

När ett försök görs att flytta den aktiva bit, kontrolleras först den nya positionen mot matrisen för fasta bitar. Om det finns inga kollisioner, flytten är tillåtet och matrisen ritas om. Om en kollision upptäcks vid försök att flytta till vänster, höger, eller rotera är åtgärden förbjudet. Om en kollision upptäcks vid försök att släppa en bit, stycke blir fast i sin ståndpunkt och läggs till i arrayen fasta pixlar.

Släppa bitar automatiskt

Takten i spelet styrs av variablerna gravityTrigger och stegräknare . Varje slinga av programmet steg stegräknare, och varje gång stegräknare når antalet lagrade i gravityTrigger, det droppar den aktiva stycke en nivån.

Under spelets gång minskas gravityTrigger så att den aktiva bit tappar allt oftare tills slutligen det sjunker i varje slinga av programmet.

Varje gång en aktiv bit fast nätet kontrolleras för full bytes/rader (B11111111). Om den hittar något, det blinkar dem av och på tre gånger, sedan tar bort dem och droppar raderna ovan för att fylla tomrummet.

Felsökning
Om bitarna är inte faller från toppen till botten, men istället gå från sida till sida, ändra värdet gått i raderna "matrixTop.setRotation(1);" eller "matrixBottom.setRotation(1)," i "setup()" slingan.

Om bitarna börjar i fel matrisen, växla den fysiska platsen för varje matris eller omvänd adresserna deklareras i "matrixTop.begin(0x70);" och "matrixBottom.begin(0x71);" rader av "setup()" slingan.

Om några rader eller kolumner inte ljus, vicka mini LED matrix i kvinnliga rubriker. De kan inte göra bra kontakt.

Se Steg
Relaterade Ämnen

JÄTTE Pumpktris

förra året för Halloween, HaHaBird - aka Nathan Pryor, belysta Instructables gemenskapen med sin Pumpktris. Detta var en av de coolaste Instructables någonsin Inlagd. Nu när vi här på Instructables är grannar med den underbara, magnifika, vetenskap-t...

Holiday värdinna gåva: Pumpa paj infunderas Vodka

Halloween är nästan på oss och det betyder en sak: semestern är runt hörnet, och med det, granne gåvor och värdinna gåvor och medarbetare gåvor att tänka på. Om du startar detta infunderas vodka nu, ska du har till hands en stor gåva till värdinnan f...

DIY pumpa varm choklad på hem │ hemlagad hösten Drink Recept

Hej du! Detta är seriöst bäst varm choklad jag någonsin ätit i hela mitt liv. Dess nästan som om varm choklad och Pumpkin Spice Latte fått barn... Jag kunde dricka det varje dag! Det är super lätt, packad med hösten smak med inslag av pumpa, ingefära...

Pumpa kaffe i en lerkruka potten

Jag älskar smaken av pumpa kaffe i höst men det kan vara dyrt, jag har betalat $4.00 för en kopp på min lokala coffee shop. Detta recept är så läckra och lätta att göra, jag kan inte tro jag inte tänker på det förr. Denna hela partiet pumpa kaffe (12...

Pumpa krydda Creamer

Hösten är synonymt med cider, krispiga blad och pumpa. Butikerna är fyllda med pumpkin cookies, limpor, kaffe, teer, sirap och mer. Det är lätt att köpa dessa till synes oändliga pumpa produkter foder hyllorna, är det också lätt att göra dem och ofta...

Pumpa yoghurt Smoothie

pumpa yoghurt Smoothie Prep Tid: 10 minuter Total tid: 10 minuter om din smoothie ser lite för tjock, så det kan bero på kvaliteten på de nondairy yoghurt och pumpa puré, helt enkelt lägga till lite mer nondairy mjölk tills den når en tunnare konsist...

Cupcake Tetris

den gångna helgen vi gjorde några läckra muffins (recept kommande) och beslutade att vad bättre att göra än att spela tetris med dem!...

Easiet bästa provsmakning pumpa Cupcakes någonsin!

Dessa är bästa muffins jag någonsin har haft! De är så bra jag gjorde dem för min 1 oktober bröllop i år. Alla älskar dem alltid och ingen har en aning hur lätt och hur mycket ett fusk att göra dem. Jag ska dela min hemlighet med er ändå. Du kommer a...

5 minut pumpa Cheescake

Här är ett recept jag hittade efter att ha sett en faktiska recept om Pumpa Cheesecake barer på denna webbplats jag surfade med mitt morgonkaffe.* Jag är fruktansvärt på att förklara saker, så följ bara så gott du kan och njuta av resultatet! *Det är...

Ugnsbakad färsk pumpa munkar

Dessa varma kryddad munkar är fylld med pumpa smak, valnöt, belagda med smält smör och sedan toppat med kanel socker som gör du vill det är pumpa säsong hela tiden. Med en underbart fuktig konsistens, dessa smakrik bakade (inte stekt) pumpa munkar är...

Bakad pumpa krydda Donuts

Jag är verkligen redo för höstens väder, och dessa mjuka, bakad pumpa krydda munkar har perfekt sötma och fylla ditt kök med en varm och tröstande doft. De är säker på att behaga!Steg 1: ingredienser -1-3/4 kopp allrengöringsmedel mjöl-1 tsk salt-1 t...

Bakning med pumpa

Jag gillar att baka och känner stor stolthet över att göra något annorlunda att du inte ser varje dag, pumpa bröd är bra för öken medan behandlar underhållande familj och vänner eller bara varje dag. Pumpa är en mångsidig squash, allt från soppa till...

Skapa en 3D Minion pumpa från foton med 123DCatch

jag ville prova att använda den relativt nya 123DCatch Web Application skapa en modifierad 3D pumpa för den 3D Jack o ' Lantern utmaning ser ut som en cool program och Edward Lewis har redan gett oss en stor Tom Jack o ' lykta att använda, så Låt oss...

Rista en pumpa med silvertejp

Här kommer jag att visa dig hur att snida en pumpa med silvertejp/duck tape, jag trodde upp denna idé när jag skulle starta min pumpa carving och jag ville inte dra bilden eftersom dess kan vara svårt att få markören bort, så jag skar några kanal/duc...

Tetris gratis Cross Stitch PDF mönster

Tetris gratis Cross Stitch PDF mönster.Stödrastrets storlek: 70W x 70HDesignområdet: 4,14 "x 2,5" (58 x 35 stygn)Passar i en 5 tums hoop.9 färgerDu kan hitta mer av mina mönster på http://www.pixelpowerdesign.com. De är awesome :-)...

Kände pumpa

ingredienser:-50 gram orange ull ambulerande (vi använde pumpa, men mango, yam eller banan skulle vara härlig)-30 gram ljus grön ull ambulerande (vi använde snö ärter)-30 gram mörk grön ull ambulerande (vi använde sparris)Verktyg:- Tung vikt Clover t...

PUMPA mig upp luften uteplats spis

dessa uteplats eldplatser är en bra idé att ha en trevlig snabb avkopplande lägerelden utanför på din uteplats eller däck. Jag har funnit att om det är ingen barnlek utanför och luften är fortfarande det är svårt att hålla en eld kommer.Jag tillbring...

Baby i en pumpa

detta gör för en bedårande foto, lätt Halloween kostym eller dörren hälsare för Bus eller treaters.Efter rengöring ut på insidan av en stor pumpa, klippte jag 2 hål nära botten. Jag fodrade insidan av pumpan med hushållspapper så det skulle vara mysi...

Happy Baby pumpa!

Happy Halloween från våra mycket patienten 3 månad gammal!DET ÄR LÄTT! * Om du har en patient baby! *1. skär hål i toppen av pumpa2. gut pumpa3. Klipp två ben hål4. set baby i pumpa5. ta bilder! :)...