120 likes | 299 Views
SOKOBAN. Ondra Mandík, I4a SPŠE Ječná. POPIS. Hra bude obsahovat jednoho hráče, bedny, zdi a cílová místa pro bedny. Hráč nesmí procházet zdí. Hráč před sebou může tlačit pouze jednu bednu. Hráč hru vyhraje v případě že umístí bedny na cílová místa. Uživatel si může vybrat vlastní mapu.
E N D
SOKOBAN Ondra Mandík, I4a SPŠE Ječná
POPIS • Hra bude obsahovat jednoho hráče, bedny, zdi a cílová místa pro bedny. • Hráč nesmí procházet zdí. • Hráč před sebou může tlačit pouze jednu bednu. • Hráč hru vyhraje v případě že umístí bedny na cílová místa. • Uživatel si může vybrat vlastní mapu.
LOGIKA HRY CÍLOVÉ MÍSTO HRÁČ BEDNA ZEĎ
LOGIKA HRY TLAČENÍ 1 BEDNY TLAČENÍ 2 BEDEN
LOGIKA HRY ŠIPKA NAHORU = ANO BINGO ŠIPKA DOPRAVA = NE
REALIZACE / DATA List<PictureBox> zdi = newList<PictureBox>(); List<PictureBox> bedny = newList<PictureBox>(); List<int[]> misto = newList<int[]>(); PictureBoxpBSkladnik = newPictureBox(); Color[] barva = newColor[5]; intvelikost = 30; intradky; intsloupce;
REALIZACE / INICIALIZACE FileStream f = newFileStream(…); StreamReaderr = newStreamReader(f); radky= Convert.ToInt32(r.ReadLine()); sloupce = Convert.ToInt32(r.ReadLine()); for (int i = 0; i < radky * sloupce; i++) { PictureBoxz = newPictureBox(); z.Height= velikost; z.Width= velikost; … intcislo = Convert.ToInt32(r.ReadLine()); if(cislo == 0){//zed z.Tag= cislo; z.BackColor= barva[cislo]; } if(cislo == 1){ …
REALIZACE / HRA privatevoid Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Down){ … } if(e.KeyCode == Keys.Up) { … } … if (test()) MessageBox.Show("BINGO"); }
REALIZACE / VYHRA bool test(){ boolok = false; intpoc = 0; for(int k = 0; k < bedny.Count; k++ ) for(int i = 0; i < misto.Count; i++){ if(bedny[k].Top == misto[i][1] && bedny[k].Left == misto[i][0] ) poc++; } } if(poc == misto.Count) ok = true; returnok; } }
ZÁVĚR • Hra je hotová a plně fuknční. • Je možné hru rozšířit o další mapy. • Do budoucna plánuji dodělat měření času.
OTÁZKY DĚKUJI ZA POZORNOST. MÁTE-LI DOTAZY,RÁD ODPOVÍM