Praktikumitöö:mõtlemismäng: erinevus redaktsioonide vahel
Resümee puudub |
Resümee puudub |
||
| 20. rida: | 20. rida: | ||
Etteantud kood koosneb neljast failist selles zip failis: | Etteantud kood koosneb neljast failist selles zip failis: | ||
<b>[[Media:Five.zip|Five.zip]]</b> | <b>[[Media:Five.zip|Five.zip]]</b> | ||
Redaktsioon: 22. november 2005, kell 03:24
Ülesandeks on lisada etteantud viis-nuppu-ritta programmile nö mõtlemiskomponent: jupid programmi, mis leiavad etteantud seisust võimalikult hea käigu. Nende juppide lisamise tulemusena peab sinu programm mängima viit nuppu ritta nö "mõistliku headuse" tasemel.
Konkreetselt nõutakse, et sinu programm peab rõhuval enamikul juhtudel võitma õppejõu poolt etteantavat viis-nuppu-ritta võrdlusprogrammi, eeldades, et mõlemal on iga käigu jaoks aega üks sekund. See võrldusprogramm tuleb - ilma lähtekoodita - siia lehele 1. detsembriks. Igal juhul on garanteeritud, et:
- kui sinu programm kasutab korrektselt minimaxi
- oled programmeerinud mõistliku lihtsa seisuhinde (vaatab viieste olemasolu, loeb kokku lahtised neljased, poollahtised neljased, lahtised kolmesed)
siis sinu programm võidab etteantud võrdlusprogrammi, kui mõlemal on ajapiir üks sekund käigu kohta.
Kahekesi programmeerimine
Viis nuppu ritta ülesannet võib programmeerida kas üksi või kahekesi. Kahekesi programmeerimise puhul saab kumbki täispunktid, tingimusel, et:
- Programmi ettenäitamisel on kohal mõlemad tudengid. Kui ühte pole, siis tema lihtsalt punkte ei saa.
- Kumbki tudeng saab programmi tekstist aru (st ka nendest osadest, mida tema programmeerinud ei olnud). Kui juhendajale tundub, et üks tudeng ei saa programmi tekstist hästi aru, siis ta jätab sellele tudengile punktid panemata või paneb lihtsalt vähem.
Etteantud lähtekood
Sinu programm peab olema järgmise etteantud koodi edasiarendus. Mingeid muid alternatiive - üleni isetehtud või mujalt saadud GUI või muud klassid - ei aktsepteerita.
Etteantud kood koosneb neljast failist selles zip failis:
Kood on kohe edukalt kompileeritav ja töötav. Paraku mängib ta väga halvasti: käib alati esimesele vabale kohale. Selleks, et paremini mängiks, pead lisama funktsiooni best_move (failis FiveLogic.java) minimaxi kasutamise ja mõistliku seisuhinde (st kirjutama need funktsioonid lisaks ja kutsuma neid best_move seest välja).
Etteantud lähtekood baseerub siin lehel varem viidatud lähtekoodile http://www.leepoint.net/notes-java/45examples/55games/five/five.html
Võrreldes viimasega on lisatud masina käik, autoplay rezhiim ja 20x20 laua valik.
Kuidas minimaxi ja seisuhinde arvutamist programmeerida
Loengus antud info ja viited: Loengumaterjal: Progpohi12.PPT
Lisaks: