前言

  说到贪吃蛇,大家可能小时候都玩过,小菜最近在整理Winfrom的学习系列,那我觉得有兴趣才会有学习,就从这个小游戏讲起吧。

实现

  其实我刚开始学习编程的时候,感觉写个贪吃蛇的程序会很难,因为涉及到画图什么的,其实现在来看,实现很简单。

  实现贪吃蛇首先有几个元素:

  • 食物

  然后有几个行为:

  • 吃食物和吃不到食物
  • 撞墙和撞自己

  说到这有点oo的意思啊,这篇就不啰嗦,只是简单实现,下篇会优化下。

  其实整个贪吃蛇的难点就在于画图,可能用其他语言实现有点复杂,但是强大的.net提供了GDI+绘图机制,实现起来就很方便了,其次就是细节的处理,比如坐标的定位,蛇的行走路线等。

  我们简单一点来看,食物可以看成一个小方格,蛇是有N个小方格组成,那我们就可以用GDI+这样实现:

         /// <summary>
/// 画一个小方块
/// </summary>
public void DrawShape(int x, int y)
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Blue, );
g.DrawRectangle(pen, x, y, , );
g.FillRectangle(Brushes.Green, x, y, , );
} /// <summary>
/// 画一个食物
/// </summary>
public void DrawFood(int x, int y)
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Red, );
SolidBrush brush = new SolidBrush(Color.Green);
g.DrawRectangle(pen, x, y, , );
g.FillRectangle(brush, x, y, , );
}

  Graphics这个类我就不多说,大家可以看看MSDN上介绍的用法,上面是画蛇的最小单元-方格,和一个食物方格,蛇的方格大小是15*15,边框颜色是Blue,填充色是Green;食物方格的大小是15*15,边框颜色是Red,填充色是Green。

  画好了基本元素,那下面就是用基本元素来表现蛇了,可以用Point数组来存储蛇的坐标,也就是每个方格的坐标,我们先看下代码:

         /// <summary>
/// 设置Point数组坐标
/// </summary>
public void Forward(int drt)
{
Point temp = snakeArr[]; for (int i = snakeLen-; i > ; i--)
{
snakeArr[i].X = snakeArr[i - ].X;
snakeArr[i].Y = snakeArr[i - ].Y;
}
switch (drt)
{
case :
snakeArr[].X = temp.X;
snakeArr[].Y = temp.Y - ;
break; //上
case :
snakeArr[].X = temp.X + ;
snakeArr[].Y = temp.Y;
break; //右
case :
snakeArr[].X = temp.X;
snakeArr[].Y = temp.Y + ;
break; //下
case :
snakeArr[].X = temp.X - ;
snakeArr[].Y = temp.Y;
break; //左
}
}

  drt参数是键盘上上下左右键对应的数字,snakeLen是数组的长度也就是方格的个数,上面那个for循环主要的作用是把前一个数组的坐标赋值给下一个,就像是毛毛虫爬行一样,后一节会按照前一节的路线来爬,下面那个switch的作用是,设置蛇头的行进路线。

  再下面就是判断蛇是否吃到食物、是否撞到墙和撞到自己,因为蛇和食物都是用坐标存储的,所以只要判断蛇头坐标是否等于食物坐标就可以了:

         /// <summary>
/// 判断是否吃到食物
/// </summary>
public bool EatedFoot(Point FoodLct)
{
if (snakeArr[].X == FoodLct.X && snakeArr[].Y == FoodLct.Y)
{
if (snakeLen < SnakeMaxLength)
{
snakeLen++;
snakeArr[snakeLen].X = snakeArr[snakeLen - ].X;
snakeArr[snakeLen].Y = snakeArr[snakeLen - ].Y;
}
return true;
}
else
return false;
} /// <summary>
/// 判断是否撞到自己
/// </summary>
public bool CheckSnakeHeadInSnakeBody()
{
return this.CheckInSnakeBody(this.snakeArr[].X, this.snakeArr[].Y, );
}
/// <summary>
/// 检查输入的坐标是否在蛇的身上
/// </summary>
public bool CheckInSnakeBody(int x, int y, int snkHead)
{
for (int i = snkHead; i < snakeLen; i++)
{
if (x == this.snakeArr[i].X && y == this.snakeArr[i].Y)
{
return true;
}
}
return false;
} /// <summary>
/// 判断是否撞墙
/// </summary>
/// <returns></returns>
public bool CheckSnakeBodyInFrm()
{
if (this.snakeArr[].X >= || this.snakeArr[].Y >= - || this.snakeArr[].X < || this.snakeArr[].Y < )
return true;
else
return false;
}

  实现上面的几个步骤,简单版的贪吃蛇基本上就完成了,再加上一个timer控件,这样蛇就会“动”起来了,就这么简单。

  完整代码:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace 贪吃蛇自练_GDI_
{
public partial class Form1 : Form
{
public Point FoodLct = new Point();//缓存食物的坐标
public int snakeLen=;
public const int SnakeMaxLength = ;
public Point[] snakeArr = new Point[SnakeMaxLength];
public int snakeDrt = ;
public bool panDuan = true; public Form1()
{
InitializeComponent(); int temp = ;
for (int i = snakeLen - ; i >= ; i--)
{
snakeArr[i].X = temp;
snakeArr[i].Y = ;
temp += ;
}
} /// <summary>
/// 画一个小方块
/// </summary>
public void DrawShape(int x, int y)
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Blue, );
g.DrawRectangle(pen, x, y, , );
g.FillRectangle(Brushes.Green, x, y, , );
} /// <summary>
/// 画一个食物
/// </summary>
public void DrawFood(int x, int y)
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Red, );
SolidBrush brush = new SolidBrush(Color.Green);
g.DrawRectangle(pen, x, y, , );
g.FillRectangle(brush, x, y, , );
} /// <summary>
/// 设置Point数组坐标
/// </summary>
public void Forward(int drt)
{
Point temp = snakeArr[]; for (int i = snakeLen-; i > ; i--)
{
snakeArr[i].X = snakeArr[i - ].X;
snakeArr[i].Y = snakeArr[i - ].Y;
}
switch (drt)
{
case :
snakeArr[].X = temp.X;
snakeArr[].Y = temp.Y - ;
break; //上
case :
snakeArr[].X = temp.X + ;
snakeArr[].Y = temp.Y;
break; //右
case :
snakeArr[].X = temp.X;
snakeArr[].Y = temp.Y + ;
break; //下
case :
snakeArr[].X = temp.X - ;
snakeArr[].Y = temp.Y;
break; //左
}
} /// <summary>
/// 时间事件
/// </summary>
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(Color.DarkKhaki);//清除整个画面 Forward(snakeDrt);
for (int i = ; i < snakeLen; i++)
{
DrawShape(snakeArr[i].X, snakeArr[i].Y);
} if (panDuan)
{
ShowFood();
//DrawFood(FoodLct.X, FoodLct.Y);
panDuan = false;
} if (EatedFoot(FoodLct))
{
ShowFood();
DrawFood(FoodLct.X, FoodLct.Y);
}
else
{
DrawFood(FoodLct.X, FoodLct.Y);
} if (CheckSnakeHeadInSnakeBody() || CheckSnakeBodyInFrm())
{
this.timer1.Enabled = false;
MessageBox.Show("游戏结束!");
}
} /// <summary>
/// 按下方向键
/// </summary>
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
snakeDrt = ;
else if (e.KeyCode == Keys.Down)
snakeDrt = ;
else if (e.KeyCode == Keys.Right)
snakeDrt = ;
else if (e.KeyCode == Keys.Left)
snakeDrt = ;
} /// <summary>
/// 判断是否撞到自己
/// </summary>
public bool CheckSnakeHeadInSnakeBody()
{
return this.CheckInSnakeBody(this.snakeArr[].X, this.snakeArr[].Y, );
}
/// <summary>
/// 检查输入的坐标是否在蛇的身上
/// </summary>
public bool CheckInSnakeBody(int x, int y, int snkHead)
{
for (int i = snkHead; i < snakeLen; i++)
{
if (x == this.snakeArr[i].X && y == this.snakeArr[i].Y)
{
return true;
}
}
return false;
} /// <summary>
/// 判断是否撞墙
/// </summary>
/// <returns></returns>
public bool CheckSnakeBodyInFrm()
{
if (this.snakeArr[].X >= || this.snakeArr[].Y >= - || this.snakeArr[].X < || this.snakeArr[].Y < )
return true;
else
return false;
} /// <summary>
/// 随机显示食物
/// </summary>
public void ShowFood()
{
Random rmd = new Random();
int x, y;
x = rmd.Next(, this.Width/)*;
y = rmd.Next(, this.Height/)*;
//while (this.CheckInSnakeBody(x, y, 1))
//{
// x = rmd.Next(0, 32) * 15;
// y = 32 + rmd.Next(0, 30) * 15;
//}
FoodLct.X = x;
FoodLct.Y = y;
} /// <summary>
/// 判断是否吃到食物
/// </summary>
public bool EatedFoot(Point FoodLct)
{
if (snakeArr[].X == FoodLct.X && snakeArr[].Y == FoodLct.Y)
{
if (snakeLen < SnakeMaxLength)
{
snakeLen++;
snakeArr[snakeLen].X = snakeArr[snakeLen - ].X;
snakeArr[snakeLen].Y = snakeArr[snakeLen - ].Y;
}
return true;
}
else
return false;
}
}
}

  运行截图:

aaarticlea/png;base64,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" alt="" />

  程序下载:贪吃蛇

  附录:小菜学习编程-Winform系列(初学者)

后记

  其实这个简单的小程序需要做的优化有很多,比如上面说的oo,得分模式,蛇行进加速模式等等,希望在下篇来完成。

小菜学习Winform(一)贪吃蛇的更多相关文章

  1. 小菜学习Winform(一)贪吃蛇2

    前言 上一篇<小菜学习Winform(一)贪吃蛇>中实现了简单版的贪吃蛇,在文章末也提到需要优化的地方,比如使用oo.得分模式.速度加快模式和减少界面重绘.因为是优化篇,实现方式上一篇有, ...

  2. 小菜学习Winform(七)系统托盘

    前言 有些程序在关闭或最小化的时候会隐藏在系统托盘中,双击或右击会重新显示,winform实现其功能很简单,这边就简单的介绍下. 实现 在winform实现托盘使用notifyIcon控件,如果加菜单 ...

  3. 小菜学习Winform(六)剪切板和拖放复制

    前言 在做winform项目的时候有时候会用到复制粘贴,在.net中提供了Clipboard类来操作剪切板,我们来看下. clipbrd.exe clipbrd是系统剪切板程序,但是在vista及以上 ...

  4. 小菜学习Winform(五)窗体间传递数据

    前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...

  5. 小菜学习Winform(四)MDI窗体(附示例)

    前言 在做winfrom项目的时候我们可能会用到嵌套窗体,就是说一个容器中有多个窗体,可以分别管理和应用这些窗体,.net中提供了一种机制就是MDI,可能大家都会用,这边就简单的介绍下. 简单应用 w ...

  6. 小菜学习Winform(三)Socket点对点通信

    前言 Socket的英文原义是“孔”或“插座”,其实在网络编程中Socket就是这个意思,就像我们打电话,要首先知道对方的手机号一样,这个手机号就相当于一个Socket号.一个插座,在网络编程中就是i ...

  7. 小菜学习Winform(二)WMPLib实现音乐播放器

    前言 现在网上有很多的音乐播放器,但好像都不是.net平台做的,在.net中实现音乐文件的播放功能很简单,下面就简单实现下. SoundPlayer类 在.net提供了音乐文件的类:SoundPlay ...

  8. 小菜学习编程-Winform系列(初学者)

    前言 记得上次写<小菜的程序员道路(二)>,这篇文章的时候说过,要把工作以来整理的编程知识分享给大家,因为这半年来的工作实在是忙,现在也在忙着公司产品上线,但是答应的一定要实现,大家看我上 ...

  9. 贪吃蛇的java代码分析(一)

    自我审视 最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步.今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天 ...

随机推荐

  1. sublime text 插件(前端自用)

    一.软件安装 ST中文论坛:http://sublimetext.iaixue.com/  或者 http://sublimetext.iaixue.com/dl/#sublime_text_3103 ...

  2. 设计模式(十二):bridge模式

    刚开始看到这个模式并不是很理解,之后在网上看到别人的博客,才大致抓住了脉络. 何谓抽象和实现分离:就是将一个实际的物件跟它的所具有的功能分离.<大话设计模式>中有对手机品牌和具体的手机应用 ...

  3. bfs codeforces 754B Ilya and tic-tac-toe game

    这题简直把我坑死了 所有的坑都被我中了 题意: 思路:bfs or 模拟 模拟似乎没有什么坑 但是bfs真的是坑 AC代码: #include "iostream" #includ ...

  4. backbone新手填坑教程资源

    backbone 入门第二版 http://www.kancloud.cn/kancloud/backbonejs-learning-note/49379 backbone 入门讲解 http://w ...

  5. 360急速浏览器BUG,POST表单提交参数丢失

    p{text-indent:2em;} --> 今天我在做支付宝充值的时候发现在360急速浏览器下面业务处理页面获取Request.Form参数为空,一开始我还以为是自己参数没有传递过去.然后就 ...

  6. php-(/usr/local/php)安装编译选项

    ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ ...

  7. SageCRM 页面加载完后,用下拉框联动修改放大镜字段的取值范围

    原理很简单就是修改放大镜属性中的sql. 函数如下:第一个参数是字段的名称.第二个参数是需要控制这个放大镜的sql.可以跟进下拉框的值来组织这个sql. /*--------------- For C ...

  8. mysql解决其他服务器不可连接问题

    在安装mysql的机器上运行: 1.d:\mysql\bin\>mysql   -h   localhost   -u   root //这样应该可以进入MySQL服务器 2.mysql> ...

  9. 使用Aspose.Cells读取Excel

      最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...

  10. 另类的表单数据"序列化"

    背景:最近在做项目时,由于编辑页面需要提交的数据量有些多,而且在提交前还需要做一些逻辑处理,所以如果按照正常的方式,一个个的获取值然后拼接json对象传到后台的话相对工作量较大,而且容易出错,后期的维 ...