Meeskond "S.K": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kkallasm (talk | contribs)
No edit summary
Saaver (talk | contribs)
 
(51 intermediate revisions by 2 users not shown)
Line 1: Line 1:
===Allalaadimine===
Mäng on kättesaadav [http://enos.itcollege.ee/~saaver/C%23Prog/Mineseeker/Mineseeker.rar SIIT], lähtekood [http://enos.itcollege.ee/~saaver/C%23Prog/Mineseeker/MineseekerMod.rar SIIT]
===Kirjeldus===
Minesweeperi laadne mäng, kus miinide otsimise asemel tuleb neile pihta saada. Punkte arvestatakse klikkide pealt (mida vähem, seda parem).
===Juhend===
Pole kunagi aru saanud, mis need numbrid ja lipukesed tähendavad? [http://blogs.warwick.ac.uk/aknorlund-matthiessen/entry/minesweeper_tutorial/ Siin] on väike piltidega juhend, mis loodetavasti teeb asja selgemaks. Ainus vahe tavalise minesweeperi ja meie mängu vahel on, et kui esimeses tuleb kõik miinideta ruudud avada, siis siin tuleb hoopis kõigile miinidele pihta saada. Mida vähem miinidest mööda klikid, seda parema tulemuse saad.
Mängus on võimalik valida kolme raskusastme vahel:
easy - 15 x 10 ruutu väljak ja 30 miini;
medium - 20 x 15 ruutu ja 60 miini;
hard - 25 x 20 ruutu ja 100 miini.
Võrgumäng toimib ainult LAN-is. Koolis proovides peavad mõlemad mängijad olema ühendatud sama WIFI AP külge. Kui mängu hostimine ei õnnestu (viskab tagasi põhimenüüsse), siis see tähendab, et keegi teine hostib juba samas võrgus mängu. Kui join ei õnnestu, siis suure tõenäoususega ollakse erinevates võrkudes või on ühenduse kvaliteet halb (suur packet loss, kõrge latentsus). Kui suudad kaks mängu akent enda desktopile ära mahutada, siis saad ka ainult ühes arvutis multiplayer mängu katsetada.
Single player mängus on võimalik kasutada ka väikest cheati. Nimelt, 'p' klahv paneb 3x3 pommitamise režiimi peale. St. et kui vajutad mingi ruudu peale, siis lisaks sellele avatakse ka kõik ümbritsevad ruudud. Et aga liiga kerge ei oleks highscore üle lüüa, siis üks vajutus maksab 5 klikki. Netimängus on võrdsuse pärast see võimalus kinni keeratud.
Mineseeker toetab ka Xboxi pulti. See vasakpoolne julla liigutab arvuti ekraanil hiirt ja ruute on võimalik avada 'A' klahviga. Mängu võitmisel tuleb nimi sisestada siiski klaviatuurilt.
===Klassid===
[[Image:highscore.jpg|thumb|right|Highscore screen]]
*Game1.cs - Esialgne mängu initsialiseerimise loogika. Siin paiknevad update ja draw, mis annavad selle ülesande teistele klassidele edasi.
*GameScreen.cs - Haldab kõiki mängu screene.
*HighScoreScreen.cs - Menüü osa, kus näidatakse kõrgemaid skoore.
*Kell.cs - Sisaldab meetodeid aja mõõtmiseks kasutades System.Diagnostics.Stopwatch.
*LevelScreen.cs - Raskusastme valimise screen.
*MainMenu.cs - Menüü, mis tuleb mängu käivitamisel ette.
*MiinideAsukohad.cs - Klass, mille sees loositakse välja kõigi miinide asukohad.
*MineScreen.cs - Selles klassis paikneb meie mänguväljaku loomise ja uuendamise loogika. Käsib kõigil ruutudel enda sisu uuenda ning iseennast joonistada.
*MultiPlayerScreen.cs - Menüü, kus mis pakub valikut võrgumängu loomiseks või teise mänguga ühinemiseks.
*Muutujad.cs - Sisaldab mitmesuguseid muutujaid, mida on paljudes erinevates klassides vaja.
*Network.cs - Kasutab Lidgren'i võrgu library't. Võimaldab serveri ja kliendi vahelise suhtluse.
*Player.cs - Hoitakse highscore andmeid.
*Program.cs - Sellest klassist tõmmatakse mäng käima.
*Ruut.cs - Klass, mis sisaldab mänguväljaku ruudu muutujaid ja meetodeid. Igal ruudul on olemas update() ja draw() meetod.
*Tekstuurid.cs - Klass, kus on viidad kõigile mängus kasutatavatele tekstuuridele.
*Tulemused.cs - Siin toimub XML lugemine ja kirjutamine.
==Logi==
===1. oktoober===
===1. oktoober===
* Esialgne väljaku joonistamise kood.
* Idee läbirääkimine, osade esialgne jaotus


===2. oktoober===
===2. oktoober===
* Esialgne väljaku joonistamise kood.
* Esialgne menüü ja liikumine
* Esialgne menüü ja liikumine
* Erinevad lehed
* Erinevad lehed
Line 37: Line 79:
===15. oktoober===
===15. oktoober===
* Esialgne XML fail mängu skooriga
* Esialgne XML fail mängu skooriga
* Game1 loadcontent ümber tehtud, tekstuure hoiab klass tekstuurid


===18. oktoober===
===18. oktoober===
* Klassi muutujad liigutatud kõik muutujad, millele on vaja mitmes klassis ligipääsu
* Klassid Kell ja Player
* Klassid Kell ja Player
* Osaline graafika muutmine


===20. oktoober===
===20. oktoober===
* Klass Tulemused, mis hoiab/väljastab tulemusi
* Klass Tulemused, mis hoiab/väljastab tulemusi
* Klass Field, mis hoiab miinidearvu


===24. oktoober===
===22. oktoober===
* Lisatud nime sisestamise võimalus klaviatuurilt
* Lisatud hiire klikkide arv, jooksev aeg, miinide arv väljakul
 
===23. oktoober===
* Uuendatud/parandatud xml'i kirjutamine/lugemine -> tulemuste väljastamine
* Uuendatud/parandatud xml'i kirjutamine/lugemine -> tulemuste väljastamine


===24. oktoober===
===24. oktoober===
* Klass Vaheleht, mis väljastab muudetud tulemused
* Graafika/fontide muutmine
* Lisatud vinge pommi plahvatamise animatsioon
* Beta kättesaadav
 
===26. oktoober===
* Terve menüü loogika uuesti ülesehitatud
* Lisatud esialgne neti tugi kasutades [http://code.google.com/p/lidgren-network-gen3/ Lidgren.Library.Network]
 
===27. oktoober===
* Lisatud XBoxi tugi
* LAN kahe mängija tugi olemas
* Mängu nõuded täidetud
 
===16. november===
* Mõningad parandused

Latest revision as of 23:31, 30 November 2010

Allalaadimine

Mäng on kättesaadav SIIT, lähtekood SIIT

Kirjeldus

Minesweeperi laadne mäng, kus miinide otsimise asemel tuleb neile pihta saada. Punkte arvestatakse klikkide pealt (mida vähem, seda parem).

Juhend

Pole kunagi aru saanud, mis need numbrid ja lipukesed tähendavad? Siin on väike piltidega juhend, mis loodetavasti teeb asja selgemaks. Ainus vahe tavalise minesweeperi ja meie mängu vahel on, et kui esimeses tuleb kõik miinideta ruudud avada, siis siin tuleb hoopis kõigile miinidele pihta saada. Mida vähem miinidest mööda klikid, seda parema tulemuse saad.

Mängus on võimalik valida kolme raskusastme vahel: easy - 15 x 10 ruutu väljak ja 30 miini; medium - 20 x 15 ruutu ja 60 miini; hard - 25 x 20 ruutu ja 100 miini.

Võrgumäng toimib ainult LAN-is. Koolis proovides peavad mõlemad mängijad olema ühendatud sama WIFI AP külge. Kui mängu hostimine ei õnnestu (viskab tagasi põhimenüüsse), siis see tähendab, et keegi teine hostib juba samas võrgus mängu. Kui join ei õnnestu, siis suure tõenäoususega ollakse erinevates võrkudes või on ühenduse kvaliteet halb (suur packet loss, kõrge latentsus). Kui suudad kaks mängu akent enda desktopile ära mahutada, siis saad ka ainult ühes arvutis multiplayer mängu katsetada.

Single player mängus on võimalik kasutada ka väikest cheati. Nimelt, 'p' klahv paneb 3x3 pommitamise režiimi peale. St. et kui vajutad mingi ruudu peale, siis lisaks sellele avatakse ka kõik ümbritsevad ruudud. Et aga liiga kerge ei oleks highscore üle lüüa, siis üks vajutus maksab 5 klikki. Netimängus on võrdsuse pärast see võimalus kinni keeratud.

Mineseeker toetab ka Xboxi pulti. See vasakpoolne julla liigutab arvuti ekraanil hiirt ja ruute on võimalik avada 'A' klahviga. Mängu võitmisel tuleb nimi sisestada siiski klaviatuurilt.

Klassid

Highscore screen
  • Game1.cs - Esialgne mängu initsialiseerimise loogika. Siin paiknevad update ja draw, mis annavad selle ülesande teistele klassidele edasi.
  • GameScreen.cs - Haldab kõiki mängu screene.
  • HighScoreScreen.cs - Menüü osa, kus näidatakse kõrgemaid skoore.
  • Kell.cs - Sisaldab meetodeid aja mõõtmiseks kasutades System.Diagnostics.Stopwatch.
  • LevelScreen.cs - Raskusastme valimise screen.
  • MainMenu.cs - Menüü, mis tuleb mängu käivitamisel ette.
  • MiinideAsukohad.cs - Klass, mille sees loositakse välja kõigi miinide asukohad.
  • MineScreen.cs - Selles klassis paikneb meie mänguväljaku loomise ja uuendamise loogika. Käsib kõigil ruutudel enda sisu uuenda ning iseennast joonistada.
  • MultiPlayerScreen.cs - Menüü, kus mis pakub valikut võrgumängu loomiseks või teise mänguga ühinemiseks.
  • Muutujad.cs - Sisaldab mitmesuguseid muutujaid, mida on paljudes erinevates klassides vaja.
  • Network.cs - Kasutab Lidgren'i võrgu library't. Võimaldab serveri ja kliendi vahelise suhtluse.
  • Player.cs - Hoitakse highscore andmeid.
  • Program.cs - Sellest klassist tõmmatakse mäng käima.
  • Ruut.cs - Klass, mis sisaldab mänguväljaku ruudu muutujaid ja meetodeid. Igal ruudul on olemas update() ja draw() meetod.
  • Tekstuurid.cs - Klass, kus on viidad kõigile mängus kasutatavatele tekstuuridele.
  • Tulemused.cs - Siin toimub XML lugemine ja kirjutamine.


Logi

1. oktoober

  • Idee läbirääkimine, osade esialgne jaotus

2. oktoober

  • Esialgne väljaku joonistamise kood.
  • Esialgne menüü ja liikumine
  • Erinevad lehed
  • Test-graafika

3. oktoober

  • Mänguväljaku ruudud avanevad kui nende peale hiirega klikkida.
  • Mänguväljakule randomiga miinide loosimine. Tuleb välja, et C# RandomNumber klass ei tekita just kuigi suvalisi numbreid.
suht random?








7. oktoober

  • Mäng jagatud rohkemateks klassideks ja alamfunktsioonideks.
  • Klass ruut moditud

8. oktoober

  • Tühja (ilma miini ja numbrita) ruutu tabades avab ka ümberkaudsed tühjad ruudud.
  • Miinide loosimiseks võetud kasutusele RNGCryptoServiceProvider klass, mida erinevalt RandomNumber klassist võib ka randomiks nimetada.
  • Lisatud võimalus 3x3 ruutu ühe vajutusega lahti teha.

15. oktoober

  • Esialgne XML fail mängu skooriga
  • Game1 loadcontent ümber tehtud, tekstuure hoiab klass tekstuurid

18. oktoober

  • Klassi muutujad liigutatud kõik muutujad, millele on vaja mitmes klassis ligipääsu
  • Klassid Kell ja Player
  • Osaline graafika muutmine

20. oktoober

  • Klass Tulemused, mis hoiab/väljastab tulemusi

22. oktoober

  • Lisatud nime sisestamise võimalus klaviatuurilt
  • Lisatud hiire klikkide arv, jooksev aeg, miinide arv väljakul

23. oktoober

  • Uuendatud/parandatud xml'i kirjutamine/lugemine -> tulemuste väljastamine

24. oktoober

  • Graafika/fontide muutmine
  • Lisatud vinge pommi plahvatamise animatsioon
  • Beta kättesaadav

26. oktoober

27. oktoober

  • Lisatud XBoxi tugi
  • LAN kahe mängija tugi olemas
  • Mängu nõuded täidetud

16. november

  • Mõningad parandused