示例#1
0
        private void Reset()
        {
            SnakeMessage sendmessage = new SnakeMessage(SendMessage);

            grid              = new Grid(arena.Size, sendmessage);
            grid.Renderer     = new Renderer(grid);
            this.arena.Paint += new PaintEventHandler(this.arena_Paint);
            score_label.Text  = "3";
        }
示例#2
0
        // 构造函数 注意method先后顺序
        public Grid(Size arenaSize, SnakeMessage messageSender)
        {
            this.arenaSize = arenaSize;
            MessageSender  = messageSender;

            SnakeBody = new LinkedList <Point>();
            CreateSnake();
            Controller = new Controller(Snake);
            Foods      = new List <Food>();
            CreateFood();
        }
示例#3
0
        public void EndOfTurn(string reason)
        {
            timer1.Stop();
            MessageBox.Show(reason);

            // 填写统计信息
            string stats;

            end = DateTime.Now;
            TimeSpan duration = end - start;
            string   Duration = duration.TotalSeconds.ToString();

            stats  = "Level: " + level + "\n";
            stats += "Score: " + score_label.Text + "\n";
            stats += string.Format("Duration: {0:f1}s", duration.TotalSeconds);

            // 重试
            var result = MessageBox.Show(stats, "Game Over", MessageBoxButtons.RetryCancel);

            if (result == DialogResult.Retry)
            {
                switch (level)
                {
                case "Easy":
                    newEasy.PerformClick();
                    break;

                case "Normal":
                    newNormal.PerformClick();
                    break;

                case "Hard":
                    newHard.PerformClick();
                    break;
                }
                SnakeMessage sendmessage = new SnakeMessage(SendMessage);
            }
        }