<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8"/> <title>Člověče nezlob se</title> <style> #herniPlocha { position: relative } .policko { border: 1px solid black; width: 20px; height: 20px; position: absolute; top: 0; left: 0; border-radius: 50%; } </style> </head> <body> <div id="herniPlocha"></div> <script> function hodKostkou() { return Math.random() * 6 + 1 } /* * Nasadi figurku na nasazovaci misto hrace * Vyhodnoti efekt na pripadnou jinou figurku (vyhodi ji) * Odecte figurku z `figurekNaZacatku` * Nevraci nic * */ async function nasadFigurku(hraci, indexAktivnihoHrace){ // todo } /* * Posune zadanou figurku o `hozenaHodnota` policek * Vyhodnoti efekt na pripadnou jinou figurku (vyhodi ji) * Nevraci nic * */ async function tahniFigurkou(hraci, indexAktivnihoHrace, indexFigurky, hozenaHodnota) { // todo } /* * Zadanemu hraci zvyrazni figurky, kterymi muze tahnout * Hrac musi kliknout na jednu z figurek * Vraci index zvolene figurky * */ async function vyberFigurky(hrac){ // todo } /* * Zobrazi dialog, kde muze hrac kliknout na jednu z moznosti * Vraci ano = true nebo ne = false * */ async function anoNeDialog(otazka){ // todo } const pocetPolicek = 40 const sirkaPlochy = 400 const vyskaPlochy = 400 for (let i = 0; i < pocetPolicek; i++) { const uhel = i * (2 * Math.PI) / pocetPolicek const policko = document.createElement("div") policko.classList.add("policko") const x = Math.cos(uhel) * sirkaPlochy / 2 + sirkaPlochy / 2 const y = Math.sin(uhel) * vyskaPlochy / 2 + vyskaPlochy / 2 policko.style.transform = `translate(${x}px,${y}px)` document.getElementById('herniPlocha').append(policko) } const hraci = [ { name: "Červený", figurekNaZacatku: 4, figurkyNaCeste: [] }, { name: "Modrý", figurekNaZacatku: 4, figurkyNaCeste: [] } ] let indexAktivnihoHrace = 0 async function herniSmycka() { while (true) { const aktivniHrac = hraci[indexAktivnihoHrace] let hozenaHodnota = hodKostkou() let chceNasadit = false if (akivniHrac.figurekNaZacatku > 0 && hozenaHodnota === 6) { // todo: muze nasadit chceNasadit = await anoNeDialog(`Chce ${aktivniHrac.name} nasadit figurku?`) } if (chceNasadit) { await nasadFigurku(hraci, indexAktivnihoHrace) } else { let indexFigurky = null if (akivniHrac.figurkyNaCeste.length > 1) { // vice moznosti ktera figurka pujde indexFigurky = await vyberFigurky(aktivniHrac) } else if (aktivniHrac.figurkyNaCeste.length === 1) { // je jednoznacne urceno, ktera figurka pujde indexFigurky = 0 } if (indexFigurky != null) { // tahni figurkou o dany pocet mist await tahniFigurkou(hraci, indexAktivnihoHrace, indexFigurky, hozenaHodnota) } } // dalsi hrac indexAktivnihoHrace = (indexAktivnihoHrace + 1) % hraci.length } } setTimeout(herniSmycka, 0) </script> </body> </html>