private void pokret(object sender, EventArgs e) { int x = Zmija[napred].Location.X, y = Zmija[napred].Location.Y; if (dx == 0 && dy == 0) { return; } if (game_over(x + dx, y + dy)) { timer.Stop(); RangLista(); MessageBox.Show("Kraj igre. Vas rezultat je " + score); this.Close(); return; } if (collisionFood(x + dx, y + dy)) { score += 1; labelRezultat.Text = "Score: " + score.ToString(); if (hits((y + dy) / 20, (x + dx) / 20)) { return; } Polje head = new Polje(x + dx, y + dy); napred = (napred - 1 + 920) % 920; Zmija[napred] = head; posecenoPolje[head.Location.Y / 20, head.Location.X / 20] = true; Controls.Add(head); koordinateHrane(); } else { if (hits((y + dy) / 20, (x + dx) / 20)) { return; } posecenoPolje[Zmija[nazad].Location.Y / 20, Zmija[nazad].Location.X / 20] = false; napred = (napred - 1 + 920) % 920; Zmija[napred] = Zmija[nazad]; Zmija[napred].Location = new Point(x + dx, y + dy); nazad = (nazad - 1 + 920) % 920; posecenoPolje[(y + dy) / 20, (x + dx) / 20] = true; } }
private void Init() { PokreniTimer(); posecenoPolje = new bool[brojVrsta, brojKolona]; Polje glavaZmije = new Polje((r.Next() % brojKolona) * 20, (r.Next() % brojVrsta) * 20); pictureBoxHrana.Location = new Point(r.Next(0, brojKolona) * 20, r.Next(0, brojVrsta) * 20); for (int i = 0; i < brojVrsta; i++) { for (int j = 0; j < brojKolona; j++) { posecenoPolje[i, j] = false; slobodnaPolja.Add(i * brojKolona + j); } } posecenoPolje[glavaZmije.Location.Y / 20, glavaZmije.Location.X / 20] = true; slobodnaPolja.Remove(glavaZmije.Location.Y / 20 * brojKolona + glavaZmije.Location.X / 20); Controls.Add(glavaZmije); Zmija[napred] = glavaZmije; }