编程论坛's Archiver

htzz 发表于 2006-4-15 13:38

用C#写的《贪吃蛇》[有代码] 更新 4。23

<P>刚学编程写了这个游戏炼炼,因为图形是用画画的会有闪烁。<br>不懂链表是什么,所以没用着。<br>蛇的移动速度会随着蛇的长度增快。自己反应迟钝只得35分。<br><br><br>原来上传附件忘了按 上传 按钮<br>怪不得上传不了。</P>[attach]6443[/attach]<br>
[align=right][color=#000066][此贴子已经被作者于2006-4-24 17:23:19编辑过][/color][/align]

htzz 发表于 2006-4-15 13:41

<P>using System;<br>using System.Drawing;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Windows.Forms;<br>using System.Data;<br>using System.Runtime.InteropServices;</P>
<P><br>namespace 贪吃蛇<br>{<br> /// &lt;summary&gt;<br> /// Form1 的摘要说明。<br> /// &lt;/summary&gt;<br> public class Form1 : System.Windows.Forms.Form<br> {<br>  public void food()<br>  {<br>   int x1,y1,a;<br>   Random r=new Random();<br>   do<br>   {<br>    x1=r.Next(0,20);<br>    y1=r.Next(0,20);<br>    a=r.Next(4);<br>   }while(xy[x1,y1]!=0);<br>   xy[x1,y1]=2;<br>   this.banana.Location = new System.Drawing.Point(x1*15, y1*15);<br>   this.watermelon.Location = new System.Drawing.Point(x1*15, y1*15);<br>   this.apple.Location = new System.Drawing.Point(x1*15, y1*15);<br>   this.radish.Location = new System.Drawing.Point(x1*15, y1*15);<br>   switch(a)<br>   {<br>    case 0:{banana.Visible=true;watermelon.Visible=apple.Visible=radish.Visible=false;break;}<br>    case 1:{watermelon.Visible=true;banana.Visible=apple.Visible=radish.Visible=false;break;}<br>    case 2:{apple.Visible=true;watermelon.Visible=banana.Visible=radish.Visible=false;break;}<br>    case 3:{radish.Visible=true;watermelon.Visible=apple.Visible=banana.Visible=false;break;}<br>   }</P>
<P>  }<br>  public void yidong1()<br>  {<br>   Graphics g=CreateGraphics();<br>   switch(Fanxian)<br>   {<br>    case "up":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>     if(head.y==0)<br>      head.y=19;<br>     else<br>      head.y=head.y-1;<br>     if(head.y==-1||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>      return;<br>     }</P>
<P>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>     break;<br>    }</P>
<P>    case "down":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>     if(head.y==19)<br>      head.y=0;<br>     else<br>      head.y=head.y+1;<br>     if(head.y==20||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>     break;<br>    }</P>
<P>    case "left":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>     if(head.x==0)<br>      head.x=19;<br>     else<br>      head.x=head.x-1;<br>     if(head.x==-1||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>     menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>     break;<br>    }</P>
<P>    case "right":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>     if(head.x==19)<br>      head.x=0;<br>     else<br>      head.x=head.x+1;<br>     if(head.x==20||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>     menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>     break;<br>    }<br>   }<br>   switch(sanke_fx[end.x,end.y])<br>   {<br>    case "up":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15+1,16,15);<br>     sanke_fx[end.x,end.y]="";<br>     if(end.y==0)<br>      end.y=19;<br>     else<br>      end.y=end.y-1;<br>     break;<br>    }</P>
<P>    case "down":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15,16,15);<br>     sanke_fx[end.x,end.y]="";<br>     if(end.y==19)<br>      end.y=0;<br>     else<br>      end.y=end.y+1;<br>     break;<br>    }</P>
<P>    case "left":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15+1,end.y*15,15,16);<br>     sanke_fx[end.x,end.y]="";<br>     if(end.x==0)end.x=19;<br>     else end.x=end.x-1;break;<br>    }</P>
<P>    case "right":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15,15,16);<br>     sanke_fx[end.x,end.y]="";<br>     if(end.x==19)<br>      end.x=0;<br>     else<br>      end.x=end.x+1;<br>     break;<br>    }<br>   }<br>  }<br></P>
[align=right][color=#000066][此贴子已经被作者于2006-4-23 16:34:29编辑过][/color][/align]

htzz 发表于 2006-4-15 13:41

<P><br>  public void yidong()<br>  {<br>   Graphics g=CreateGraphics();<br>   switch(Fanxian)<br>   {<br>    case "up":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>      head.y=head.y-1;<br>     if(head.y==-1||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>      return;<br>     }</P>
<P>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>     break;<br>    }</P>
<P>    case "down":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>      head.y=head.y+1;<br>     if(head.y==20||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>     break;<br>    }</P>
<P>    case "left":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>      head.x=head.x-1;<br>     if(head.x==-1||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>     break;<br>    }</P>
<P>    case "right":<br>    {<br>     sanke_fx[head.x,head.y]=Fanxian;<br>      head.x=head.x+1;<br>     if(head.x==20||xy[head.x,head.y]==1)<br>     {<br>      timer.Stop();<br>      menuItem4.Enabled=false;<br>      MessageBox.Show("GAME OVER,Length="+length.ToString()+".","Game Ovre!");<br>      return;<br>     }<br>     else if(xy[head.x,head.y]==2)<br>     {<br>      xy[head.x,head.y]=1;<br>      if(timer.Interval!=5)<br>       timer.Interval-=5;<br>      length+=1;<br>      food();<br>      g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>      g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>      return;<br>     }<br>     xy[head.x,head.y]=1;<br>     g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>     g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>     break;<br>    }<br>   }<br>   switch(sanke_fx[end.x,end.y])<br>   {<br>    case "up":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15+1,16,15);<br>     sanke_fx[end.x,end.y]="";<br>     end.y=end.y-1;<br>     break;<br>    }</P>
<P>    case "down":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15,16,15);<br>     sanke_fx[end.x,end.y]="";<br>     end.y=end.y+1;<br>     break;<br>    }</P>
<P>    case "left":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15+1,end.y*15,15,16);<br>     sanke_fx[end.x,end.y]="";<br>     if(end.x==0)<br>      end.x=19;<br>     else<br>      end.x=end.x-1;<br>     break;<br>    }</P>
<P>    case "right":<br>    {<br>     xy[end.x,end.y]=0;<br>     g.FillRectangle(new SolidBrush(Color.White),end.x*15,end.y*15,15,16);<br>     sanke_fx[end.x,end.y]="";<br>      end.x=end.x+1;<br>     break;<br>    }<br>   }<br>  }</P>
<P>  public void start()<br>  {<br>   Graphics g=CreateGraphics();<br>   g.FillRectangle(new SolidBrush(Color.White),0,0,400,400);<br>   for(int i=0;i&lt;=19;i++)<br>    for(int j=0;j&lt;=19;j++)<br>    {<br>     xy[i,j]=0;<br>     sanke_fx[i,j]="";<br>    }<br>   for(int i=1;i&lt;=4;i++)<br>   {<br>    xy[i,1]=1;<br>    sanke_fx[i,1]="right";<br>   }<br>   head.x=4; head.y=1;<br>   end.x=1; end.y=1;<br>   length=4;<br>   Fanxian="right";<br>   food();<br>   timer.Interval=200;<br>   if(menuItem4.Text=="暂停")<br>    timer.Start();<br>   menuItem4.Enabled=true;<br>  }</P>
<P>  public void draw()<br>  {<br>   Graphics g=CreateGraphics();<br>   for(int x=0;x&lt;=19;x++)<br>    for(int y=0;y&lt;=19;y++)<br>     switch(sanke_fx[x,y])<br>     {<br>      case "up":<br>       g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>       g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>       break;<br>      case "down":<br>       g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,14,15);<br>       g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,14,15);<br>       break;<br>      case "left":<br>       g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>       g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>       break;<br>      case "right":<br>       g.FillRectangle(new SolidBrush(Color.Yellow),head.x*15,head.y*15,15,14);<br>       g.DrawRectangle(new Pen(Color.Black),head.x*15,head.y*15,15,14);<br>       break;<br>     }<br>  }<br></P>
[align=right][color=#000066][此贴子已经被作者于2006-4-23 16:35:36编辑过][/color][/align]

htzz 发表于 2006-4-15 13:42


<P><br>  int length;<br>  int [,]xy=new int[20,20];<br>  string [,]sanke_fx=new string[20,20];<br>  string fanxian;</P>
<P>  sankebody head=new sankebody(4,1);<br>  sankebody end=new sankebody(1,1);</P>
<P><br>  private System.Windows.Forms.Timer timer;<br>  private System.Windows.Forms.MainMenu mainMenu1;<br>  private System.Windows.Forms.MenuItem menuItem1;<br>  private System.Windows.Forms.MenuItem menuItem2;<br>  private System.Windows.Forms.MenuItem menuItem3;<br>  private System.Windows.Forms.MenuItem menuItem4;<br>  private System.Windows.Forms.MenuItem menuItem5;<br>  private System.Windows.Forms.MenuItem menuItem6;<br>  private System.Windows.Forms.PictureBox radish;<br>  private System.Windows.Forms.PictureBox apple;<br>  private System.Windows.Forms.PictureBox watermelon;<br>  private System.Windows.Forms.PictureBox banana;<br>  private System.Windows.Forms.MenuItem menuItem7;<br>  private System.ComponentModel.IContainer components;</P>
<P>  public Form1()<br>  {<br>   for(int i=1;i&lt;=4;i++)<br>   {<br>    xy[i,1]=1;<br>    sanke_fx[i,1]="right";<br>   }<br>   length=4;<br>   Fanxian="right";</P>
<P>   InitializeComponent();<br>   food();</P>
<P>  }</P>
<P>  /// &lt;summary&gt;<br>  /// 清理所有正在使用的资源。<br>  /// &lt;/summary&gt;<br>  protected override void Dispose( bool disposing )<br>  {<br>   if( disposing )<br>   {<br>    if (components != null) <br>    {<br>     components.Dispose();<br>    }<br>   }<br>   base.Dispose( disposing );<br>  }</P>
<P>  #region Windows 窗体设计器生成的代码<br>  /// &lt;summary&gt;<br>  /// 设计器支持所需的方法 - 不要使用代码编辑器修改<br>  /// 此方法的内容。<br>  /// &lt;/summary&gt;<br>  private void InitializeComponent()<br>  {<br>   this.components = new System.ComponentModel.Container();<br>   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));<br>   this.timer = new System.Windows.Forms.Timer(this.components);<br>   this.mainMenu1 = new System.Windows.Forms.MainMenu();<br>   this.menuItem1 = new System.Windows.Forms.MenuItem();<br>   this.menuItem2 = new System.Windows.Forms.MenuItem();<br>   this.menuItem3 = new System.Windows.Forms.MenuItem();<br>   this.menuItem4 = new System.Windows.Forms.MenuItem();<br>   this.menuItem6 = new System.Windows.Forms.MenuItem();<br>   this.menuItem5 = new System.Windows.Forms.MenuItem();<br>   this.radish = new System.Windows.Forms.PictureBox();<br>   this.apple = new System.Windows.Forms.PictureBox();<br>   this.watermelon = new System.Windows.Forms.PictureBox();<br>   this.banana = new System.Windows.Forms.PictureBox();<br>   this.menuItem7 = new System.Windows.Forms.MenuItem();<br>   this.SuspendLayout();<br>   // <br>   // timer<br>   // <br>   this.timer.Enabled = true;<br>   this.timer.Interval = 200;<br>   this.timer.Tick += new System.EventHandler(this.time_Tick);<br>   // <br>   // mainMenu1<br>   // <br>   this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br>                       this.menuItem1,<br>                       this.menuItem4,<br>                       this.menuItem6,<br>                       this.menuItem5});<br>   // <br>   // menuItem1<br>   // <br>   this.menuItem1.Index = 0;<br>   this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br>                       this.menuItem2,<br>                       this.menuItem3});<br>   this.menuItem1.Text = "文件";<br>   // <br>   // menuItem2<br>   // <br>   this.menuItem2.Index = 0;<br>   this.menuItem2.Text = "开始游戏";<br>   this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);<br>   // <br>   // menuItem3<br>   // <br>   this.menuItem3.Index = 1;<br>   this.menuItem3.Text = "退出";<br>   this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);<br>   // <br>   // menuItem4<br>   // <br>   this.menuItem4.Index = 1;<br>   this.menuItem4.Text = "暂停";<br>   this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);<br>   // <br>   // menuItem6<br>   // <br>   this.menuItem6.Index = 2;<br>   this.menuItem6.Text = "有墙模式";<br>   this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);<br>   // <br>   // menuItem5<br>   // <br>   this.menuItem5.Index = 3;<br>   this.menuItem5.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br>                       this.menuItem7});<br>   this.menuItem5.Text = "帮助";<br>   // <br>   // radish<br>   // <br>   this.radish.Image = ((System.Drawing.Image)(resources.GetObject("radish.Image")));<br>   this.radish.Location = new System.Drawing.Point(136, 168);<br>   this.radish.Name = "radish";<br>   this.radish.Size = new System.Drawing.Size(15, 15);<br>   this.radish.TabIndex = 0;<br>   this.radish.TabStop = false;<br>   // <br>   // apple<br>   // <br>   this.apple.Image = ((System.Drawing.Image)(resources.GetObject("apple.Image")));<br>   this.apple.Location = new System.Drawing.Point(136, 168);<br>   this.apple.Name = "apple";<br>   this.apple.Size = new System.Drawing.Size(16, 16);<br>   this.apple.TabIndex = 1;<br>   this.apple.TabStop = false;<br>   // <br>   // watermelon<br>   // <br>   this.watermelon.Image = ((System.Drawing.Image)(resources.GetObject("watermelon.Image")));<br>   this.watermelon.Location = new System.Drawing.Point(136, 168);<br>   this.watermelon.Name = "watermelon";<br>   this.watermelon.Size = new System.Drawing.Size(16, 16);<br>   this.watermelon.TabIndex = 2;<br>   this.watermelon.TabStop = false;<br>   // <br>   // banana<br>   // <br>   this.banana.Image = ((System.Drawing.Image)(resources.GetObject("banana.Image")));<br>   this.banana.Location = new System.Drawing.Point(136, 168);<br>   this.banana.Name = "banana";<br>   this.banana.Size = new System.Drawing.Size(16, 16);<br>   this.banana.TabIndex = 3;<br>   this.banana.TabStop = false;<br>   // <br>   // menuItem7<br>   // <br>   this.menuItem7.Index = 0;<br>   this.menuItem7.Text = "关于";<br>   this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);<br>   // <br>   // Form1<br>   // <br>   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);<br>   this.BackColor = System.Drawing.SystemColors.ActiveCaptionText;<br>   this.ClientSize = new System.Drawing.Size(301, 321);<br>   this.Controls.Add(this.watermelon);<br>   this.Controls.Add(this.apple);<br>   this.Controls.Add(this.radish);<br>   this.Controls.Add(this.banana);<br>   this.MaximizeBox = false;<br>   this.MaximumSize = new System.Drawing.Size(309, 355);<br>   this.Menu = this.mainMenu1;<br>   this.MinimumSize = new System.Drawing.Size(309, 355);<br>   this.Name = "Form1";<br>   this.Text = "贪吃蛇";<br>   this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);<br>   this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);<br>   this.Load += new System.EventHandler(this.Form1_MouseEnter);<br>   this.MouseEnter += new System.EventHandler(this.Form1_MouseEnter);<br>   this.ResumeLayout(false);</P>
<P>  }</P>
[align=right][color=#000066][此贴子已经被作者于2006-4-23 16:40:04编辑过][/color][/align]

htzz 发表于 2006-4-15 13:42

<P><br>  #endregion</P>
<P>  /// &lt;summary&gt;<br>  /// 应用程序的主入口点。<br>  /// &lt;/summary&gt;<br>  [STAThread]<br>  static void Main() <br>  {<br>   Application.Run(new Form1());<br>  }<br>  <br>  bool b;</P>
<P>  private void time_Tick(object sender, System.EventArgs e)<br>  {<br>   Font f=new Font("Arial", 13);<br>   Graphics g=CreateGraphics();<br>   g.FillRectangle(new SolidBrush(Color.White),255,15,20,15);<br>   g.DrawString(length.ToString(),f,new SolidBrush(Color.Black), new Point(255, 12));<br>   b=true;<br>   if(b1==true)<br>    yidong();<br>   else<br>    yidong1();<br>  }</P>
<P><br>  public string Fanxian<br>  {<br>   get<br>   {<br>    return fanxian;<br>   }<br>   set <br>   {<br>    fanxian=value;<br>   }<br>  }</P>
<P>  private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)<br>  {<br>   if(b==false||menuItem4.Text!="暂停")<br>    return;<br>   if (e.KeyCode==Keys.Up)<br>   {<br>    if (Fanxian!="down")<br>     Fanxian="up";<br>   }<br>   else if (e.KeyCode==Keys.Down)<br>   {<br>    if (Fanxian!="up")<br>    {<br>     Fanxian="down";<br>    }<br>   }<br>   else if (e.KeyCode==Keys.Left)<br>   {<br>    if (Fanxian!="right")<br>    {<br>     Fanxian= "left";<br>    }<br>   }<br>   else if (e.KeyCode==Keys.Right)<br>   {<br>    if (Fanxian!="left")<br>    {<br>     Fanxian= "right";<br>    }<br>   }<br>            b=false;  <br>  }</P>
<P>  private void menuItem4_Click(object sender, System.EventArgs e)<br>  {<br>   if(this.menuItem4.Text=="暂停")<br>   {<br>    timer.Stop();<br>    this.menuItem4.Text="继续";<br>   }<br>   else<br>   {<br>    timer.Start();<br>    this.menuItem4.Text="暂停";<br>   }<br>  }</P>
<P>  private void menuItem2_Click(object sender, System.EventArgs e)<br>  {<br>   start();<br>  }</P>
<P>  private void menuItem3_Click(object sender, System.EventArgs e)<br>  {<br>   Application.Exit();<br>  }</P>
<P>  private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)<br>  {<br>   if(b==false||menuItem4.Text!="暂停")<br>    return;<br>   if(e.Button==MouseButtons.Left)<br>    switch(Fanxian)<br>    {<br>     case "up":Fanxian="left";break;<br>     case "down":Fanxian="left";break;<br>     case "left":Fanxian="up";break;<br>     case "right":Fanxian="up";break;<br>    }<br>   else if(e.Button==MouseButtons.Right)<br>    switch(Fanxian)<br>    {<br>     case "down":Fanxian="right";break;<br>     case "up":Fanxian="right";break;<br>     case "right":Fanxian="down";break;<br>     case "left":Fanxian="down";break;<br>    }<br>   b=false;<br>  }</P>
<P>  private void Form1_MouseEnter(object sender, System.EventArgs e)<br>  {<br>   draw();<br>  }</P>
<P>  bool b1=true;<br>  private void menuItem6_Click(object sender, System.EventArgs e)<br>  {<br>   if(b1==true)<br>   {<br>    b1=!b1;<br>    menuItem6.Text="无墙模式";<br>   }<br>   else<br>   {<br>    b1=!b1;<br>    menuItem6.Text="有墙模式";<br>   }<br>  }</P>
<P>  private void menuItem7_Click(object sender, System.EventArgs e)<br>  {<br>   MessageBox.Show("贪吃蛇大家一定玩吧,刚学编程就写几个程序炼炼手脚。\n请大家多多指教。\n     不锈钢\n    <a href="mailto:ht.zz@126.com" target="_blank" >ht.zz@126.com</A>");<br>  }<br> }</P>
<P> public class sankebody<br> {<br>  public int x=0;<br>  public int y=0;<br>  public sankebody(int x,int y)<br>  {<br>   this.x=x;<br>   this.y=y;<br>  }<br> }<br>}<br></P>
[align=right][color=#000066][此贴子已经被作者于2006-4-23 16:39:22编辑过][/color][/align]

幸福的小伟 发表于 2006-4-17 15:36

我是初学者,楼主挺厉害的,有注释就更好了!

zhzhxtrrk 发表于 2006-4-17 18:38

给楼主个建议,你可以用屏合成技术来消除闪烁,也可以使用DirectX技术来绘制图形。

xtceetg 发表于 2006-4-18 12:37

<P>楼主学C#多长时间了,我刚刚学习,有很多地方不是很清楚。不知道要不要学习一下C++。请楼主赐教</P>

moderndai 发表于 2006-4-18 20:34

楼主学C#多少时间了,我也想问这个问题!哈哈

moderndai 发表于 2006-4-18 20:36

<P>加我QQ吧!305177926,交流下 </P>

Sidney 发表于 2006-4-19 20:53

弱弱的问一句。。。怎么才能编译出在没装framework的机子上能运行的程序???[em04]

潇洒草 发表于 2006-4-20 20:53

呵呵,不错啊,我也只得了35分!~

donst 发表于 2006-4-21 10:04

我,24分,难度太高了

htzz 发表于 2006-4-23 16:55

<DIV class=quote><B>
<DIV class=quote><B>以下是引用<U>zhzhxtrrk</U>在2006-4-17 18:38:00的发言:</B><br>给楼主个建议,你可以用屏合成技术来消除闪烁,也可以使用DirectX技术来绘制图形。</DIV></B>谢谢你的建议。</DIV>
[align=right][color=#000066][此贴子已经被作者于2006-4-24 17:27:23编辑过][/color][/align]

htzz 发表于 2006-4-23 16:56

我是自学的,学了几个月。<BR>现在很少上QQ了,不过交流一下也好<BR>  118156247<BR><a href="mailto:ht.zz@126.com" target="_blank" >ht.zz@126.com</A><BR>谢谢大家的支持。

htzz 发表于 2006-4-23 16:57

<DIV class=quote><B>以下是引用<U>Sidney</U>在2006-4-19 20:53:00的发言:</B><br>弱弱的问一句。。。怎么才能编译出在没装framework的机子上能运行的程序???[em04]</DIV>
<P><br>.net framework是必要的.因为除了windons2003外的系统都没有捆绑这个运行库[em01]</P>
[align=right][color=#000066][此贴子已经被作者于2006-4-23 16:57:14编辑过][/color][/align]

syonch 发表于 2006-5-11 23:46

有代码??

sh600700 发表于 2006-7-13 16:10

没有注释的代码就是垃圾~~

hayson2005 发表于 2006-7-14 11:48

自学??学几个月??好强啊.

prier 发表于 2008-6-30 11:20

hy

[tk04] [tk07]  [tk07] [tk08] [tk08]

页: [1] 2

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.