Exemplo n.º 1
0
        public Form1()
        {
            finished = false;
            snake    = new CircularLinkedList <Snake>();
            InitializeComponent();
            canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            g      = Graphics.FromImage(canvas);
            Snake snakehead;

            snakehead = new Snake(0, 0, 30, 30, 30, 4);
            snake.AddNodeToFront(snakehead);
            x = rand.Next(0, canvas.Width - 30);
            y = rand.Next(0, canvas.Height - 30);
            if (x % 30 > 0)
            {
                while (x % 30 > 0)
                {
                    x = rand.Next(30, canvas.Width - 30);
                }
            }
            if (y % 30 > 0)
            {
                while (y % 30 > 0)
                {
                    y = rand.Next(30, canvas.Height - 30);
                }
            }
            food  = new Food(x, y, 30, 30);
            score = 0;
        }
Exemplo n.º 2
0
        private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (restart == true)
            {
                restart = false;
                snake.Clear();
                Snake snakehead;
                snakehead = new Snake(0, 0, 30, 30, 30, 4);
                snake.AddNodeToFront(snakehead);
                snake.Head.data.X = 0;
                snake.Head.data.Y = 0;
                score             = 0;
                label1.Text       = "Score: 0";
                currentDirection  = direction.right;
                CircularLinkedListNode <Snake> runner1 = snake.Head;
                for (int i = snake.Count - 1; i > 0; i--)
                {
                    snake.Remove(runner1.data);
                    runner1 = runner1.next;
                }
                timer1.Enabled = true;
            }
            if (e.KeyCode == Keys.Left && currentDirection != direction.right)
            {
                currentDirection = direction.left;
            }
            if (e.KeyCode == Keys.Right && currentDirection != direction.left)
            {
                currentDirection = direction.right;
            }
            if (e.KeyCode == Keys.Up && currentDirection != direction.down)
            {
                currentDirection = direction.up;
            }
            if (e.KeyCode == Keys.Down && currentDirection != direction.up)
            {
                currentDirection = direction.down;
            }
            CircularLinkedListNode <Snake> runner = snake.Head;

            for (int i = snake.Count - 1; i > 0; i--)
            {
                runner.data.Direction = runner.prev.data.Direction;
                runner = runner.next;
            }
        }