Пример #1
0
        public void Crtanje(Graphics g)
        {
            g.Clear(Color.White);

            // iscrtuvanje na zmijata
            foreach (Point item in TeloZmija)
            {
                g.FillRectangle(Cetka, item.X * StranaKvadrat, item.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
                g.DrawRectangle(Penkalo, item.X * StranaKvadrat, item.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
            }

            // iscrtuvanje na glavata
            SolidBrush pom          = new SolidBrush(Color.Black);
            Point      pomosnaTocka = TeloZmija.First();

            g.FillRectangle(pom, pomosnaTocka.X * StranaKvadrat, pomosnaTocka.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
            //g.DrawRectangle(Penkalo, pomosnaTocka.X * StranaKvadrat, pomosnaTocka.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);

            // iscrtuvanje na hranata
            g.FillRectangle(Cetka, Hrana.X * StranaKvadrat, Hrana.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
            g.DrawRectangle(Penkalo, Hrana.X * StranaKvadrat, Hrana.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);

            if (Znamence)
            {
                SolidBrush BonusCetka = new SolidBrush(Color.Red);
                g.FillRectangle(BonusCetka, BonusHrana.X * StranaKvadrat, BonusHrana.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
                g.DrawRectangle(Penkalo, BonusHrana.X * StranaKvadrat, BonusHrana.Y * StranaKvadrat, StranaKvadrat, StranaKvadrat);
            }
        }
Пример #2
0
        // Dokolku zmijata sama se izedi sebesi ke vrati true
        // vo sprotiven slucaj false
        public bool SamoUnistuvanje()
        {
            Point pomosna = TeloZmija.First();

            for (int i = 1; i < TeloZmija.Count; i++)
            {
                if (TeloZmija.ElementAt(i).X == pomosna.X && TeloZmija.ElementAt(i).Y == pomosna.Y)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
        public void Premesti(int sirina, int visina)
        {
            Point pomosna = TeloZmija.First();

            // presmetaj ja slednata pozicija na glavata od zmijata
            // vo zavisnost od Nasoka
            switch (Nasoka)
            {
            case NASOKA.DESNO:
                if (pomosna.X + 1 >= sirina)
                {
                    TeloZmija.AddFirst(new Point(0, pomosna.Y));
                }
                else
                {
                    TeloZmija.AddFirst(new Point(pomosna.X + 1, pomosna.Y));
                }
                break;

            case NASOKA.LEVO:
                if (pomosna.X - 1 < 0)
                {
                    TeloZmija.AddFirst(new Point(sirina - 1, pomosna.Y));
                }
                else
                {
                    TeloZmija.AddFirst(new Point(pomosna.X - 1, pomosna.Y));
                }
                break;

            case NASOKA.DOLU:
                if (pomosna.Y + 1 >= visina)
                {
                    TeloZmija.AddFirst(new Point(pomosna.X, 0));
                }
                else
                {
                    TeloZmija.AddFirst(new Point(pomosna.X, pomosna.Y + 1));
                }
                break;

            case NASOKA.GORE:
                if (pomosna.Y - 1 < 0)
                {
                    TeloZmija.AddFirst(new Point(pomosna.X, visina - 1));
                }
                else
                {
                    TeloZmija.AddFirst(new Point(pomosna.X, pomosna.Y - 1));
                }
                break;
            }

            // Ako starata hrana e izedena presmetaj pozicija na nova
            // i ne ja otstranuvaj opaskata.
            // Dokolku starata hrana ne e izedena otstrani ja opaskata
            pomosna = TeloZmija.First();
            if (pomosna.X == Hrana.X && pomosna.Y == Hrana.Y)
            {
                Hrana  = NovaHrana(sirina, visina);
                Poeni += 3;
                if (TeloZmija.Count % 5 == 0)
                {
                    Znamence   = true;
                    BonusHrana = NovaBonusHrana(sirina, visina);
                }
            }
            else
            {
                TeloZmija.RemoveLast();
            }

            if (pomosna.X == BonusHrana.X && pomosna.Y == BonusHrana.Y)
            {
                //Hrana = NovaHrana(sirina, visina);
                Poeni   += 10;
                Znamence = false;
            }
        }