Huis Persoonlijke financiën Java Programming Challenge: A Simple Tic-Tac-Toe Game - dummies

Java Programming Challenge: A Simple Tic-Tac-Toe Game - dummies

Video: 15 min Java Coding Challenge - Tic-Tac-Toe 2024

Video: 15 min Java Coding Challenge - Tic-Tac-Toe 2024
Anonim

Je missie, als je besluit om het te accepteren, is om een ​​Java-programma te maken dat een spel met Tic-Tac-Toe met de gebruiker kan spelen.

Zoals je waarschijnlijk weet, is Tic-Tac-Toe een eenvoudig spel dat meestal met papier en potlood wordt gespeeld. Eerst maak je een eenvoudig 3 x 3 raster op het papier. Daarna wisselen twee spelers afwisselend door Xs en Os in lege velden op het raster te markeren. De eerste speler die drie van zijn of haar punten maakt in een horizontale, verticale of diagonale rij wint. Als alle velden in het raster zijn gevuld voordat een speler drie op een rij markeert, is het spel gelijkspel.

Hier zijn de regels en instructies voor deze uitdaging:

  1. De computer speelt tegen de mens. De mens beweegt als eerste en is X. De computer is O.

  2. Het programma zou moeten beginnen met het weergeven van een kort welkomstbericht, en zou dan de speler moeten vragen om zijn of haar eerste zet. Bijvoorbeeld:

    Welkom bij Tic-Tac-Toe. Voer uw eerste zet in:
    
  3. Om de vierkanten van het raster aan te duiden, gebruikt u de letters A, B en C voor de kolommen en de nummers 1, 2 en 3 voor de rijen, zoals deze:

    A1 B1 C1 A2 B2 C2 A3 B3 C3
    

    Om dus een X in het vierkant linksboven te plaatsen, zou de menselijke speler de tekst A1 invoeren wanneer het programma de speler om een bewegen.

    Nadat de mens een beweging heeft ingevoerd, moet het programma de huidige status van het bord op de console weergeven.

  4. Gebruik X om de spelen van de mens te markeren en op O om de spelen van de computer te markeren. Gebruik verticale balkpersonages (gevonden op het toetsenbord met het backslash-teken, net boven de Enter-toets) en koppeltekens om het bord in een eenvoudig raster te tekenen.

    Als de gebruiker bijvoorbeeld A1 heeft ingevoerd als zijn eerste zet, zou het programma het volgende weergeven:

    X | | --- | --- | --- | | --- | --- | --- | |
    
  5. Na de verplaatsing van de mens bepaalt het programma de zet, kondigt het aan de gebruiker aan, geeft een bijgewerkt bord weer en vraagt ​​vervolgens om de zet van de gebruiker.

    U ziet bijvoorbeeld dit:

    Ik speel A2: X | O | --- | --- | --- | | --- | --- | --- | | Voer je volgende zet in:
    
  6. Het spel gaat door totdat één speler drie keer op rij heeft gescoord of alle vierkanten zijn gevuld zonder winnaar. Je programma moet kunnen bepalen of een speler drie keer op rij heeft gescoord en de game heeft gewonnen. (Dit is het moeilijkste deel van deze programmeeruitdaging.)

  7. Wanneer het spel is afgelopen, geeft het programma een bericht weer dat het resultaat van het spel aangeeft: "Je hebt me verslagen! "Als de menselijke speler wint," verslaat ik jou! "Als de computer speler wint, of" Het is een gelijkspel! "Als het spel in gelijkspel eindigt.

  8. De mens en de computer kunnen alleen spelen op velden die nog niet door beide spelers bezet zijn.

  9. Het programma eindigt als de game door een van de spelers is gewonnen of als het spel gelijkspel is. Als u opnieuw wilt spelen, moet u het programma opnieuw uitvoeren.

Houd er rekening mee dat u elke methode kunt gebruiken die u wilt bepalen hoe de computer zijn bewegingen moet uitvoeren. Ik stel voor dat de computer altijd in het eerste lege vierkant speelt. Dit is natuurlijk niet de beste manier om Tic-Tac-Toe te spelen, en je zult probleemloos de computer verslaan elke keer dat je speelt. Maar door deze eenvoudige spelstrategie te kiezen, kun je je concentreren op andere aspecten van de programmering, zoals hoe je het raster intern representeert en hoe je kunt bepalen wanneer een speler het spel heeft gewonnen of wanneer het spel in een gelijkspel is geëindigd.

(In "Java-programmeerwedstrijd: arrays aan het eenvoudige Tic-Tac-Toe-programma toevoegen" wordt u gevraagd om een ​​betere strategie voor het programma te bedenken om de plays te bepalen.)

Hier is een voorbeeld van het display van de console voor een compleet spel:

Welkom bij Tic-Tac-Toe. Voer je eerste zet in: A1 X | | --- | --- | --- | | --- | --- | --- | | Ik speel op A2: X | O | --- | --- | --- | | --- | --- | --- | | Voer je volgende zet in: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Ik speel op A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Voer je volgende zet in: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Je hebt me verslagen!

Hier zijn enkele hints om u op weg te helpen:

  • De beste manier om het raster weer te geven, is met een array. Gebruik voor nu negen variabelen, met de namen A1, A2, A3, B1, B2, B3, C1, C2 en C3.

  • Als u het int-type voor de rastervariabelen gebruikt, kunt u vervolgens 1 gebruiken om aan te geven dat een vierkant een X en 2 bevat om aan te geven dat een vierkant een O bevat.

  • Acht mogelijke rijen kunnen tot winst leiden. Een speler wint als een van de volgende combinaties van vierkanten ofwel 1 (voor X) of 2 (voor O) is:

    A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
    
  • Er zijn twee manieren om te bepalen of het spel gelijkspel is. De eerste is om alle negen vierkanten te controleren: als geen van de vierkanten leeg is en geen van beide spelers heeft gewonnen, is het spel gelijkspel. De tweede is om de zetten te tellen: als er negen zetten zijn gemaakt en geen van beide spelers heeft gewonnen, is het spel gelijkspel.

U vindt een oplossing voor deze programmeeruitdaging op het tabblad Downloads van de productpagina Java All-in-One voor modellen, 4e editie.

Veel succes!

Java Programming Challenge: A Simple Tic-Tac-Toe Game - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...