Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Tic-tac-toe je oblíbená hra, která využívá mřížku 3×3. Cílem hry je být prvním hráčem, který umístí tři symboly do rovné horizontální, vertikální nebo diagonální řady.

Můžete vytvořit hru Tic-tac-toe, která běží ve webovém prohlížeči pomocí HTML, CSS a JavaScriptu. Pomocí HTML můžete přidat obsah, který obsahuje mřížku 3×3, a pomocí CSS přidat do herního designu nějaký styl.

Poté můžete použít JavaScript pro funkčnost hry. To zahrnuje umisťování symbolů, střídání hráčů a rozhodování o tom, kdo vyhraje.

Jak vytvořit uživatelské rozhraní pro hru Tic-Tac-Toe

Úplný zdrojový kód této hry si můžete přečíst a stáhnout z něj úložiště GitHub.

Piškvorky jsou jednou z mnoha her, které můžete dělat, když se učíte programovat. Je dobré si procvičit nový jazyk nebo prostředí, např engine pro vývoj her PICO-8.

Chcete-li vytvořit hru Tic-tac-toe, která běží ve webovém prohlížeči, budete muset přidat HTML pro obsah stránky. To pak můžete stylizovat pomocí CSS.

instagram viewer

  1. Vytvořte nový soubor s názvem „index.html“.
  2. Do „index.html“ přidejte základní strukturu souboru HTML:
    html>
    <htmllang="en-US">
    <hlava>
    <titul>Hra Tic Tac Toetitul>
    hlava>
    <tělo>

    tělo>
    html>
  3. Do značky HTML body přidejte tabulku, která obsahuje tři řádky se třemi buňkami v každém řádku:
    <divtřída="kontejner">
    <stůl>
    <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>
    stůl>
    div>
  4. Ve stejné složce jako váš soubor HTML vytvořte nový soubor s názvem „styles.css“.
  5. Uvnitř souboru CSS přidejte do mřížky 3 x 3 styl:
    stůl {
    border-kolaps: kolaps;
    okraj: 0 auto;
    }

    td {
    šířka: 100px;
    výška: 100px;
    zarovnání textu: centrum;
    svisle zarovnat: střední;
    okraj: 1pxpevnýČerná;
    }

  6. Propojte soubor CSS se souborem HTML jeho přidáním do značky head:
    <odkazrel="stylesheet"typ="text/css"href="styles.css">

Jak se střídat v přidávání symbolů na herní plán

Ve hře budou dva hráči, každý se symbolem „X“ nebo „O“. Kliknutím na jednu z buněk mřížky můžete přidat symbol „X“ nebo „O“. Toto bude pokračovat, dokud jeden z vás nevytvoří rovnou horizontální, vertikální nebo diagonální řadu.

Tuto funkci můžete přidat pomocí JavaScriptu.

  1. Ve stejné složce jako soubory HTML a CSS vytvořte soubor JavaScript s názvem „script.js“.
  2. Propojte soubor JavaScript se svým souborem HTML přidáním skriptu do spodní části značky body:
    <tělo>
    Váš kód zde
    <skriptsrc="script.js">skript>
    tělo>
  3. Do souboru JavaScript přidejte řetězec představující symbol hráče. Může to být buď "X" nebo "O". Ve výchozím nastavení umístí první hráč „X“:
    nechat PlayerSymbol = "X";
  4. Přidejte další proměnnou, abyste měli přehled o tom, zda hra skončila:
    nechat hra ukončena = Nepravdivé
  5. Každá buňka v tabulce HTML má ID mezi 1 a 9. Pro každou buňku v tabulce přidejte posluchač události, který se spustí vždy, když uživatel klikne na buňku:
    pro (nechat i = 1; i <= 9; i++) {
    dokument.getElementById (i.toString()).addEventListener(
    "kliknout",
    funkce() {

    }
    );
    }
  6. Uvnitř posluchače událostí změňte vnitřní kód HTML tak, aby zobrazoval aktuální symbol. Ujistěte se, že používáte podmíněný příkaz JavaScriptu nejprve se ujistěte, že je buňka prázdná a že hra ještě neskončila:
    -li (tento.innerHTML "" && !hraUkončena) {
    tento.innerHTML = hráčSymbol;
    }
  7. Přidejte třídu do prvku HTML, abyste stylizovali symbol, který se zobrazí na mřížce. Název tříd CSS bude buď „X“ nebo „O“, v závislosti na symbolu:
    tento.classList.add (playerSymbol.toLowerCase());
  8. Do souboru "styles.css" přidejte tyto dvě nové třídy pro symboly "X" a "O". Symboly "X" a "O" se zobrazí v různých barvách:
    .X {
    barva: modrý;
    velikost písma: 80px;
    }

    {
    barva: Červené;
    velikost písma: 80px;
    }

  9. V souboru JavaScript po změně innerHTML tak, aby se symbol zobrazoval, symbol vyměňte. Pokud například hráč právě umístil „X“, změňte další symbol na „O“:
    -li (symbol hráče "X")
    PlayerSymbol = "Ó"
    jiný
    PlayerSymbol = "X"
  10. Chcete-li hru spustit, otevřete ve webovém prohlížeči soubor „index.html“ a zobrazte mřížku 3x3:
  11. Začněte umísťovat symboly na mřížku kliknutím na buňky. Ve hře se budou střídat symboly „X“ a „O“:

Jak určit vítěze

V tuto chvíli bude hra stále pokračovat, i když hráč umístil tři po sobě jdoucí symboly. Chcete-li to zkontrolovat po každém tahu, budete muset přidat koncovou podmínku.

  1. Do souboru JavaScript přidejte novou proměnnou pro uložení všech možných „vítězných“ pozic pro mřížku 3 x 3. Například "[1,2,3]" je horní řádek nebo "[1,4,7]" je diagonální řádek.
    nechat 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. Přidejte novou funkci s názvem checkWin():
    funkcecheckWin() {

    }
  3. Uvnitř funkce procházejte každou z možných výherních pozic:
    pro (nechat i = 0; i < winPos.length; i++) {

    }

  4. Uvnitř cyklu for zkontrolujte, zda všechny buňky obsahují symbol hráče:
    -li (
    dokument.getElementById (winPos[i][0]).innerHTML playerSymbol &&
    dokument.getElementById (winPos[i][1]).innerHTML playerSymbol &&
    dokument.getElementById (winPos[i][2]).vnitřníSymbol přehrávače HTML
    ) {

    }

  5. Pokud se podmínka vyhodnotí jako pravdivá, pak jsou všechny symboly v přímce. Uvnitř příkazu if zobrazte zprávu pro uživatele. Můžete také změnit styl prvku HTML přidáním třídy CSS s názvem „win“:
    dokument.getElementById (winPos[i][0]).classList.add("vyhrát");
    dokument.getElementById (winPos[i][1]).classList.add("vyhrát");
    dokument.getElementById (winPos[i][2]).classList.add("vyhrát");
    hra ukončena = skutečný;

    setTimeout(funkce() {
    upozornění (symbol hráče + "vyhrává!");
    }, 500);

  6. Přidejte tuto „win“ třídu CSS do souboru „styles.css“. Když hráč vyhraje, změní barvu pozadí výherních buněk na žlutou:
    .vyhrát {
    barva pozadí: žlutá;
    }
  7. Volejte funkci checkWin() pokaždé, když je hráč na tahu, uvnitř obsluhy události přidané v předchozích krocích:
    pro (nechat i = 1; i <= 9; i++) {
    // Kdykoli hráč klikne na buňku
    dokument.getElementById (i.toString()).addEventListener(
    "kliknout",
    funkce() {
    -li (tento.innerHTML "" && !hraUkončena) {
    // Zobrazte v buňce buď "X" nebo "O" a upravte její styl
    tento.innerHTML = hráčSymbol;
    tento.classList.add (playerSymbol.toLowerCase());

    // Zkontrolujte, zda hráč vyhrál
    checkWin();

    // Pro další kolo vyměňte symbol za jiný
    -li (symbol hráče "X")
    PlayerSymbol = "Ó"
    jiný
    PlayerSymbol = "X"
    }
    }
    );
    }

Jak resetovat herní desku

Jakmile hráč vyhraje hru, můžete resetovat herní plán. V případě nerozhodného výsledku můžete také resetovat herní plán.

  1. V souboru HTML za tabulku přidejte tlačítko reset:
    <knoflíkid="resetovat">Resetovatknoflík>
  2. Přidejte k tlačítku resetování nějaký styl:
    .kontejner {
    Zobrazit: flex;
    flex-direction: sloupec;
    }

    #reset {
    okraj: 48px 40%;
    vycpávka: 20px;
    }

  3. Do souboru JavaScript přidejte obslužnou rutinu události, která se spustí vždy, když uživatel klikne na tlačítko reset:
    dokument.getElementById("resetovat").addEventListener(
    "kliknout",
    funkce() {

    }
    );

  4. Pro každou buňku v mřížce získejte prvek HTML pomocí funkce getElementById(). Resetujte innerHTML, abyste odstranili symboly "O" a "X" a odstranili všechny ostatní styly CSS:
    pro (nechat i = 1; i <= 9; i++) {
    dokument.getElementById (i.toString()).innerHTML = "";
    dokument.getElementById (i.toString()).classList.remove("X");
    dokument.getElementById (i.toString()).classList.remove("Ó");
    dokument.getElementById (i.toString()).classList.remove("vyhrát");
    hra ukončena = Nepravdivé;
    }
  5. Spusťte hru otevřením souboru „index.html“ ve webovém prohlížeči.
  6. Začněte umísťovat symboly "X" a "O" na mřížku. Pokuste se vyhrát jeden ze symbolů.
  7. Stisknutím resetovacího tlačítka resetujete herní desku.

Učte se JavaScript tvorbou her

Své programovací dovednosti můžete nadále zlepšovat vytvářením dalších projektů v JavaScriptu. Je snadné vytvářet jednoduché hry a nástroje ve webovém prostředí pomocí multiplatformních otevřených technologií, jako je JavaScript a HTML.

Není lepší způsob, jak zlepšit své programování, než cvičit psaní programů!