Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Tic-tac-toe on suosittu peli, joka käyttää 3×3-ruudukkoa. Pelin tavoitteena on olla ensimmäinen pelaaja, joka asettaa kolme symbolia suoraan vaakasuoraan, pystysuoraan tai vinottaiseen riviin.

Voit luoda Tic-tac-toe-pelin, joka toimii verkkoselaimessa HTML: n, CSS: n ja JavaScriptin avulla. Voit käyttää HTML: ää lisätäksesi sisältöä, joka sisältää 3×3-ruudukon, ja CSS: n avulla lisätäksesi tyyliä pelin suunnitteluun.

Tämän jälkeen voit käyttää JavaScriptiä pelin toiminnassa. Tämä sisältää symbolien sijoittamisen, vuorottelemisen pelaajien välillä ja voittajan päättämisen.

Kuinka luoda käyttöliittymä Tic-Tac-Toe -pelille

Voit lukea ja ladata tämän pelin täydellisen lähdekoodin siitä GitHub-arkisto.

Tic-tac-toe on yksi monista peleistä, joita voit tehdä, kun opettelet ohjelmoinnin. On hyvä harjoitella uutta kieltä tai ympäristöä, esim PICO-8 pelinkehitysmoottori.

Jos haluat luoda verkkoselaimessa toimivan Tic-tac-toe-pelin, sinun on lisättävä sivun sisältöön HTML. Tämän jälkeen voit muotoilla tämän CSS: n avulla.

  1. Luo uusi tiedosto nimeltä "index.html".
  2. Lisää kohtaan "index.html" HTML-tiedoston perusrakenne:
    html>
    <htmllang="en-US">
    <pää>
    <otsikko>Tic Tac Toe peliotsikko>
    pää>
    <kehon>

    kehon>
    html>
  3. Lisää HTML-tekstitunnisteen sisään taulukko, joka sisältää kolme riviä ja kolme solua kullakin rivillä:
    <divluokkaa="kontti">
    <pöytä>
    <tr>
    <tdid="1">td>
    <tdid="2">td>
    <tdid="3">td>
    tr>
    <tr>
    <tdid="4">td>
    <tdid="5">td>
    <tdid="6">td>
    tr>
    <tr>
    <tdid="7">td>
    <tdid="8">td>
    <tdid="9">td>
    tr>
    pöytä>
    div>
  4. Luo samaan kansioon HTML-tiedoston kanssa uusi tiedosto nimeltä "styles.css".
  5. Lisää tyyliä 3 x 3 -ruudukkoon CSS-tiedoston sisällä:
    pöytä {
    rajan romahtaminen: romahdus;
    marginaali: 0 auto;
    }

    td {
    leveys: 100px;
    korkeus: 100px;
    tekstin tasaus: keskusta;
    pystytasaus: keskellä;
    rajaa: 1pxkiinteämusta;
    }

  6. Linkitä CSS-tiedosto HTML-tiedostoosi lisäämällä se head-tunnisteeseen:
    <linkkirel="tyylitaulukko"tyyppi="teksti/css"href="tyylit.css">

Kuinka lisätä symboleja vuorotellen pelilaudalle

Pelissä on kaksi pelaajaa, joilla kummallakin on joko "X" tai "O" symboli. Voit lisätä joko "X"- tai "O"-symbolin napsauttamalla yhtä ruudukon soluista. Tämä jatkuu, kunnes joku teistä on luonut suoran vaaka-, pysty- tai diagonaalirivin.

Voit lisätä tämän toiminnon JavaScriptin avulla.

  1. Luo samaan kansioon HTML- ja CSS-tiedostojesi kanssa JavaScript-tiedosto nimeltä "script.js".
  2. Linkitä JavaScript-tiedosto HTML-tiedostoosi lisäämällä komentosarja body-tagin alaosaan:
    <kehon>
    Koodisi tässä
    <käsikirjoitussrc="script.js">käsikirjoitus>
    kehon>
  3. Lisää JavaScript-tiedoston sisään merkkijono, joka edustaa pelaajan symbolia. Tämä voi olla joko "X" tai "O". Oletuksena ensimmäinen pelaaja asettaa "X":n:
    antaa pelaajaSymboli = "X";
  4. Lisää toinen muuttuja seurataksesi, onko peli päättynyt:
    antaa peli päättynyt = väärä
  5. Jokaisella HTML-taulukon solulla on tunnus väliltä 1–9. Lisää jokaiseen taulukon soluun tapahtumaseurain, joka käynnistyy aina, kun käyttäjä napsauttaa solua:
    varten (antaa minä = 1; minä <= 9; i++) {
    asiakirja.getElementById (i.toString()).addEventListener(
    "klikkaus",
    toiminto() {

    }
    );
    }
  6. Muuta tapahtuman kuuntelun sisällä sisäinen HTML näyttämään nykyinen symboli. Muista käyttää JavaScript-ehdollinen lauseke Varmista ensin, että solu on tyhjä ja että peli ei ole vielä päättynyt:
    jos (Tämä.innerHTML "" && !gameEnded) {
    Tämä.innerHTML = playerSymbol;
    }
  7. Lisää luokka HTML-elementtiin muokataksesi ruudukossa näkyvää symbolia. CSS-luokkien nimi on joko "X" tai "O" symbolista riippuen:
    Tämä.classList.add (playerSymbol.toLowerCase());
  8. Lisää "styles.css"-tiedostoon nämä kaksi uutta luokkaa "X"- ja "O"-symboleille. "X"- ja "O"-symbolit näkyvät eri väreinä:
    .x {
    väri: sininen;
    Fonttikoko: 80px;
    }

    .o {
    väri: punainen;
    Fonttikoko: 80px;
    }

  9. Vaihda symboli JavaScript-tiedostossa sen jälkeen, kun olet muuttanut sisemmän HTML-koodin näyttämään symbolin. Jos pelaaja esimerkiksi laittoi juuri "X", muuta seuraavaksi symboliksi "O":
    jos (pelaajasymboli "X")
    pelaajaSymboli = "O"
    muu
    pelaajaSymboli = "X"
  10. Pelin käynnistämiseksi avaa "index.html"-tiedosto verkkoselaimessa näyttääksesi 3 x 3 -ruudukon:
  11. Aloita symbolien sijoittaminen ruudukkoon napsauttamalla soluja. Peli vaihtelee "X"- ja "O"-symbolien välillä:

Kuinka määrittää voittaja

Tällä hetkellä peli jatkuu, vaikka pelaaja olisi asettanut kolme peräkkäistä symbolia. Sinun on lisättävä loppuehto tarkistaaksesi tämän jokaisen käännöksen jälkeen.

  1. Lisää JavaScript-tiedostoon uusi muuttuja, joka tallentaa kaikki mahdolliset "voittajapaikat" 3 x 3 -ruudukkoon. Esimerkiksi "[1,2,3]" on ylin rivi tai "[1,4,7]" on diagonaalinen rivi.
    antaa winPos = [
    [1, 2, 3], [4, 5, 6],
    [7, 8, 9], [1, 4, 7],
    [2, 5, 8], [3, 6, 9],
    [1, 5, 9], [3, 5, 7]
    ];
  2. Lisää uusi funktio nimeltä checkWin():
    toimintocheckWin() {

    }
  3. Käy funktion sisällä läpi jokaisen mahdollisen voittopaikan:
    varten (antaa minä = 0; i < winPos.length; i++) {

    }

  4. Tarkista for-silmukan sisällä, sisältävätkö kaikki solut pelaajan symbolin:
    jos (
    asiakirja.getElementById (winPos[i][0]).innerHTML playerSymboli &&
    asiakirja.getElementById (winPos[i][1]).innerHTML playerSymboli &&
    asiakirja.getElementById (winPos[i][2]).innerHTML playerSymbol
    ) {

    }

  5. Jos ehdon arvo on tosi, kaikki symbolit ovat suorassa linjassa. Näytä viesti käyttäjälle if-lausekkeen sisällä. Voit myös muuttaa HTML-elementin tyyliä lisäämällä CSS-luokan "win":
    asiakirja.getElementById (winPos[i][0]).classList.add("voittaa");
    asiakirja.getElementById (winPos[i][1]).classList.add("voittaa");
    asiakirja.getElementById (winPos[i][2]).classList.add("voittaa");
    peli päättynyt = totta;

    setTimeout(toiminto() {
    hälytys (playerSymbol + "voitto!");
    }, 500);

  6. Lisää tämä "win" CSS-luokka "styles.css"-tiedostoon. Kun pelaaja voittaa, se muuttaa voittaneiden solujen taustavärin keltaiseksi:
    .voittaa {
    taustaväri: keltainen;
    }
  7. Kutsu checkWin()-funktiota joka kerta, kun pelaajalla on vuoro, edellisissä vaiheissa lisätyn tapahtumakäsittelijän sisällä:
    varten (antaa minä = 1; minä <= 9; i++) {
    // Aina kun pelaaja napsauttaa solua
    asiakirja.getElementById (i.toString()).addEventListener(
    "klikkaus",
    toiminto() {
    jos (Tämä.innerHTML "" && !gameEnded) {
    // Näytä joko "X" tai "O" solussa ja muotoile se
    Tämä.innerHTML = playerSymbol;
    Tämä.classList.add (playerSymbol.toLowerCase());

    // Tarkista, onko pelaaja voittanut
    checkWin();

    // Vaihda symboli toiseen seuraavaa vuoroa varten
    jos (pelaajasymboli "X")
    pelaajaSymboli = "O"
    muu
    pelaajaSymboli = "X"
    }
    }
    );
    }

Kuinka nollata pelilauta

Kun pelaaja on voittanut pelin, voit nollata pelilaudan. Voit myös nollata pelilaudan tasatilanteessa.

  1. Lisää HTML-tiedostoon taulukon jälkeen nollauspainike:
    <-painikettaid="nollaa">Nollaa-painiketta>
  2. Lisää tyyliä nollauspainikkeeseen:
    .container {
    näyttö: flex;
    flex-suunta: sarakkeessa;
    }

    #nollaus {
    marginaali: 48px 40%;
    pehmuste: 20px;
    }

  3. Lisää JavaScript-tiedostoon tapahtumakäsittelijä, joka käynnistyy aina, kun käyttäjä napsauttaa nollauspainiketta:
    asiakirja.getElementById("nollaa").addEventListener(
    "klikkaus",
    toiminto() {

    }
    );

  4. Hae jokaiselle ruudukon solulle HTML-elementti käyttämällä getElementById()-funktiota. Nollaa sisäinen HTML poistaaksesi O- ja X-symbolit ja kaikki muut CSS-tyylit:
    varten (antaa minä = 1; minä <= 9; i++) {
    asiakirja.getElementById (i.toString()).innerHTML = "";
    asiakirja.getElementById (i.toString()).classList.remove("x");
    asiakirja.getElementById (i.toString()).classList.remove("o");
    asiakirja.getElementById (i.toString()).classList.remove("voittaa");
    peli päättynyt = väärä;
    }
  5. Suorita peli avaamalla "index.html"-tiedosto verkkoselaimessa.
  6. Aloita X- ja O-symbolien sijoittaminen ruudukkoon. Yritä saada yksi symboleista voittamaan.
  7. Paina nollauspainiketta nollataksesi pelilaudan.

JavaScriptin oppiminen tekemällä pelejä

Voit jatkaa ohjelmointitaitosi parantamista luomalla lisää projekteja JavaScriptillä. Yksinkertaisia ​​pelejä ja työkaluja on helppo rakentaa verkkoympäristössä käyttämällä monialustaisia, avoimia teknologioita, kuten JavaScript ja HTML.

Ei ole parempaa tapaa parantaa ohjelmointiasi kuin harjoitella ohjelmien kirjoittamista!