Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Tic-tac-toe je populárna hra, ktorá využíva mriežku 3×3. Cieľom hry je byť prvým hráčom, ktorý umiestni tri symboly do rovného horizontálneho, vertikálneho alebo diagonálneho radu.

Môžete vytvoriť hru Tic-tac-toe, ktorá beží vo webovom prehliadači pomocou HTML, CSS a JavaScriptu. Môžete použiť HTML na pridanie obsahu, ktorý obsahuje mriežku 3×3, a CSS na pridanie nejakého štýlu do herného dizajnu.

Potom môžete použiť JavaScript pre funkčnosť hry. To zahŕňa umiestňovanie symbolov, striedanie hráčov a rozhodovanie o tom, kto vyhrá.

Ako vytvoriť používateľské rozhranie pre hru Tic-Tac-Toe

Úplný zdrojový kód tejto hry si môžete prečítať a stiahnuť z nej úložisko GitHub.

Piškvorky sú jednou z mnohých hier, ktoré si môžete vytvoriť, keď sa naučíte programovať. Je dobré precvičiť si nový jazyk alebo prostredie, napr herný vývojový engine PICO-8.

Ak chcete vytvoriť hru Tic-tac-toe, ktorá beží vo webovom prehliadači, budete musieť pridať HTML pre obsah stránky. Potom to môžete upraviť pomocou CSS.

instagram viewer

  1. Vytvorte nový súbor s názvom „index.html“.
  2. Do „index.html“ pridajte základnú štruktúru súboru HTML:
    html>
    <htmllang="en-US">
    <hlavu>
    <titul>Hra Tic Tac Toetitul>
    hlavu>
    <telo>

    telo>
    html>
  3. Do značky HTML body pridajte tabuľku, ktorá obsahuje tri riadky s tromi bunkami v každom riadku:
    <divtrieda="kontajner">
    <tabuľky>
    <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>
    tabuľky>
    div>
  4. V rovnakom priečinku ako váš súbor HTML vytvorte nový súbor s názvom „styles.css“.
  5. Vnútri súboru CSS pridajte štýl do mriežky 3 x 3:
    tabuľky {
    border-collapse: kolaps;
    marža: 0 auto;
    }

    td {
    šírka: 100px;
    výška: 100px;
    zarovnanie textu: stred;
    vertikálne zarovnať: stred;
    hranica: 1pxpevnýčierna;
    }

  6. Prepojte súbor CSS so súborom HTML tak, že ho pridáte do značky head:
    <odkazrel="štýlov"typu="text/css"href="styles.css">

Ako sa striedať pri pridávaní symbolov na hraciu dosku

V hre budú dvaja hráči, každý so symbolom „X“ alebo „O“. Kliknutím na jednu z buniek mriežky môžete pridať symbol „X“ alebo „O“. Toto bude pokračovať, kým jeden z vás nevytvorí rovný horizontálny, vertikálny alebo diagonálny rad.

Túto funkciu môžete pridať pomocou JavaScriptu.

  1. V rovnakom priečinku ako súbory HTML a CSS vytvorte súbor JavaScript s názvom „script.js“.
  2. Prepojte súbor JavaScript so súborom HTML pridaním skriptu do spodnej časti značky body:
    <telo>
    Váš kód tu
    <skriptsrc="script.js">skript>
    telo>
  3. Do súboru JavaScript pridajte reťazec reprezentujúci symbol hráča. Môže to byť buď "X" alebo "O". V predvolenom nastavení prvý hráč umiestni „X“:
    nech PlayerSymbol = "X";
  4. Pridajte ďalšiu premennú, aby ste mali prehľad o tom, či sa hra skončila:
    nech hra sa skončila = falošný
  5. Každá bunka v tabuľke HTML má ID medzi 1 a 9. Pre každú bunku v tabuľke pridajte prijímač udalostí, ktorý sa spustí vždy, keď používateľ klikne na bunku:
    pre (nech i = 1; ja <= 9; i++) {
    dokument.getElementById (i.toString()).addEventListener(
    "klik",
    funkciu() {

    }
    );
    }
  6. Vo vnútri prijímača udalostí zmeňte vnútorný kód HTML tak, aby zobrazoval aktuálny symbol. Uistite sa, že používate podmienený príkaz JavaScript najprv sa uistite, že je bunka prázdna a že hra ešte neskončila:
    ak (toto.innerHTML "" && !hra sa skončila) {
    toto.innerHTML = hráčSymbol;
    }
  7. Pridajte triedu do prvku HTML a upravte štýl symbolu, ktorý sa zobrazí na mriežke. Názov tried CSS bude buď „X“ alebo „O“, v závislosti od symbolu:
    toto.classList.add (playerSymbol.toLowerCase());
  8. Do súboru „styles.css“ pridajte tieto dve nové triedy pre symboly „X“ a „O“. Symboly „X“ a „O“ sa zobrazia v rôznych farbách:
    .X {
    farba: Modrá;
    veľkosť písma: 80px;
    }

    .o {
    farba: červená;
    veľkosť písma: 80px;
    }

  9. V súbore JavaScript po zmene vnútorného HTML na zobrazenie symbolu zameňte symbol. Napríklad, ak hráč práve umiestnil „X“, zmeňte nasledujúci symbol na „O“:
    ak (symbol hráča "X")
    PlayerSymbol = "O"
    inak
    PlayerSymbol = "X"
  10. Ak chcete spustiť hru, otvorte súbor „index.html“ vo webovom prehliadači a zobrazte mriežku 3 x 3:
  11. Začnite umiestňovať symboly na mriežku kliknutím na bunky. V hre sa budú striedať symboly „X“ a „O“:

Ako určiť víťaza

V tejto chvíli bude hra stále pokračovať, aj keď hráč umiestnil tri po sebe nasledujúce symboly. Budete musieť pridať koncovú podmienku, aby ste to skontrolovali po každom kole.

  1. Do súboru JavaScript pridajte novú premennú na uloženie všetkých možných „víťazných“ pozícií pre mriežku 3 x 3. Napríklad „[1,2,3]“ je horný riadok alebo „[1,4,7]“ je diagonálny riadok.
    nech 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. Pridajte novú funkciu s názvom checkWin():
    funkciucheckWin() {

    }
  3. Vo vnútri funkcie prejdite cez každú z možných výherných pozícií:
    pre (nech i = 0; i < winPos.length; i++) {

    }

  4. Vo vnútri cyklu for skontrolujte, či všetky bunky obsahujú symbol hráča:
    ak (
    dokument.getElementById (winPos[i][0]).innerHTML playerSymbol &&
    dokument.getElementById (winPos[i][1]).innerHTML playerSymbol &&
    dokument.getElementById (winPos[i][2]).InnerHTML playerSymbol
    ) {

    }

  5. Ak sa podmienka vyhodnotí ako pravdivá, potom sú všetky symboly v priamke. Vo vnútri príkazu if zobrazte správu používateľovi. Môžete tiež zmeniť štýl prvku HTML pridaním triedy CSS s názvom „win“:
    dokument.getElementById (winPos[i][0]).classList.add("vyhrať");
    dokument.getElementById (winPos[i][1]).classList.add("vyhrať");
    dokument.getElementById (winPos[i][2]).classList.add("vyhrať");
    hra sa skončila = pravda;

    setTimeout(funkciu() {
    upozornenie (symbol hráča + "vyhráva!");
    }, 500);

  6. Pridajte túto „win“ triedu CSS do súboru „styles.css“. Keď hráč vyhrá, zmení farbu pozadia výherných buniek na žltú:
    .vyhrať {
    farba pozadia: žltá;
    }
  7. Zavolajte funkciu checkWin() vždy, keď je hráč na ťahu, vo vnútri obsluhy udalosti pridanej v predchádzajúcich krokoch:
    pre (nech i = 1; ja <= 9; i++) {
    // Kedykoľvek hráč klikne na bunku
    dokument.getElementById (i.toString()).addEventListener(
    "klik",
    funkciu() {
    ak (toto.innerHTML "" && !hra sa skončila) {
    // Zobrazte v bunke buď "X" alebo "O" a upravte jej štýl
    toto.innerHTML = hráčSymbol;
    toto.classList.add (playerSymbol.toLowerCase());

    // Skontrolujte, či hráč vyhral
    checkWin();

    // Pre ďalšie kolo vymeňte symbol za iný
    ak (symbol hráča "X")
    PlayerSymbol = "O"
    inak
    PlayerSymbol = "X"
    }
    }
    );
    }

Ako resetovať hernú dosku

Keď hráč vyhrá hru, môžete resetovať hraciu dosku. V prípade nerozhodného výsledku môžete tiež resetovať herný plán.

  1. V súbore HTML za tabuľku pridajte tlačidlo resetovania:
    <tlačidloid="resetovať">Resetovaťtlačidlo>
  2. Pridajte nejaký štýl do tlačidla resetovania:
    .kontajner {
    displej: flex;
    flex-direction: stĺpec;
    }

    #reset {
    marža: 48px 40%;
    vypchávka: 20px;
    }

  3. Do súboru JavaScript pridajte obsluhu udalosti, ktorá sa spustí vždy, keď používateľ klikne na tlačidlo reset:
    dokument.getElementById("resetovať").addEventListener(
    "klik",
    funkciu() {

    }
    );

  4. Pre každú bunku v mriežke získajte prvok HTML pomocou funkcie getElementById(). Resetujte innerHTML, aby ste odstránili symboly „O“ a „X“ a odstránili všetky ostatné štýly CSS:
    pre (nech i = 1; ja <= 9; i++) {
    dokument.getElementById (i.toString()).innerHTML = "";
    dokument.getElementById (i.toString()).classList.remove("X");
    dokument.getElementById (i.toString()).classList.remove("o");
    dokument.getElementById (i.toString()).classList.remove("vyhrať");
    hra sa skončila = falošný;
    }
  5. Spustite hru otvorením súboru „index.html“ vo webovom prehliadači.
  6. Začnite umiestňovať symboly „X“ a „O“ na mriežku. Pokúste sa vyhrať jeden zo symbolov.
  7. Stlačením tlačidla reset vynulujete hraciu dosku.

Naučte sa JavaScript tvorbou hier

Svoje programovacie zručnosti môžete naďalej zlepšovať vytváraním ďalších projektov v JavaScripte. Je ľahké vytvárať jednoduché hry a nástroje vo webovom prostredí pomocou multiplatformových otvorených technológií, ako sú JavaScript a HTML.

Neexistuje lepší spôsob, ako zlepšiť svoje programovanie, ako precvičiť si písanie programov!