Erinevus lehekülje "ITI0205 2020 2 iseseisev töö" redaktsioonide vahel
(ei näidata sama kasutaja 12 vahepealset redaktsiooni) | |||
3. rida: | 3. rida: | ||
== Mida tuleb teha == | == Mida tuleb teha == | ||
− | Sinu ülesandeks on kirjutada brauseris jooksev Yahtzee kasutades selleks ainult HTMLi, Javascripti ja CSSi. Yahtzee on viie täringuga mängitav mäng, mille eesmärgiks on saada võimalikult palju mängulehel märgitud numbrikombinatsioone. Võitja on mängija, kes peale mängulehe täitmist on saanud kõrgeima punktisumma. | + | Sinu ülesandeks on kirjutada brauseris jooksev Yahtzee kasutades selleks ainult HTMLi, ilma raamistiketa Javascripti ja CSSi. Yahtzee on viie täringuga mängitav mäng, mille eesmärgiks on saada võimalikult palju mängulehel märgitud numbrikombinatsioone. Võitja on mängija, kes peale mängulehe täitmist on saanud kõrgeima punktisumma. |
== Mängu käik == | == Mängu käik == | ||
13. rida: | 13. rida: | ||
'''Põhifunktsionaalsus''' | '''Põhifunktsionaalsus''' | ||
− | Realiseeritud põhifunktsionaalsus annab | + | Realiseeritud põhifunktsionaalsus annab 7 punkti ja on kohustuslik praktikumi arvestamiseks. |
− | + | * Enne mängu algust küsitakse kasutajalt käikude arv - võib olla 3, 7 või 13 | |
− | * Enne mängu algust küsitakse kasutajalt käikude arv - võib olla 3, | + | * Kui valitud on käikude arv, saab mängu alustada. |
− | * Kui on | ||
* Kasutajale kuvatakse mängulauda ja tulemuste tabelit. Mängu alustades on tulemuste tabel tühi. | * Kasutajale kuvatakse mängulauda ja tulemuste tabelit. Mängu alustades on tulemuste tabel tühi. | ||
* Mängu eesmärk on koguda võimalikult palju punkte. Selleks: | * Mängu eesmärk on koguda võimalikult palju punkte. Selleks: | ||
− | * Heidab mängija viit 6-küljelist täringut. | + | ** Heidab mängija viit 6-küljelist täringut. |
− | * Mängija saab kõiki täringuid korraga uuesti visata | + | ** Mängija saab kõiki täringuid korraga uuesti visata |
− | * Mängija valib kombinatsiooni millele ta saadud punktisumma tahab lisada. | + | ** Mängija valib kombinatsiooni millele ta saadud punktisumma tahab lisada. |
* Minimaalses versioonis on realiseeritud vähemalt järgmised kombinatsiooni punkide saamiseks: | * Minimaalses versioonis on realiseeritud vähemalt järgmised kombinatsiooni punkide saamiseks: | ||
** Number (ühed, kahed, kolmed, neljad, viied, kuued) | ** Number (ühed, kahed, kolmed, neljad, viied, kuued) | ||
** Jokker - täringute summa | ** Jokker - täringute summa | ||
− | |||
* Kui kombinatsiooni eest on punkte saadud siis samas mängus selle eest punkte enam ei saa. | * Kui kombinatsiooni eest on punkte saadud siis samas mängus selle eest punkte enam ei saa. | ||
− | * Mängijale kuvatakse mängu seis - milline käik ja milline on tema punktisumma kokku | + | * Mängijale kuvatakse mängu seis - milline käik ja milline on tema punktisumma kokku iga käigu järel. |
* Kui mäng on läbi kuvatakse kasutajale tema tulemus | * Kui mäng on läbi kuvatakse kasutajale tema tulemus | ||
* Täringud on kuvatud piltidena | * Täringud on kuvatud piltidena | ||
'''Lisaks põhifunktsionaalsusele''' | '''Lisaks põhifunktsionaalsusele''' | ||
+ | |||
+ | Iga punkt siit nimekirjast annab ühe punkti, st. lisaks baasfunktsionaalsusele on võimalik saada kokku 15 punkti. | ||
* Mängija saab maksimaalselt kolmel korral kas kõiki või osasid täringuid uuesti visata. | * Mängija saab maksimaalselt kolmel korral kas kõiki või osasid täringuid uuesti visata. | ||
− | * | + | * Lisaks käikude arvule küsitakse kasutajalt ka tema nimi. Mängu lõppedes kirjutatakse punktisumma tulemuste tabelisse kus näidatakse viimase 10 mängu kohta järgmised väljad: nimi, punktide arv, veeretuste arv ja mängule kulunud aeg. |
− | * Mängus saavad osaleda 2 | + | * Tulemuste tabeli on sorteeritav - seal olevaid andmeid on võimalik sorteerida suuremast väiksemani ja vastupidi nime ning punktisumma järgi. |
− | * Realiseereritud on kõik Yahtzee reeglites olevad kombinatsioonid. | + | * Brauseri sulgemisel ja uuesti avamisel ei lähe tulemuste tabelisse salvestatud andmed kaduma |
+ | * Mängus saavad osaleda 2 mängijat. Mäng toimub samas arvutis ja ühe mängija käigu lõppedes antakse käik üle järgmisele mängijale. | ||
+ | * Realiseereritud on kõik Yahtzee reeglites olevad kombinatsioonid: https://yatzy-yahtzeeeee.dk/en/the-13-different-combinations/ | ||
* Tärgingupildid on realiseeritud spritesheetidena. | * Tärgingupildid on realiseeritud spritesheetidena. | ||
* Mäng on lisaks ''desktop'' vaatele kohaldatud ka mobiilile | * Mäng on lisaks ''desktop'' vaatele kohaldatud ka mobiilile | ||
− | ''' | + | '''Lisapunkti saamiseks''' |
* Mängu on võimalik mängida arvuti vastu, kusjuures arvuti ei tee oma otsuseid juhuslikult vaid kasutades optimaalset strateegiat võitmiseks. "AI" võimalikest strateegiatest võib lugeda näiteks siit: http://vermeille.fr/dotclear2/index.php/post/35-An-expectation-maximization-Yahtzee-AI | * Mängu on võimalik mängida arvuti vastu, kusjuures arvuti ei tee oma otsuseid juhuslikult vaid kasutades optimaalset strateegiat võitmiseks. "AI" võimalikest strateegiatest võib lugeda näiteks siit: http://vermeille.fr/dotclear2/index.php/post/35-An-expectation-maximization-Yahtzee-AI | ||
60. rida: | 62. rida: | ||
* Kuna iga mängija saab visata täringuid 3 korda, siis realiseeri nüüd see osa. | * Kuna iga mängija saab visata täringuid 3 korda, siis realiseeri nüüd see osa. | ||
* Laienda funktsiooni mis arvutab punkte nii et see võtaks arvesse ka muid kombinatsioone. | * Laienda funktsiooni mis arvutab punkte nii et see võtaks arvesse ka muid kombinatsioone. | ||
− | * Nüüd on õige aeg hakata lisama edetabelit ja mitmemängija | + | * Nüüd on õige aeg hakata lisama edetabelit ja mitmemängija tuge. |
== Abimaterjale ja viiteid == | == Abimaterjale ja viiteid == |
Viimane redaktsioon: 14. oktoober 2020, kell 12:36
ITI0205 2. iseseisev töö - Javascripti lauamäng
Mida tuleb teha
Sinu ülesandeks on kirjutada brauseris jooksev Yahtzee kasutades selleks ainult HTMLi, ilma raamistiketa Javascripti ja CSSi. Yahtzee on viie täringuga mängitav mäng, mille eesmärgiks on saada võimalikult palju mängulehel märgitud numbrikombinatsioone. Võitja on mängija, kes peale mängulehe täitmist on saanud kõrgeima punktisumma.
Mängu käik
Mäng koosneb 13 käigust ja selle eesmärgiks on 5 täringut veeretades koguda erinevate täringukombinatsioonidega võimalikult palju punkte. Võitja on mängija kellel on 13 käigu järel kõige rohkem punkte.
Reeglid ja nõuded
Põhifunktsionaalsus
Realiseeritud põhifunktsionaalsus annab 7 punkti ja on kohustuslik praktikumi arvestamiseks.
- Enne mängu algust küsitakse kasutajalt käikude arv - võib olla 3, 7 või 13
- Kui valitud on käikude arv, saab mängu alustada.
- Kasutajale kuvatakse mängulauda ja tulemuste tabelit. Mängu alustades on tulemuste tabel tühi.
- Mängu eesmärk on koguda võimalikult palju punkte. Selleks:
- Heidab mängija viit 6-küljelist täringut.
- Mängija saab kõiki täringuid korraga uuesti visata
- Mängija valib kombinatsiooni millele ta saadud punktisumma tahab lisada.
- Minimaalses versioonis on realiseeritud vähemalt järgmised kombinatsiooni punkide saamiseks:
- Number (ühed, kahed, kolmed, neljad, viied, kuued)
- Jokker - täringute summa
- Kui kombinatsiooni eest on punkte saadud siis samas mängus selle eest punkte enam ei saa.
- Mängijale kuvatakse mängu seis - milline käik ja milline on tema punktisumma kokku iga käigu järel.
- Kui mäng on läbi kuvatakse kasutajale tema tulemus
- Täringud on kuvatud piltidena
Lisaks põhifunktsionaalsusele
Iga punkt siit nimekirjast annab ühe punkti, st. lisaks baasfunktsionaalsusele on võimalik saada kokku 15 punkti.
- Mängija saab maksimaalselt kolmel korral kas kõiki või osasid täringuid uuesti visata.
- Lisaks käikude arvule küsitakse kasutajalt ka tema nimi. Mängu lõppedes kirjutatakse punktisumma tulemuste tabelisse kus näidatakse viimase 10 mängu kohta järgmised väljad: nimi, punktide arv, veeretuste arv ja mängule kulunud aeg.
- Tulemuste tabeli on sorteeritav - seal olevaid andmeid on võimalik sorteerida suuremast väiksemani ja vastupidi nime ning punktisumma järgi.
- Brauseri sulgemisel ja uuesti avamisel ei lähe tulemuste tabelisse salvestatud andmed kaduma
- Mängus saavad osaleda 2 mängijat. Mäng toimub samas arvutis ja ühe mängija käigu lõppedes antakse käik üle järgmisele mängijale.
- Realiseereritud on kõik Yahtzee reeglites olevad kombinatsioonid: https://yatzy-yahtzeeeee.dk/en/the-13-different-combinations/
- Tärgingupildid on realiseeritud spritesheetidena.
- Mäng on lisaks desktop vaatele kohaldatud ka mobiilile
Lisapunkti saamiseks
- Mängu on võimalik mängida arvuti vastu, kusjuures arvuti ei tee oma otsuseid juhuslikult vaid kasutades optimaalset strateegiat võitmiseks. "AI" võimalikest strateegiatest võib lugeda näiteks siit: http://vermeille.fr/dotclear2/index.php/post/35-An-expectation-maximization-Yahtzee-AI
Mistahes põnevad lisandused on lubatud.
Millises järjekorras asju teha
Proovi alustada lihtsamate osadega ja sealt järjest keerulisemaks.
- Alusta puhta HTML failiga kuhu CSSiga joonistad staatilise mänguvälja ja täringud
- Proovi saada täringud staatiliselt kuvama soovitud numbreid
- Nüüd tee lihtne
onclick
meetod täringule, mis seda numbrit vahetaks - Lisa nupud täringu viskamiseks.
- Proovi hoida täringute summat mingis globaalses muutujas, mida näitad välja lehel - see tähendab et oleku salvestamine töötab
- Edasi proovi tulemused vastava käigu juurde tulemuste tabelisse kirjutada.
- Nüüd realiseeri mängu algus ja lõpuolekud - mängu kondikava on sellega olemas.
- Kuna iga mängija saab visata täringuid 3 korda, siis realiseeri nüüd see osa.
- Laienda funktsiooni mis arvutab punkte nii et see võtaks arvesse ka muid kombinatsioone.
- Nüüd on õige aeg hakata lisama edetabelit ja mitmemängija tuge.
Abimaterjale ja viiteid
- Yahtzee tutvustus Wikis: https://en.wikipedia.org/wiki/Yahtzee
- Mängi seda brauseris: https://cardgames.io/yahtzee/
- Vaata implementatsioone: https://github.com/peippo/yahtzee või https://github.com/taylorhansen/Yahtzee või https://codepen.io/SteveJRobertson/pen/dPVgqK
- Yahtzee võidustrateegiast: https://www.reddit.com/r/learnmath/comments/49bjoi/yahtzee_type_strategy_problem/ ja https://entertainment.howstuffworks.com/leisure/brain-games/yahtzee2.htm