注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

姑射道人的博客

博客新地址:nixuchen.com

 
 
 

日志

 
 

C#贪吃蛇  

2011-09-25 12:58:12|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

public abstract class Shape
{
    public Color co;
    protected int x = 10, y = 10;
    protected bool active;
    protected Graphics g;
    protected Color activeColor, normalColor, eraseColor;
   
    public abstract void Erase();
    public abstract void Draw();
    public abstract void Reset();

    public void SetActive(bool active)
    {
        this.active = active;
        Erase();
        Draw();
    }
    public void setColor(Color a, Color b, Color c)
    {
        activeColor = a;
        normalColor = b;
        eraseColor = c;

    }
    public void mode(int mode)
    {
        if (mode == 'a') co = activeColor;
        else if (mode == 'b') co = normalColor;
        else co = eraseColor;
    }
    public void MoveRight()
    {
        Erase();
        x += 3;
        Draw();
    }
    public void MoveLeft()
    {
        Erase();
        x -= 3;
        Draw();
    }
    public void MoveUp()
    {
        Erase();
        y -= 3;
        Draw();
    }
    public void MoveDown()
    {
        Erase();
        y += 3;
        Draw();
    }
}
public class Rect : Shape
{
    int width, height;
    public Rect(Graphics g, int x, int y, int width, int height)
    {
        active = false;
        this.g = g;
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
        setColor(Color.Pink, Color.Red, Color.LightGray);

    }
    public override void Erase()
    {

        mode('c');
        SolidBrush sb = new SolidBrush(co);
        g.FillRectangle(sb, new Rectangle(x, y, width, height));

    }
    public override void Draw()
    {
        mode('a');
        SolidBrush sb = new SolidBrush(co);
        g.FillRectangle(sb, new Rectangle(x, y, width, height));
        g.FillEllipse(Brushes.Black, new Rectangle(x + 200, y, 3, 3));
  }
    public override void Reset()
    {
        mode('b');
        SolidBrush sb = new SolidBrush(co);
        g.FillRectangle(sb, new Rectangle(x, y, width, height));
    }
   
}

public class Cirle : Shape
{
    int m, n;
    public Cirle(Graphics g, int x, int y, int m, int n)
    {
        active = false;
        this.g = g;
        this.x = x;
        this.y = y;
        this.m = m;
        this.n = n;
        setColor(Color.Pink, Color.Green, Color.LightGray);

    }

    public override void Erase()
    {
        mode('c');
        SolidBrush sb = new SolidBrush(co);
        g.FillEllipse(sb, x, y, m, n);
        g.FillEllipse(Brushes.Brown, new Rectangle(x + 200, y, 3, 3));

    }
    public override void Draw()
    {
        mode('a');
        SolidBrush sb = new SolidBrush(co);
        g.FillEllipse(sb, x, y, m, n);


    }
    public override void Reset()
    {
        mode('b');

        SolidBrush sb = new SolidBrush(co);
        g.FillEllipse(sb, x, y, m, n);
    }
}
    public class Pie : Shape
    {
        int ra, rb;
        public Pie(Graphics g, int x, int y, int ra, int rb)
        {
            active = false;
            this.g = g;
            this.x = x;
            this.y = y;
            this.ra = ra;
            this.rb = rb;
            setColor(Color.Pink, Color.Purple, Color.LightGray);
        }
        public override void Erase()
        {
            mode('c');
            SolidBrush sb = new SolidBrush(co);
            g.FillPie(sb, new Rectangle(x, y, 30, 30), ra, rb);
        }
        public override void Draw()
        {

            mode('a');
            SolidBrush sb = new SolidBrush(co);
            g.FillPie(sb, new Rectangle(x, y, 30, 30), ra, rb);
            g.FillEllipse(Brushes.Blue, new Rectangle(x + 200, y, 3, 3));

        }
        public override void Reset()
        {
            mode('b');
            SolidBrush sb = new SolidBrush(co);
            g.FillPie(sb, new Rectangle(x, y, 30, 30), ra, rb);
        }
    }

  评论这张
 
阅读(1037)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017