Hem Personliga finanser Java Programmeringsutmaning: En enkel Tic-Tac-Toe Game - Dummies

Java Programmeringsutmaning: En enkel Tic-Tac-Toe Game - Dummies

Video: Welcome to our Hour of Code on Khan Academy 2024

Video: Welcome to our Hour of Code on Khan Academy 2024
Anonim

Ditt uppdrag, om du bestämmer dig för att acceptera det, är att skapa ett Java-program som kan spela ett spel Tic-Tac-Toe med användaren.

Som du säkert vet är Tic-Tac-Toe ett enkelt spel som oftast spelas med papper och penna. Först gör du ett enkelt 3 x 3 rutnät på papperet. Då två spelare växlar varv genom att markera Xs och Os i tomma utrymmen på rutnätet. Den första spelaren som gör tre av hans eller hennes betyg i en horisontell, vertikal eller diagonal rad vinner. Om alla mellanslag i rutnätet är fyllda innan någon spelare markerar tre i rad, är spelet en rita.

Här följer reglerna och instruktionerna för denna utmaning:

  1. Datorn spelar mot människan. Människan flyttar först och är X. Datorn är O.

  2. Programmet bör börja med att visa ett kort välkomstmeddelande, och sedan bör du fråga spelaren för hans eller hennes första drag. Till exempel:

    Välkommen till Tic-Tac-Toe. Vänligen ange ditt första drag:
    
  3. För att ange rutans rutor, använd bokstäverna A, B och C för kolumnerna och siffrorna 1, 2 och 3 för raderna, så här:

    A1 B1 C1 A2 B2 C2 A3 B3 C3
    

    För att placera en X i den övre vänstra rutan skulle den mänskliga spelaren ange texten A1 när programmet uppmanar spelaren till en flytta.

    När människan går i rörelse, ska programmet visa aktuell status på kortet på konsolen.

  4. Använd X för att markera människans spelningar och O för att markera datorns spelningar. Använd vertikala strecktecken (som finns på tangentbordet med backslash-tecknet, precis ovanför Enter-tangenten) och bindestreck för att rita brädet i ett enkelt rutnät.

    Till exempel, om användaren har skrivit in A1 som sitt första drag, skulle programmet visa följande:

    X | | --- | --- | --- | | --- | --- | --- | |
    
  5. Efter människans rörelse bestämmer programmet sitt drag, meddelar det till användaren, visar en uppdaterad styrelse och ber om användarens rörelse.

    Du kan till exempel se detta:

    Jag ska spela A2: X | O | --- | --- | --- | | --- | --- | --- | | Vänligen ange ditt nästa drag:
    
  6. Spelet fortsätter tills en spelare har gjort tre i rad eller alla rutor har fyllts utan vinnare. Ditt program måste kunna avgöra om en spelare har gjort tre i rad och vann spelet. (Detta är den svåraste delen av denna programutmaning.)

  7. När spelet är över visar programmet ett meddelande som anger resultatet av spelet: "Du slog mig! "Om den mänskliga spelaren vinner" slog jag dig! "Om datorspelaren vinner eller" det är oavgjort! "Om spelet slutar i rita.

  8. Människans och datorspelarna kan bara spela de rutor som inte redan är upptagna av någon spelare.

  9. Programmet slutar när spelet vunnits av endera spelaren eller spelet är oavgjort. Om du vill spela igen måste du köra programmet igen.

Observera att du är fri att använda vilken metod du vill bestämma hur datorn ska göra sina drag. Jag föreslår att du alltid spelar datorn i den första tomma rutan. Det här är uppenbarligen inte det bästa sättet att spela Tic-Tac-Toe, och du kommer inte ha något problem att slå på datorn varje gång du spelar. Men genom att välja denna enkla spelstrategi kan du fokusera på andra aspekter av programmeringen, till exempel hur man internt representerar rutnätet och hur man bestämmer när en spelare har vunnit spelet eller när spelet har avslutats i rita.

(I "Java Programmeringsutmaning: Lägga till arrayer till Simple Tic-Tac-Toe-programmet" uppmanas du att hitta en bättre strategi för programmet för att bestämma dess spelningar.)

Här är ett exempel på Konsolvisningen för ett komplett spel:

Välkommen till Tic-Tac-Toe. Ange ditt första steg: A1 X | | --- | --- | --- | | --- | --- | --- | | Jag kommer att spela på A2: X | O | --- | --- | --- | | --- | --- | --- | | Ange ditt nästa steg: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Jag kommer att spela på A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Ange ditt nästa steg: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Du slår mig!

Här är några tips för att komma igång:

  • Det bästa sättet att representera rutnätet är med en matris. Använd nu nio variabler med namnet A1, A2, A3, B1, B2, B3, C1, C2 och C3.

  • Om du använder int-typen för rutnivariablerna kan du sedan använda 1 för att ange att en kvadrat innehåller en X och 2 för att indikera att en kvadrat innehåller en O.

  • Åtta möjliga rader kan leda till en seger. En spelare vinner om någon av följande kombinationer av kvadrater är antingen 1 (för X) eller 2 (för O):

    A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
    
  • Det finns två sätt att bestämma om spelet är oavgjort. Den första är att kontrollera alla nio rutorna: Om ingen av rutorna är tomma och ingen spelare har vunnit, är spelet en rita. Den andra är att räkna rörelserna: Om nio drag har gjorts och ingen spelare har vunnit, är spelet en rita.

Du kan hitta en lösning på den här programmeringsutmaningen på fliken Hämtningar i Java All-in-One for Dummies, 4: e utgåva produktsida.

Lycka till!

Java Programmeringsutmaning: En enkel Tic-Tac-Toe Game - Dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: