Inhoudsopgave:

Sheepshead-kaartspel met Esp8266 - Ajarnpa
Sheepshead-kaartspel met Esp8266 - Ajarnpa

Video: Sheepshead-kaartspel met Esp8266 - Ajarnpa

Video: Sheepshead-kaartspel met Esp8266 - Ajarnpa
Video: This entire card game is a quantum physics joke 2024, November
Anonim
Sheepshead-kaartspel met Esp8266
Sheepshead-kaartspel met Esp8266

Sheepshead is een kaartspel dat mijn tantes en ooms speelden tijdens familiebijeenkomsten. Het is een trick-taking kaartspel dat zijn oorsprong vindt in Europa. Er zijn verschillende versies, dus mijn versie kan een beetje anders zijn dan wat je speelt. In de versie die ik heb geïmplementeerd kun je met 3, 4 of 5 spelers spelen, waarbij 5 het ideale aantal spelers is. Het spel maakt gebruik van 32 kaarten van een standaard kaartspel van 52 kaarten.

De basisregels zijn hier te vinden:

Een korte samenvatting van de regels voor een spel met 5 spelers; elke speler krijgt 6 kaarten gedeeld en de blind krijgt twee kaarten. De speler aan de linkerzijde van de dealer krijgt de eerste kans om de blind te kiezen, daarna de volgende speler enz. totdat iemand de blind kiest of totdat alle spelers een kans hebben om te kiezen. Als niemand kiest, begint het spel opnieuw en worden nieuwe kaarten gedeeld. De persoon die de blind kiest, wordt de picker genoemd. De kiezer kiest een partner door een kleur te roepen, ofwel harten, klaveren of schoppen, maar moet een kaart van dezelfde kleur in zijn/haar hand hebben. De speler die de Aas van de opgeroepen kleur heeft, is de partner. Spelers moeten de kleur van de eerste gespeelde kaart volgen, troef is een kleur. De partner moet de Aas spelen wanneer de opgeroepen kleur voor de eerste keer wordt voorgespeeld. De kiezer en partner moeten 61 punten halen om het spel te winnen. De spelers die niet de kiezer of de partner zijn, vormen een team en hun punten worden samengevoegd om ze te verslaan. Zie de link naar de regels hierboven voor het scoren.

Bij een spel met 3 en 4 spelers is er geen partner en worden respectievelijk 10 of 8 kaarten uitgedeeld.

Ik heb geen spel van de minste geïmplementeerd. Als geen enkele speler kiest, kan het spel worden voortgezet door de minste speler. De minste winnaar is de speler die ten minste één slag haalt en het minste aantal punten scoort.

Spelontwikkeling:

Mijn inspiratie voor dit project kwam doordat ik een Sheepshead-applicatie wilde maken en ook jQuery wilde leren. Ik heb ook dragula.js gebruikt om te helpen bij het slepen en neerzetten van de kaarten. De esp8266 wordt in AP-modus gezet. Om verbinding te maken, hebt u een WiFi-apparaat nodig dat verbinding kan maken met het "Sheepshead"-netwerk en naar de https://191.168.1.1-website gaat.

Dit is mijn eerste instructables, dus ik zou alle feedback op prijs stellen. Ik zal proberen uw vragen te beantwoorden wanneer ik kan.

Stap 1: De hardware bouwen

De hardware bouwen
De hardware bouwen
De hardware bouwen
De hardware bouwen
De hardware bouwen
De hardware bouwen

Hardwarevereisten

Dit kan met een Wemos D1 Mini of met een esp8266 - esp-07 of esp-12.

Esp8266 bouwen:

  • esp8266 (esp-07 of esp-12)
  • witte montageplaat voor esp8266 + connectoren
  • 6-pins vrouwelijke connector (optioneel)
  • LM317 spanningsregelaar
  • (2) 10K Ohm weerstand
  • 390 Ohm Weerstand
  • 220 Ohm Weerstand
  • 20 Ohm Weerstand
  • (2) tijdelijke drukknoppen
  • 100n keramische condensator
  • 10uF elektrolytische condensator
  • 220uF elektrolytische condensator
  • 1N4002-diode (optioneel)
  • vatconnector (ik gebruikte een zijmontage en gesoldeerd aan een 3-pins mannelijke connector)
  • Projectdoos
  • Stroomvoorziening

Ik heb de ExpressSCH- en ExpressPCB-bestanden toegevoegd die ik heb gebruikt om het circuit te bouwen. Zoals je op de afbeelding kunt zien, heb ik de knoppen niet toegevoegd of de J2-connector gebruikt (die kan worden gebruikt met de FTDI232RL-module voor het programmeren van de esp8266). Wil je deze als esp8266 programmer gebruiken dan heb je de knoppen en de J2 connector nodig. Om software of gegevens te flashen, moet u het apparaat (SW1) resetten. Houd het ingedrukt terwijl u op de (SW2)-knop drukt, laat vervolgens de (SW1)-knop los en upload de code.

Voordat u componenten plaatst, controleert u het circuit door elke verbinding te testen. Controleer of de spanningsregelaar 3,3 volt levert en controleer alle verbindingen nogmaals. Als u het niet zeker weet, raad ik u aan een Wemos D1 mini te gebruiken, omdat solderen niet nodig is.

Stap 2: De software laden

De software laden
De software laden

Software

Ik heb de software voor dit project meegeleverd. Ik zal een korte uitleg geven van elke klasse en waarvoor deze wordt gebruikt, maar ik ga niet in details treden. Dit spel is een proof of concept dat een kaartspel kan worden gemaakt op een esp8266. De game heeft een paar problemen die ik nog niet heb opgelost. Wanneer een gebruiker bijvoorbeeld inlogt en de verbinding verliest, worden ze niet uit het spel gehaald en kunnen ze niet opnieuw verbinding maken met het spel. De enige manier om dit te omzeilen is door het spel te resetten en opnieuw te beginnen. Het spel is een beetje traag en soms worden de kaarten niet vernieuwd. De gebruiker kan de browser vernieuwen die de kaarten correct moet weergeven. Als de gebruiker de link op zijn startscherm (voor iPhone's) opslaat, is de vernieuwingsknop niet beschikbaar, waardoor het onmogelijk is om te vernieuwen. Soms is het moeilijk om kaarten van/naar de blind op kleine apparaten te slepen en neer te zetten.

Card.h en Card.ino Card-klasse

Deze klasse bevat de kaartkleur, rang, punt en welke kaarten troef zijn.

Deck.h en Deck.ino Deck class

Deze klasse bevatte de kaartspelinformatie. Het heeft een methode om het kaartspel te schudden en om kaarten van het kaartspel te krijgen. Het gebruikt een willekeurig zaadje om het kaartspel te schudden

Hand.h en Hand.ino

Deze klasse implementeert de IGame-interface en bevat informatie over de hand van elke speler. Wie de Picker, Partners en Dealer zijn. Het houdt in wie er aan de beurt is, wat de opgeroepen kleur is, wat de hoofdkleur is, welk handnummer, het aantal spelers, wie de winnaar is, enz.

Player.h en Player.ino Spelersklasse

Deze klasse bevat spelersinformatie, zoals de naam van de speler, teampunten, of de speler heeft gekozen of gepasseerd, en geeft een bericht weer aan de speler.

IGame.h en IGame.ino IGame-interfaceklasse

Deze klasse bevat de klassen Deck, Card en Player om het spelverloop te beheersen.

Sheepshead.ino

Bevat de setup- en loop-functie om de website te bedienen.

login.html en login.js bestanden

Deze bestanden regelen de stroom voor de gebruikersaanmeldingswebsitepagina

sheepshead.html- en sheepshead.js-bestanden

Deze bestanden regelen de stroom van het schapenkopspel op de website.

Kaartafbeeldingen

bevat de afbeelding van elke kaart, inclusief de achterkant van de kaart.

Hier is een korte uitleg over het laden van software op de esp8266. Er zijn verschillende voorbeelden op het web die het in meer detail kunnen uitleggen. Dit is hoe ik de software en gegevens heb geladen met behulp van de Arduino IDE-software.

  • Installeer de Arduino-software en de esp8266-boardbestanden, zie https://github.com/esp8266/Arduino voor meer informatie.
  • Als u een Wemos D1 mini gebruikt, stelt u de flitsgrootte in op 4M (1M SPIFFS). Als u een generieke esp8266 esp-07 of esp-12 gebruikt, stelt u de flitsgrootte in op 1M (512 SPIFFS).
  • Mogelijk moet u enkele extra bibliotheken in de Arduino-software installeren.
  • Volg deze link om de SPIFF-gegevens te installeren
  • pak de Sheepshead-software uit en plaats deze op uw computer.
  • Start de Arduino IDE-software en open het Sheepshead-project
  • Installeer de Sheepshead-code op het esp8266-apparaat door op de uploadknop te klikken. Als u de Wemos D1 Mini niet gebruikt, moet u het apparaat mogelijk in de flitsmodus zetten door op de resetknop (SW1) te klikken, deze ingedrukt te houden terwijl u op de (SW2)-knop drukt, vervolgens de (SW1)-knop los te laten en de code te uploaden.
  • Installeer de gegevens op het esp8266-apparaat door naar tools in het menu te gaan en op "ESP8266 Sketch Data Upload" te klikken. U moet dezelfde stappen als hierboven volgen om het apparaat in de flitsmodus te zetten.
  • Zodra de software en gegevens zijn geladen, bent u klaar om het spel te spelen.

Stap 3: Het spel spelen

Het spel aan het spelen
Het spel aan het spelen
Het spel aan het spelen
Het spel aan het spelen
Het spel aan het spelen
Het spel aan het spelen

Om verbinding te maken heb je een wifi-apparaat nodig dat verbinding kan maken met het "Sheepshead"-netwerk en ga dan naar de website

  • Spelers nemen deel door hun naam in te voeren en op Deelnemen te klikken. Het spel gaat ervan uit dat je 5 spelers hebt, zo niet, dan moet een speler het aantal spelers selecteren voordat de laatste speler deelneemt aan het spel.
  • Zodra de laatste speler toetreedt, worden de kaarten uitgedeeld en begint het spel wanneer de speler op de Start-knop klikt.
  • Het spel laat een speler geen ongeldige kaart spelen of voor zijn beurt spelen.
  • Wanneer er op een kaart wordt geklikt, wordt deze groter om beter zichtbaar te zijn. Als er een tweede keer op wordt geklikt, wordt de kaart gespeeld.
  • De spelersnaam is gemarkeerd met witte letters.
  • De speler die als volgende gaat spelen, heeft een rood vak om zijn naam en kaart.
  • Het spel begint door een speler de blind of pass te laten kiezen. Wanneer een speler de blind kiest, kunnen ze de kaarten van de blind naar/van hun hand slepen en neerzetten. Zodra de kiezer de gewenste kaarten heeft, moet hij een opgeroepen kleur uit de vervolgkeuzelijst kiezen.
  • Het spel valideert dat ze een geschikte kaart hebben voor de opgeroepen kleur.
  • Het spel begint wanneer de eerste speler de eerste kaart speelt, elke speler één kaart speelt en de winnaar van de hand wordt weergegeven. De punten worden berekend en weergegeven voor elke speler/team.
  • De winnaar van de hand speelt de eerste kaart en elke speler speelt één kaart.
  • Het spel gaat door totdat alle kaarten zijn gespeeld
  • Er wordt een winnaar bepaald.
  • De volgende persoon wordt de dealer en een nieuw spel begint.

Stap 4: Conclusie

Dit is mijn eerste Instructable en ik ben blij met uw feedback. Zoals ik al zei, dit is een proof-on-concept dat een kaartspel kan worden gemaakt op een esp8266-apparaat. Het heeft een paar problemen, maar is speelbaar. Ik kijk uit naar uw opmerkingen en suggesties.

Aanbevolen: