Sadržaj:

Pong igra fleksibilni ekran na košulji: 8 koraka (sa slikama)
Pong igra fleksibilni ekran na košulji: 8 koraka (sa slikama)

Video: Pong igra fleksibilni ekran na košulji: 8 koraka (sa slikama)

Video: Pong igra fleksibilni ekran na košulji: 8 koraka (sa slikama)
Video: Alltag und Beruf - B2 - Deutsch lernen mit Dialogen 2024, Novembar
Anonim
Pong igra fleksibilni ekran na košulji
Pong igra fleksibilni ekran na košulji
Pong igra fleksibilni ekran na košulji
Pong igra fleksibilni ekran na košulji
Pong igra fleksibilni ekran na košulji
Pong igra fleksibilni ekran na košulji

Ovo je moj kostim za Noć vještica za 2013. Radio je oko godinu dana i trebalo mu je nekoliko sati za stvaranje. Ekran je 14 x 15 piksela, dakle, prilično niske rezolucije, ali ipak može učiniti neke zabavne stvari. Fizički je fleksibilan u svim smjerovima, iako se ne može preklopiti bez oštećenja. Ima kontroler koji se sastoji od jednog dugmeta i kliznog lonca, spojenog na pro mega putem USB -a. Da bi ga održao na životu dugo, koristi dvije monstruozne baterije od 2200 mAh spojene serijski za dobivanje potrebnog napona, a zatim i regulator od 5 Volta kako bi bio upotrebljiv. Sva elektronika smještena je u džepove na unutrašnjoj strani majice tako da se mogu ukloniti i košulja oprati. Igra funkcionalnu igru ponga. Prvo ga krasi jedan s riječima "PONG PLAY" s lijepim plavim slovima koristeći modificiranu verziju slova Tom Thumb (može se pronaći na https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Nakon pet sekundi može se dati mogućnost da pritisnete dugme za nastavak ili da ne pritisnete dugme i ostavite savršeno dobro iskustvo iza sebe. Kad netko odluči pritisnuti dugme, igra počinje. Crveno veslo s desne strane je veslo računara, a zeleno s desne strane je veslo igrača, kojim se kliznim loncem može pomicati gore i dolje. Lopta se odbija dok svaka strana pokušava osvojiti poen. Igrač može udariti loptu ivicom svog vesla kako bi je ubrzao (lijepa karakteristika), dok računar to ne može učiniti, i umjesto toga se zaglavi krećući se malo sporije od lopte. Kada se bod osvoji, piksel se mijenja na bijelo na stranicama za bodovanje. Broji se binarno od dna. gdje je zelena ili crvena nula, a bijela 1. 21 je bod koji ćete osvojiti (ili izgubiti ovisno o tome ko dobije 21 bod) i tako da kada veslo igrača pročita 10101, prikazuje se tekst "VI POBJEDUJETE". Još jednom u modificiranom Tom Thumbu. Isto se događa, ali umjesto toga prikazuje se "GUBIŠ". Nakon pobjede ili poraza igra se nastavlja na bod odmah nakon igranja ponga. Za potpuno ponovno pokretanje pritisnuto je dugme za ponovno pokretanje na "Magic Box-u", poznato i kao kutija-sa-svim-elektronikom-osim-ekrana.

Korak 1: Materijali i alati

Materijali i alati
Materijali i alati
Materijali i alati
Materijali i alati

Stvari označene sa * nisu obavezne, ali se preporučuju. I tako u određenom redoslijedu … Materijali: 4 jarde Adafruit Neopixle 60 pixle po metru trake 1 majica * 1 par tregera 1/2 jarde tkanine bit će više nego dovoljno (Ne poželjno je rastezljivo tkanje) 6 stopa USB A muški na USB B muški kabel 1 USB A ženski konektor 3 2 polna JST ženska konektora 4 2 pinska JST muška žica punjač baterija 2 baterije od 6600 mAh 1 Dugme u arkadnom stilu 1 arduino pro-mega 1 FTDI zaglavlje 1 USB B ženski konektor sa zaštitnom pločom 1 prekidač za uključivanje/isključivanje (prekidač) 1 prekidač za resetovanje (prekidač ili trenutni) 1 klizni potenciometar *1 klizni prekidač 1 par konektora za velika pojačala *1 projektno kućište 1 5V 3+ pojačavač napona mali malo plastike malo lemiti malo žice neki konac *malo vrućeg ljepila *malo elastike neko vrijeme (Možda malo više od "malo") malo upornosti (vjerojatno će vam trebati prilično malo ove cijevi) malo termoskupljajuće cijevi ili električnu traku malo super ljepila malo željeza na podlozi Alati *Ruke za pomoć Normalna ruka s (ili neko ko im ima pristup) Lemilica *Pištolj za vruće ljepilo Dremel ili dlijeto Dlijeto za skidanje žice Rezači žica Spajalica Pištolj za uvrtanje Igle za šivanje Mašine za škare

Korak 2: Izrežite LED traku na manje trake

Izrežite LED traku na manje trake
Izrežite LED traku na manje trake
Izrežite LED traku na manje trake
Izrežite LED traku na manje trake
Izrežite LED traku na manje trake
Izrežite LED traku na manje trake

Koristite željeni pribor za rezanje i izrežite traku na 14 segmenata, svaki dužine 15 piksela. Izrežite samo između tragova bakra, označenih nešto poput "DO" "DIN" "+5V" i "GND". Ako je već lemljen preko bakra, samo ga prorežite. Pokušajte ne rezati previše u izloženi bakar, ali ako ga malo probušite, to je sasvim u redu. Nakon što je svih 14 traka izrezano, odrežite malo gume sa svakog kraja kako biste je uklonili s puta za lemljenje traka.

Korak 3: Lepljenje ekrana zajedno

Spajanje ekrana zajedno
Spajanje ekrana zajedno
Spajanje ekrana zajedno
Spajanje ekrana zajedno
Spajanje ekrana zajedno
Spajanje ekrana zajedno

Uzmite žicu i izrežite je na dijelove od oko 3,5 inča (9 cm). U mom slučaju imam tri različite boje za lakše držanje ravnog pri lemljenju, ali jedna bi boja radila sasvim u redu. Trebat će vam oko 40 ovih dječaka, ali za svaki slučaj izrežite još par. Kad završite s rezanjem žice, ogolite i kosite krajeve (Ako imate iskustva s lemljenjem, možete prijeći na sljedeći odlomak), što znači da nakon što uklonite malo plastike, stavite malo lema na krajeve svake žice. Nemojte zagrijavati lem i pokušajte prijeći na žicu, zagrijte lemilicom s dna bakra i stavite lem na vrh. Budite strpljivi i pričekajte da vruća žica otopi lem. U iskušenju je lemilicom pričvrstiti lemilicu za početak (moje nestrpljenje i znam tačno kako se osjećate), ali se lemljenje neće tako ni zalijepiti. Učinite isto za izložene tragove bakra na svakom kraju odsječaka trake. Ako već ima lema, ne brinite zbog toga. Za traku ćete možda htjeti izgraditi mali nasip kako biste kasnije olakšali. Kada radite sa trakom, učinite to brzo i pokušajte ne trošiti previše vremena na zagrijavanje trake. Učinite samo ono što trebate učiniti da otopite lem na trag. Lemite žicu na svakom tragu do kraja prve trake (Prva traka je ona sa žicama i konektorom, lemite je prema izloženom kraju). Ako pogledate traku, vidjet ćete male strelice na njoj koje idu do kraja gdje ste lemili žicu. Uzmite drugu traku tako da strelice pokazuju suprotan smjer i zalemite žicu koja dolazi iz traga GND na trag GND druge, +5V na +5V i tako dalje. Ponovite ovo pazeći da strelice promijene smjer nakon svakog odjeljka kako bi, ako biste ih slijedili, cik -cak gore -dolje, te da bi se na kraju mogao ispružiti na dugačku traku. Nakon što je svih 14 traka lemljeno, postavite ih i poravnajte tako da LED diode tvore mrežu. Zatim ih držite zajedno metodom koja se kasnije može ukloniti bez oštećenja trake. Koristio sam selotejp. Dovoljno je ljepljiv da drži sve zajedno, ali nije toliko ljepljiv da ostavlja tragove. Ne preporučujem ništa trajnom, poput spajalica ili ljepljive trake. Nakon što je sve zalijepljeno, lemite žicu od trake na dnu +5V do one koja se nalazi odmah do nje. Ponavljajte sve dok cijelo dno ne istekne do kraja. To je zato da se ekran ne zatamni kako linija LED -ova napreduje.

Korak 4: Lemljenje osnovne elektronike

Lemljenje jezgrene elektronike
Lemljenje jezgrene elektronike
Lemljenje jezgrene elektronike
Lemljenje jezgrene elektronike
Lemljenje jezgrene elektronike
Lemljenje jezgrene elektronike

Lemite USB B razvodnu ploču (BOB) na USB B konektor. Lemite odgovarajuće žice na USB A konektor. Savjetujem vam da pogledate pin-out konektora koji se nalazi na ovoj web stranici, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Ne brinite o tome gdje ćete trenutno lemiti druge krajeve žica na USB A konektoru; to će biti pokriveno u koraku kontrolera. Odrežite konektor za podatke sa trake, ženskog konektora, a ne muškog konektora (ženski konektor se dobija sa drugog kraja). Lemite muške JST konektore na krajeve baterije tako da crvena prelazi u crvenu, a crna u crnu. Otopite termoskupljajuće cijevi preko izloženih žica (premotajte ih prije lemljenja) kako se ne bi kratko spojile ili koristile nešto drugo poput električne trake ili vrućeg ljepila. Lemite neke žice na sve ženske JST konektore. Obavezno uključite muški kraj kako se igle ne bi pomicale. Pazite na polaritet i vodite računa da žice odgovaraju muškim konektorima. Lemite žice na jedan visokonaponski konektor (ali ne na njegov par), još jednom, pazeći da se sve boje podudaraju i da su spojene kako bi se spriječilo pomicanje pinova. Lemite ženski sklop samo konektora/žice tako da budu spojeni serijski, a ne paralelno, kako bi prešli prag napona za regulator snage. Dakle, lemite pozitivnu žicu na negativnu žicu drugog sklopa, pa sada imamo jednu lemljenu pozitivnu žicu i jednu negativnu nezalemljenu žicu, a dvije lemljene žice su lemljene na različite konektore. Uzmite negativnu žicu i spremite je za lemljenje na negativnu žicu na drugom mjestu. Sada uzmite pozitivnu žicu i lemite je na prekidač. Ako postoje tri ili više pinova (ili više načina "uključivanja"), lemite je na srednji pin. Imajte na umu da "srednja iglica" možda fizički nije u sredini. Način da ga identificirate je pronaći pin koji će, kad je prekidač uključen u bilo kojem stanju, uvijek biti spojen na drugi pin. Ako nijedan pin nije ovakav, imate vrlo poseban prekidač; samo ga spojite na bilo koji pin i pobrinite se da sljedeća žica lemljena na prekidaču bude spojena na tu žicu u barem jednom uključenom stanju. Sada lemite pozitivnu ulaznu žicu na regulatoru napona na suprotni kraj prekidača, kao što je gore opisano. Lemiti pozitivan napon na pozitivni kraj neolemljenog konektora velike struje. Uzmite negativnu ulaznu žicu i lemite je na negativni kraj konektora velike struje. Sada ćemo lemiti napajanje paralelno s Arduinom i Power trakom. Sada uzmite izlazne žice regulatora napona i lemite dva komada žice na pozitivnom i negativnom kraju tako da izađu u obliku slova Y. Lemite dvopolni konektor na pozitivne i negativne žice sklopa LED trake. Nije važno koju vrstu konektora koristite, to može biti JST ili u mom slučaju neki kabel za napajanje/zvuk ili nešto slično (nisam siguran i izvinjavam se što nemam slike). Lemite jednu od žica pozitivnog napajanja na pozitivni kraj suprotnog konektora za svjetlosnu traku, a jednu od negativnih žica na drugi pin na konektoru. Učinite isto, ali za muški JST konektor/sklop žice. Sve vrijeme ne zaboravite izolirati lemne spojeve kako biste izbjegli kratke hlače. Sada o tome što učiniti s USB B konektorom. Lemite pozitivnu žicu na rupu od 5 V na Arduino Pro Mega. Uzmite žicu za uzemljenje i lemite je u rupu GND. Uzmite D+ i lemite ga na digitalni pin (ili u ovom slučaju rupu) 40. Lemite D- na analogni pin 15. Lemite kraj podataka ženskog konektora koji se spaja sa muškim konektorom LED trake na podatkovni pin 6 i žica za uzemljenje na GND pin. Maskiranje ili ljepljiva traka odlično služe za držanje žica na ploči kako ne bi ispale kad se prevrnu da bi se zalemile. Sada uzmite trenutačno dugme i lemite žicu s jednog kraja na pin VCC (ili bilo koju izlaznu iglu napona), a drugi kraj na pin RESET.

Korak 5: Kontroler

Kontroler
Kontroler
Kontroler
Kontroler
Kontroler
Kontroler

Prvo je odabir pravog oblika za početak. Sve ovisi o tome kako želite strukturirati kontroler. Htio sam više ravnog kontrolera pa sam dobio komad daske 3 1/2 "sa 3/4". rasporedite dijelove na način koji izgleda prikladno i ugodno za rad. Upotrijebite francusku krivulju, kompas, trokut i ravnu ivicu da nacrtate gdje bi svi komadi trebali ići. Izrežite osnovni obris pomoću alata za rezanje po vašem izboru. Zaštitna pila bi bila najbolja, ali ja sam koristio testeru za suočavanje, koja je radila sasvim u redu. Ošmirglajte rubove kako bi se lakše prelazili, a zatim brušite po uglovima kako biste bili ugodniji. Izbušite rupu za prekidač, a zatim izbrusite, dlijeto i/ili Dremel bilo koji dio na dnu koji će ga uklopiti. Pokušajte ne raditi ništa s vrhom i izbrusite samo ono što vam je potrebno da biste ga mogli uklopiti uvrtanjem, kutom ili bilo čime drugim kako biste ga uvukli. Nakon što ga postavite, pričvrstite ga plastičnom maticom i pričvrstite prekidač. Izbušite područje za provlačenje potenciometra i izrežite područje tako da se može uvući i uklopiti do kraja. Izbušite neke rupe tako da ih vijak može držati. Savijte male dijelove USB A konektora zbog kojih se njegova opća širina malo povećava (pogledajte slike). Izvadite dio za konektor, postupno provjeravajući da li konektor odgovara. Super lijepite konektor u njegov utor. Uzmite mali komad plastike i izrežite ga u oblik koji će odgovarati konektoru (pogledajte slike), a zatim ga spajajte drvom. Odrežite sve komade koji vam mogu stati na put. Uvrnite potenciometar i pričvrstite dugme. Lemiti pozitivnu žicu na jedan od krajeva potenciometra (ne na promjenjivi dio), a negativnu žicu na suprotni kraj. Lemite D-iglu na promenljivu iglu na loncu. Lemite žicu sa igle na loncu s pozitivnom žicom na jedan od pinova na gumbu. Lemite D+ na drugu iglu na dugmetu. Odrežite rezervnu žicu i izolirajte komade koji su joj potrebni.

Korak 6: Košulja

Shirt
Shirt
Shirt
Shirt
Shirt
Shirt

Pronađite udobnu košulju koja će propustiti svjetlost. Ja sam odabrao ovu osnovnu bijelu majicu. Nije važno boja ili stil sve dok se svjetlost može vidjeti kako prodire iznutra. Međutim, ne preporučujem grafiku na prednjoj strani. Rasporedite sve na majici kako biste lakše odlučili gdje želite i upotrijebite brisajući alat za označavanje da biste je nacrtali. Ja (znači neki ljudi koje poznajem) imam olovku za označavanje tkanina koja se lako ispire. Izmjerite veličinu baterija, kućište kontrolera i ekran te izrežite komade papira koji odgovaraju. Zatim pričvrstite papir na komad ne rastezljive tkanine. Za to dobro funkcionira tkanje. Zatim izrežite pravokutnik ostavljajući oko četvrtine inča po cijelom rubu. Zatim pomoću papira kao vodiča glačajte nabore u tkanini. Sada se papir može ukloniti. Na dijelu džepa koji će biti gornji dio preklopite ga tri puta. Peglajte i pričvrstite ga da ga držite na mjestu. Šivajte ala do kraja po sredini nabora. Sada uzmite kut i presavijte ga tako da su nešiveni rubovi okomiti jedni na druge paralelni i sašijte traku uz glačani pregib najbliži uglu (Slike zaista pomažu). Učinite to i za drugi ugao. Ako ćete vjerojatno imati prekidač koji izlazi iz džepa, sašite rupicu za dugme na dnu džepa na mjestu gdje prekidač dodiruje. Zatim sašite rupicu za gumb i izrežite srednji dio. Ne mogu vam dati detaljna uputstva jer sam imao super alat za izradu rupa za dugmad. Samo budite sigurni da ste napravili rupe prije nego što je džep ušiven. Uzmite igle i probodite ih kroz majicu na uglovima oznaka džepa. Uzmite džep i stavite svaki ugao na iglu (na unutrašnjoj strani košulje), ostavljajući četvrtinu inča za šav, i pričvrstite ga na košulju. Nakon pričvršćivanja džepa. uklonite igle koje ne drže džep i prišite džep na košulju. Ponovite za sve džepove. Za veliki džep koji drži ekran ostavite razmak za žice na dnu džepa. Za stavljanje rupe u košulju označite mjesto i uzmite peglu na podlogu (sa sjajnijim dijelom na tkanini) i ispeglajte je. Zatim, za malu rupu (poput onoga što sam koristio za prekidač), napravite rupu za dugme. Za veću rupu označite obris i upotrijebite cik-cak ubod duž linije (ili krivulje ili šta već imate) i izrežite srednji dio. Ako želite, možete koristiti tregere za držanje težine džepova, dvije kopče koje se drže za džepove sprijeda, a stražnje kopče za hlače. Dobio sam i mali rukav od tkanine koji je ušiven preko dijelova tregera koji će mi dodirivati kožu. Dvije majice se mogu zagrijati pa sam se odlučio i upotrijebio mali tkani rukav.

Korak 7: Programiranje

Programiranje
Programiranje

A evo i koda. Postoji nekoliko dijelova koji su dobro komentirani, ali velika većina nije. Ako imate pitanja o različitim dijelovima, možete mi dati broj retka (s #include kao red broj jedan) ili mi dati kopiju retka (a) i funkciju u kojoj se nalazi (poput loop () ili compMovePaddle ()) i potrudit ću se da vam to objasnim, a zatim dodajem komentar kodu koji to objašnjava. #include #define PIN 6 // kaže koji su unosi za igru int buttonPin = 40; // diktira rezultat, čuva se u dvosmjernom nizu jer je ezier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // diktira smjer lopte int bvd = 0; // 0 je dolje, 1 je gore int bhd = 0; // 0 je desno, 1 je lijevo // diktira položaj loptica int bvp = 8; int bhp = 6; // provjerava je li lopta u brzom načinu rada boolean fast = false; // provjerava radi li se o bodovima. boolean cIsPoint = false; boolean pIsPoint = false; // pozicije vesla int cPaddle = 0; int pPaddle = 0; long previousMillis = 0; long previousMillisForComp = 0; // postavljamo vrijeme kašnjenja za brzo i sporo pokretnu loptu "Int" u normInt i fastInt je za interval int normInt = 50; int fastInt = 10; // koristi se za provjeru dobitka. 1 je pobjeda igrača, -1 računarska pobjeda, a 0 je ništa što se još nije dogodilo int win = 0; // da biste se riješili greške. koristi se u naredbi addOne i nigdje drugdje. int koji = 0; // Stvar prikazana prije početka, -1 je escape int pongPlay = {1, 2, 3, 4, 10, 11, 12, 13, 16, 18, 20, 27, 29, 33, 34, 41, 42, 61, 62, 63, 70, 71, 72, 76, 85, 86, 88, 91, 92, 94, 100, 101, 102, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, -1}; // ako osvojite int youWin = {1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 27, 33, 34, 39, 46, 47, 48, 49, 54, 55, 56, 57, 58, 77, 78, 79, 84, 88, 91, 92, 93, 94, 95, 99, 103, 106, 110, 114, 118, 130, 131, 132, 144, 145, 146, 147, 151, 162, 163, 168, 169, 170, 177, 181, 192, 193, 204, 205, 206, 207, -1}; // ako izgubite u međuvremenu izgubite = {1, 3, 5, 16, 17, 18, 19, 20, 24, 26, 28, 31, 32, 32, 33, 34, 35, 39, 46, 47, 48, 49, 62, 65, 77, 78, 79, 84, 86, 88, 91, 94, 99, 103, 106, 110, 122, 123, 124, 130, 131, 132, 144, 148, 152, 153, 154, 162, 163, 168, 169, 170, 181, 192, 193, 204, 205, 206, 207, 208, -1}; // postavlja LED traku Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // postavljanje, ne okreće pin 40 za ulaz, započinje traku, prikazuje // poruku i prikazuje je. void setup () {pinMode (buttonPin, INPUT); strip.begin (); for (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); kašnjenje (5000); while (digitalRead (buttonPin) == LOW) {// To je zamka! (dok se dugme ne pritisne.)}} void loop () {clearScreen (); // izvlači lopatice za prikaz rezultata za (int i = 0; i <5; i ++) {if (playerScore == 1) {strip.setPixelColor (204-i, strip. Color (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (204-i, strip. Color (0, 255, 0)); } if (compScore == 1) {strip.setPixelColor (5+i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (5+i, strip. Color (255, 0, 0)); }} // izvlači loptu u početnom položaju strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // odlučuje hoće li se lopta dizati ili spuštati dok (pIsPoint == false && cIsPoint == false) {clearScreen (); bez potpisa duga strujaMillis = millis (); // dodjeljuje položaj vesla igrača pPaddle = checkPaddlePos (); // provjerava sljedeću poziciju checkNext (); // pomicanje lopte if (fast == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // izvući loptu if (bhp%2! = 0) {strip.setPixelColor (bhp*15+14-bvp, strip. Color (255, 255, 255)); } else if (bhp%2 == 0) {strip.setPixelColor (bhp*15+bvp, strip. Color (255, 255, 255)); } // kretanje vesla računara compMovePaddle (); // draw's the paddles drawPaddles (); // zapravo sve postavio.strip.show (); // provjeravamo je li poen postignut if (pIsPoint == true) {which = 0; bhd = 0; addOne (); break; } else if (cIsPoint == true) {koji = 1; bhd = 1; addOne (); break; }} if (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } kašnjenje (5000); za (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } dobitak = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } kašnjenje (5000); za (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } dobitak = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; bhp = 6; bvd = random (0, 2); // 0 je nadole, 1 brzo gore = false; } // AI za igru void compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {prethodniMillisForComp = currentMillis; if (bvp> = 13 && 10-cPaddle 0) {cPaddle--; } else if (bvp = 0 && cPaddle <10) {cPaddle ++; } else if (bvp-3> 10-cPaddle && 10-cPaddle> = 0 && cPaddle> 0) {cPaddle--; } else if (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // pomera loptu void moveBall () {if (bhd == 0) {bhp--; } else if (bhd == 1) {bhp ++; } if (bvd == 0) {bvp--; } else if (bvd == 1) {bvp ++; }} // dodaje jedan u niz. Ako whichOne je 0 dodaje se igračevom rezultatu. Ako je 1, računaru dodaje void addOne () {if (which == 0) {// ako je to rezultat igrača // Dodajte jedan. Ovo je najjednostavniji način na koji znam. for (int i = 0; i <5; i ++) {// petlja if (playerScore == 0) {// ako je ta vrijednost nula playerScore = 1; // napravi 1 pauzu; // zatim otiđite} else {// ako je 1 igračScoreScore = 0; // neka bude nula i petlja}}} else if (which == 1) {for (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; break; } else {compScore = 0; }}} // Provjerava je li neko pobijedio. ako (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } inače if (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // provjerava loptice sljedeću poziciju void checkNext () {// provjerava je li bod postignut ako (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // ako je poen postignut, preskočite ostatak ove stavke if (pIsPoint == false || cIsPoint == false) {// provjerava loptu vertikalno if (bvp+bvd == 15) {bvd = 0; } else if (bvp+bvd == 0) {bvd = 1; } // horizontalno provjerava loptu ako (bhp+bhd == 13) {// prvo na strani računara if (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; } brzo = netačno; } else if (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; } else if (bvp == 0 || bvp == 14) {bhd = 1; } brzo = netačno; }} else if (bhp+bhd == 1) {// onda na strani igrača if (bvp> = pPaddle && bvp <= pPaddle+4) {// udara li veslo na normalno mjesto? // odbija loptu! if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// pogađa li veslo na uglu if (bvp! = 0 && bvp! = 14) {// je li to nije gore visoko ili dole nisko? // Odbija loptu! if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; brzo = tačno; } else if (bvp == 0 || bvp == 14) {// je li visoko gore ili dolje nisko? // odbija loptu! bhd = 0; fast = true; // postavite vrijednost za kasnije ubrzanje kretanja loptice}}}}} int checkPaddlePos () {// čita pot i odlučuje o položaju vesla prema tome ako (analogRead (A15) <93) {return 0; } else if (analogRead (A15) <186) {return 1; } else if (analogRead (A15) <279) {return 2; } else if (analogRead (A15) <372) {return 3; } else if (analogRead (A15) <465) {return 4; } else if (analogRead (A15) <558) {return 5; } else if (analogRead (A15) <652) {return 6; } else if (analogRead (A15) <745) {return 7; } else if (analogRead (A15) <837) {return 8; } else if (analogRead (A15) <= 931) {return 9; } else if (analogRead (A15) <= 2014) {return 10; }} void drawPaddles () {// izvlači vesla na ispravnom mjestu i prikazuje rezultat na veslu za (int i = 0; i <5; i ++) {if (playerScore == 1) {strip. setPixelColor (pPaddle+i, strip. Color (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (pPaddle+i, strip. Color (255, 0, 0)); } if (compScore == 1) {strip.setPixelColor (199+cPaddle-i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (199+cPaddle-i, strip. Color (0, 255, 0)); }}} void clearScreen () {for (int i = 0; i <= 210; i ++) {strip.setPixelColor (i, strip. Color (0, 0, 0)); } strip.show (); }

Korak 8: Gotov proizvod

Gotov proizvod
Gotov proizvod
Gotov proizvod
Gotov proizvod

I eto, gotova majica!

Preporučuje se: