INHOUDSOPGAWE:

Skaapkopkaartspel met Esp8266: 4 stappe
Skaapkopkaartspel met Esp8266: 4 stappe

Video: Skaapkopkaartspel met Esp8266: 4 stappe

Video: Skaapkopkaartspel met Esp8266: 4 stappe
Video: IoT: скорость управления двигателем постоянного тока с NodeMCU ESP8266 и модулем L298N 2024, November
Anonim
Skaapkopkaartspel met Esp8266
Skaapkopkaartspel met Esp8266

Sheepshead is 'n kaartspel wat my tante en ooms tydens gesinsbyeenkomste sou speel. Dit is 'n truuk -neem kaartspel wat sy oorsprong in Europa het. Daar is verskillende weergawes, so my weergawe kan 'n bietjie anders wees as wat u speel. In die weergawe wat ek geïmplementeer het, kan u met 3, 4 of 5 spelers speel, waarvan 5 die ideale aantal spelers is. Die spel gebruik 32 kaart van 'n standaard 52 kaartdek.

Die basiese reëls kan hier gevind word:

'N Kort opsomming van die reëls vir 'n spel met 5 spelers; elke speler kry 6 kaarte en twee kaarte word aan die blinde uitgedeel. Die speler aan die linkerkant van die handelaars kry die eerste kans om die blinde te kies, dan die volgende speler, ens. Totdat iemand die blinde kies, of totdat alle spelers 'n verandering moet kies. As niemand kies nie, begin die spel weer en nuwe kaarte word uitgedeel. Die persoon wat die blinde kies, word die plukker genoem. Die plukker kies 'n maat deur 'n pak te roep, hetsy Hearts, Clubs of Spades, maar moet 'n kaart van dieselfde pak in sy/haar hand hê. Die speler wat die Aas van die genoemde pak het, is die vennoot. Spelers moet volg met die eerste kaart wat gespeel word, troef is 'n pak. Die vennoot moet die Aas speel wanneer die genoemde pak die eerste keer gelei word. Die plukker en vennoot moet 61 punte kry om die wedstryd te wen. Die spelers wat nie die plukker is nie of die vennoot vorm 'n span en hul punte word saamgevoeg om hulle te klop. Sien die reëls hierbo vir die telling.

Vir 3 en 4 spelers spel is daar geen vennoot nie en 10 of 8 kaarte word onderskeidelik uitgedeel.

Ek het nie 'n speletjie leaster geïmplementeer nie. As geen speler kies nie, kan die spel voortgaan deur die speler. Die Leaster -wenner is die speler wat ten minste een truuk neem en die minste punte kry.

Spelontwikkeling:

My inspirasie vir hierdie projek was die begeerte om 'n Sheepshead -toepassing te skep en ook jquery te leer. Ek het ook dragula.js gebruik om die kaarte te sleep en neer te sit. Die esp8266 word in die AP -modus geplaas. Om aan te sluit, benodig u 'n WiFi -toestel wat kan koppel aan die "Sheepshead" -netwerk en na die https://191.168.1.1 webwerf gaan.

Dit is my eerste instruksies, so ek sal enige terugvoer waardeer. Ek sal probeer om u vrae te beantwoord as ek kan.

Stap 1: Bou die hardeware

Die bou van die hardeware
Die bou van die hardeware
Die bou van die hardeware
Die bou van die hardeware
Die bou van die hardeware
Die bou van die hardeware

Hardewarevereistes

Dit kan gemaak word met 'n Wemos D1 Mini of met 'n esp8266-esp-07 of esp-12.

ESB8266 bou:

  • esp8266 (esp-07 of esp-12)
  • wit monteerbord vir esp8266 + verbindings
  • 6-pins vroulike aansluiting (opsioneel)
  • LM317 spanningsreguleerder
  • (2) 10K Ohm weerstand
  • 390 Ohm weerstand
  • 220 Ohm Weerstand
  • 20 Ohm weerstand
  • (2) kort drukknoppies
  • 100n keramiek kondensator
  • 10uF elektrolitiese kondensator
  • 220 uF elektrolitiese kondensator
  • 1N4002 diode (opsioneel)
  • vatverbinding (ek het 'n systeun gebruik en aan 'n 3 -polige manlike aansluiting gesoldeer)
  • Projek boks
  • Kragtoevoer

Ek het die ExpressSCH- en ExpressPCB -lêers ingesluit wat ek gebruik het om die kring te bou. Soos u op die foto kan sien, het ek nie die knoppies bygevoeg of die J2 -aansluiting gebruik nie (wat saam met die FTDI232RL -module gebruik kan word vir die programmering van die esp8266). As u dit as 'n esp8266 -programmeerder wil gebruik, benodig u die knoppies en die J2 -aansluiting. Om sagteware of data te flits, moet u die toestel (SW1) terugstel terwyl dit ingedruk word terwyl u op die (SW2) knoppie druk, dan die (SW1) knoppie los en die kode oplaai.

Voordat u enige komponente plaas, moet u die kring verifieer deur elke verbinding te toets. Kontroleer of die spanningsreguleerder 3,3 volt lewer en kontroleer alle aansluitings. As u nie seker is nie, raai ek u aan om 'n Wemos D1 mini te gebruik, aangesien geen soldeer nodig is nie.

Stap 2: Laai die sagteware

Laai die sagteware
Laai die sagteware

Sagteware

Ek het die sagteware vir hierdie projek ingesluit. Ek sal 'n kort verduideliking gee van elke klas en waarvoor dit gebruik word, maar ek gaan nie in op die besonderhede nie. Hierdie speletjie is 'n bewys dat 'n kaartspel op 'n esp8266 gemaak kan word. Die spel het 'n paar probleme wat ek nog nie uitgewerk het nie. Byvoorbeeld, as 'n gebruiker aanmeld en die verbinding verloor, word hy nie uit die spel vrygestel nie en kan hy nie weer met die spel skakel nie. Die enigste manier om dit te voorkom is om die spel terug te stel en weer te begin. Die spel is 'n bietjie stadig en verfris soms nie die kaarte nie. Die gebruiker kan die blaaier verfris, wat die kaarte korrek moet vertoon. As die gebruiker die skakel op hul tuisskerm (vir iPhone's) stoor, is die opdateringsknoppie nie beskikbaar nie, wat dit onmoontlik maak om te verfris. Soms is dit moeilik om kaarte na/van die blinde op klein toestelle te sleep.

Card.h en Card.ino Card klas

Hierdie klas hou die kaartpak, rang, punt en watter kaarte troef is.

Deck.h en Deck.ino Deck klas

Hierdie klas het die kaartdekinligting bevat. Dit het 'n metode om die dek te skommel en om kaarte van die dek af te haal. Dit gebruik 'n ewekansige saad om die dek te skommel

Hand.h en Hand.ino

Hierdie klas implementeer die IGame -koppelvlak en bevat inligting oor elke spelershand. Wie die plukker, vennote en handelaar is. Dit hou vas wie se beurt dit is, wat die pak genoem word, wat die hoofpak is, watter handnommer, die aantal spelers, wie die wenner is, ens.

Player.h en Player.ino Player klas

Hierdie klas bevat inligting oor die speler, soos naam van die speler, spanpunte, as die speler gekies of geslaag het, en gee 'n boodskap aan die speler.

IGame.h en IGame.ino IGame koppelvlak klas

Hierdie klas bevat die dek-, kaart- en spelerklasse om die spelvloei te beheer.

Skaapkop.ino

Bevat die opstel- en lusfunksie om die webwerf te bedien.

login.html en login.js lêers

Hierdie lêers beheer die vloei van die webwerf vir gebruikersaanmelding

sheepshead.html en sheepshead.js lêers

Hierdie lêers beheer die vloei van die webwerf skaapkopspel.

Kaart beelde

bevat die beeld van elke kaart, insluitend die agterkant van die kaart.

Hier is 'n kort verduideliking om sagteware op die esp8266 te laai. Daar is verskeie voorbeelde op die internet wat dit in meer besonderhede kan verduidelik. Dit is hoe ek die sagteware en data met die Arduino IDE -sagteware gelaai het.

  • Installeer die Arduino sagteware en die esp8266 boards lêers, sien https://github.com/esp8266/Arduino vir meer inligting.
  • As u 'n Wemos D1 mini gebruik, stel die flitsgrootte in op 4M (1M SPIFFS). As u 'n generiese esp8266 esp-07 of esp-12 gebruik, stel die flitsgrootte in op 1M (512 SPIFFS).
  • Miskien moet u ekstra biblioteke in die Arduino -sagteware installeer.
  • Volg die skakel https://github.com/esp8266/arduino-esp8266fs-plug… om die SPIFF-data te installeer …
  • pak die Sheepshead -sagteware uit en plaas dit op u rekenaar.
  • Begin die Arduino IDE -sagteware en maak die Sheepshead -projek oop
  • Installeer die Sheepshead -kode op die esp8266 -toestel deur op die oplaai -knoppie te klik. As u nie die Wemos D1 Mini gebruik nie, moet u die toestel moontlik in die flitsmodus plaas deur op die reset -knoppie (SW1) te klik terwyl u op die (SW2) -knoppie druk, en dan die (SW1) -knoppie los te maak en die kode op te laai.
  • Installeer die data op die esp8266 -toestel deur na die gereedskap in die spyskaart te gaan en op "ESP8266 Sketch Data Upload" te klik. U moet dieselfde stappe as hierbo volg om die toestel in 'n flitsmodus te plaas.
  • Sodra die sagteware en data gelaai is, is u gereed om die spel te speel.

Stap 3: Speel die spel

Speel die spel
Speel die spel
Speel die spel
Speel die spel
Speel die spel
Speel die spel

Om aan te sluit, benodig u 'n WiFi -toestel wat aan die "Sheepshead" -netwerk kan koppel, en gaan dan na die https://191.168.1.1 webwerf.

  • Spelers sluit aan deur hul naam in te voer en op Join te klik. Die spel veronderstel dat u 5 spelers sal hê, indien nie, moet 'n speler die aantal spelers kies voordat die laaste speler by die spel aansluit.
  • Sodra die laaste speler aangesluit het, word die kaarte uitgedeel en begin die spel wanneer die speler op die Start -knoppie klik.
  • Die spel laat 'n speler nie 'n ongeldige kaart speel of om die beurt speel nie.
  • As u op 'n kaart klik, word dit groter om meer sigbaar te wees. As u 'n tweede keer klik, word die kaart gespeel.
  • Die spelers se naam word met wit letters gemerk.
  • Die speler wat volgende gaan speel, sal 'n rooi boks met sy naam en kaart hê.
  • Die spel begin deur 'n speler toe te laat om die blinde te kies of te slaag. As 'n speler die blinde kies, kan hy die kaarte van die blinde na die hand sleep en laat val. Sodra die plukker die kaarte het wat hulle wil hê, moet hy 'n genoemde pak uit die aftreklys kies.
  • Die spel sal bevestig dat hulle 'n geskikte kaart vir die genoemde pak het.
  • Speel begin wanneer die eerste speler die eerste kaart speel, elke speler speel een kaart en die wenner vir die hand word vertoon. Die punte word bereken en vertoon vir elke speler/span.
  • Die wenner van die hand speel die eerste kaart en elke speler speel een kaart.
  • Speel word voortgesit totdat alle kaarte gespeel is
  • 'N Wenner word bepaal.
  • Die volgende persoon word die handelaar en 'n nuwe speletjie begin.

Stap 4: Gevolgtrekking

Dit is my eerste instruksies en ek verwelkom u terugvoer. Soos ek gesê het, is dit 'n bewys dat 'n kaartspel op 'n esp8266 -toestel gemaak kan word. Dit het 'n paar probleme, maar is speelbaar. Ek sien uit na u kommentaar en voorstelle.

Aanbeveel: