贪吃蛇游戏课程设计实验报告 联系客服

发布时间 : 星期五 文章贪吃蛇游戏课程设计实验报告更新完毕开始阅读491db01128ea81c759f57858

lb0.Top = 50; lb0.Left = left; wall.Add(lb0); left -= 10; } }

public void CreateWall1() {

int left = 200; Label lb1;

for (int i = 0; i < 10; i++) {

lb1 = new Label();

lb1.Name = \ lb1.BackColor = Color.Red; lb1.Width = 10; lb1.Height = 10; lb1.Top = 310; lb1.Left = left; wall1.Add(lb1); left -= 10; } }

public void CreateWall2() {

int top = 200; Label lb2;

for (int i = 0; i < 10; i++) {

lb2 = new Label();

lb2.Name = \ lb2.BackColor = Color.Red; lb2.Width = 10; lb2.Height = 10; lb2.Left = 50; lb2.Top = top; wall2.Add(lb2); top -= 10; } }

public void CreateWall3() {

int top = 200; Label lb3;

for (int i = 0; i < 10; i++) {

lb3 = new Label();

15

lb3.Name = \ lb3.BackColor = Color.Red; lb3.Width = 10; lb3.Height = 10; lb3.Left = 260; lb3.Top = top; wall3.Add(lb3); top -= 10; } }

//创建食物

public void CreateFood() {

Random rand = new Random();

food_p.X = rand.Next(36) * 10;//限定食物物所能出现的横坐标 food_p.Y = rand.Next(36) * 10;//限定食物物所能出现的横坐标 for (int i = 0; i < body.Count; i++) {

if (food_p.Y == ((Label)body[i]).Top && food_p.X == ((Label)body[i]).Left) {

this.CreateFood(); break; } }

//判断食物和所见障碍物是否重合 for (int i = 0; i < wall.Count; i++) {

if (food_p.Y == ((Label)this.Wall[i]).Top && food_p.X ==

((Label)this.Wall[i]).Left)

{

this.CreateFood(); }

else if (food_p.Y == ((Label)this.Wall1[i]).Top && food_p.X ==

((Label)this.Wall1[i]).Left)

{

this.CreateFood(); }

else if (food_p.X == ((Label)this.Wall2[i]).Left && food_p.Y ==

((Label)this.Wall2[i]).Top)

{

this.CreateFood(); }

else if (food_p.X == ((Label)this.Wall3[i]).Left && food_p.Y ==

((Label)this.Wall3[i]).Top)

{

this.CreateFood(); }

16

}

food = new Label(); food.Width = 10; food.Height = 10; food.Top = food_p.Y; food.Left = food_p.X; //加载食物图片

food.Image = Snake.Properties.Resources.food; }

//蛇吃食物 通过timer进行速度的设置

public Panel EatFood(Panel panel1, Timer timer1, TextBox textBox1, TextBox textBox2) {

if (((Label)body[0]).Top == food_p.Y && ((Label)body[0]).Left == food_p.X) {

panel1 = this.DeFood(panel1); Label lb = new Label();//增加蛇身

lb.Name = \ int i=body.Count%3; if(i==0)

lb.BackColor = Color.DimGray; else if(i==1)

lb.BackColor = Color.DeepPink; else

lb.BackColor = Color.DeepSkyBlue; lb.Width = 10; lb.Height = 10;

lb.Top = ((Label)body[body.Count - 1]).Top; lb.Left = ((Label)body[body.Count - 1]).Left; body.Add(lb);

textBox1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + 10); textBox2.Text = textBox1.Text;

if (Convert.ToInt32(textBox2.Text) < Convert.ToInt32(textBox1.Text)) textBox2.Text = textBox1.Text; //修改速度

if (textBox1.Text == \ timer1.Interval = 150;

else if (textBox1.Text == \ timer1.Interval = 100;

else if (textBox1.Text == \ timer1.Interval = 80;

else if (textBox1.Text == \ timer1.Interval = 50;

else if (textBox1.Text == \ timer1.Interval = 20; }

return panel1; }

17

//吃过后销毁再创建食物

public Panel DeFood(Panel panel1) {

panel1.Controls.Remove(food); this.CreateFood();

panel1.Controls.Add(food); return panel1; } } }

//Form 源代码: 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; using System.Collections; using System.Media;

namespace Snake {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

private snake sk = new snake(); //构造一个蛇的对象

private int dir = 3; //初始时要运动的方向(向右) private Point bomb_b; //定义炸弹 private Label bomb;

public void CreatBomb()//创建炸弹 {

Random rand = new Random(); bomb_b.X = rand.Next(20) * 10; bomb_b.Y = rand.Next(20) * 10; bomb = new Label(); bomb.Width = 10; bomb.Height = 10;

bomb.Top = bomb_b.Y; bomb.Left = bomb_b.X;

bomb.Image = Snake.Properties.Resources.b2; //判断随机炸弹是否与随机食物重合

if (bomb_b.X == sk.food_p.X && bomb_b.Y == sk.food_p.Y)

18