当前位置: 首页 > news >正文

福州网站改版西安整站优化

福州网站改版,西安整站优化,wordpress连接谷歌,专做农产品跨境的网站有贪吃蛇小时候大家都玩过,具体步骤如下: 1.给游戏制造一个有限得空间。 2.生成墙壁,小蛇碰撞到墙壁或者咬到自己的尾巴,游戏结束。 3.生成随机的食物。 4.吃掉食物,增加自身的体长,并生成新的食物。 具体代码如下&…

贪吃蛇小时候大家都玩过,具体步骤如下:
1.给游戏制造一个有限得空间。
2.生成墙壁,小蛇碰撞到墙壁或者咬到自己的尾巴,游戏结束。
3.生成随机的食物。
4.吃掉食物,增加自身的体长,并生成新的食物。

具体代码如下:
定义一个小蛇类,该类包含吃东西,移动,检测碰撞等方法。

class Snake
{private List<Point> _body;private Direction _direction;private int _step = 1;private Point _tail;public Snake(Point tail, int length, Direction direction){_direction = direction;_body = new List<Point>();for (int i = 0; i < length; i++){Point p = new Point(tail.X, tail.Y, tail.Symbol);p.Move(i, _direction);_body.Add(p);}_tail = _body.First();}public void Move(){Point head = GetNextPoint();_body.Add(head);_tail.Clear();_tail = _body.First();_body.RemoveAt(0);head.Draw();}public bool Eat(Point food){Point head = GetNextPoint();if (head.IsHit(food)){food.Symbol = head.Symbol;_body.Add(food);return true;}return false;}public void HandleKey(ConsoleKey key){if (key == ConsoleKey.LeftArrow && _direction != Direction.Right){_direction = Direction.Left;}else if (key == ConsoleKey.RightArrow && _direction != Direction.Left){_direction = Direction.Right;}else if (key == ConsoleKey.UpArrow && _direction != Direction.Down){_direction = Direction.Up;}else if (key == ConsoleKey.DownArrow && _direction != Direction.Up){_direction = Direction.Down;}}public Point GetNextPoint(){Point head = _body.Last();Point nextPoint = new Point(head.X, head.Y, head.Symbol);nextPoint.Move(_step, _direction);return nextPoint;}public void Draw(){foreach (Point p in _body){p.Draw();}}public bool IsHitTail(){Point head = _body.Last();for (int i = 0; i < _body.Count - 2; i++){if (head.IsHit(_body[i])){return true;}}return false;}
}

定义一个墙体类:

class Walls
{private List<Point> _wallList;public Walls(int mapWidth, int mapHeight){_wallList = new List<Point>();DrawHorizontalLine(0);DrawHorizontalLine(mapHeight - 1);DrawVerticalLine(0);DrawVerticalLine(mapWidth - 1);}private void DrawHorizontalLine(int y){for (int x = 0; x < Console.WindowWidth; x++){Point p = new Point(x, y, '#');p.Draw();_wallList.Add(p);}}private void DrawVerticalLine(int x){for (int y = 0; y < Console.WindowHeight; y++){Point p = new Point(x, y, '#');p.Draw();_wallList.Add(p);}}public bool IsHit(Snake snake){Point head = snake.GetNextPoint();return IsHit(head);}private bool IsHit(Point p){return _wallList.Any(w => w.IsHit(p));}public void Draw(){foreach (Point p in _wallList){p.Draw();}}
}

定义一个创建食物类:

class FoodCreator
{private readonly int _mapWidth;private readonly int _mapHeight;private readonly char _symbol;public FoodCreator(int mapWidth, int mapHeight, char symbol){_mapWidth = mapWidth;_mapHeight = mapHeight;_symbol = symbol;}public Point CreateFood(){int x = new Random().Next(2, _mapWidth - 2);int y = new Random().Next(2, _mapHeight - 2);return new Point(x, y, _symbol);}
}

定义一个枚举,表示方向:

enum Direction
{Left,Right,Up,Down
}

定义一个坐标类应用重绘:

class Point
{public int X { get; set; }public int Y { get; set; }public char Symbol { get; set; }public Point(int x, int y, char symbol){X = x;Y = y;Symbol = symbol;}public void Draw(){Console.SetCursorPosition(X, Y);Console.Write(Symbol);}public void Clear(){Symbol = ' ';Draw();}public void Move(int offset, Direction direction){if (direction == Direction.Right){X += offset;}else if (direction == Direction.Left){X -= offset;}else if (direction == Direction.Up){Y -= offset;}else if (direction == Direction.Down){Y += offset;}}public bool IsHit(Point p){return p.X == X && p.Y == Y;}
}

函数入口:

class Program
{static void Main(){Console.Title = "贪吃蛇游戏";Console.CursorVisible = false;Console.SetWindowSize(40, 20);Console.SetBufferSize(40, 20);Walls walls = new Walls(40, 20);walls.Draw();Snake snake = new Snake(new Point(6, 5, '*'),1,Direction.Down);snake.Draw();FoodCreator foodCreator = new FoodCreator(40, 20, '$');Point food = foodCreator.CreateFood();food.Draw();while (true){if (walls.IsHit(snake) || snake.IsHitTail()){break;}if (snake.Eat(food)){food = foodCreator.CreateFood();food.Draw();}else{snake.Move();}System.Threading.Thread.Sleep(100);if (Console.KeyAvailable){ConsoleKeyInfo key = Console.ReadKey();snake.HandleKey(key.Key);}}WriteGameOver();Console.ReadLine();}static void WriteGameOver(){int xOffset = 10;int yOffset = 8;Console.ForegroundColor = ConsoleColor.Red;Console.SetCursorPosition(xOffset, yOffset++);WriteText("========", xOffset, yOffset++);WriteText("GAME OVER", xOffset + 1, yOffset++);yOffset++;WriteText("========", xOffset, yOffset++);}static void WriteText(String text, int xOffset, int yOffset){Console.SetCursorPosition(xOffset, yOffset);Console.WriteLine(text);}
}

运行效果图:
请添加图片描述
请添加图片描述

http://www.zhongyajixie.com/news/29195.html

相关文章:

  • 做微商都去哪些网站留言今日热搜头条
  • 盐田做网站怎么在百度推广
  • 如何自己做自己的网站软文怎么写比较吸引人
  • 湖北建设合肥网络seo
  • 网络营销方式?西安百度网站快速优化
  • 做山西杂粮的网站网络营销活动策划
  • 怎么知道一个网站是哪家公司做的b站免费建网站
  • 如何自学网站建设书籍seo软件优化工具软件
  • seo 网站标题字数看书网站排名
  • 大连旅游网站建设新出的app推广在哪找
  • 网站快速排名服务商公司网站seo公司
  • wordpress rss已删除seo虚拟外链
  • 做微博类的网站难吗网络搭建的基本流程
  • wordpress jquery ui讯展网站优化推广
  • 哪里有做网站服务商东莞做网站公司首选
  • 网站对联广告html代码市场调研怎么做
  • 网站域名怎么看上海知名seo公司
  • 网站菜单怎么做济宁seo推广
  • 云南哪有网站建设推广简述网站推广的方式
  • 专业网站建设电话厦门关键词排名提升
  • 那里可以做工作室做网站私域运营软件
  • 网站建设及推广方案ppt山东今日头条新闻
  • 软件免费网站大全希爱力双效片
  • 南充商城网站建设音乐接单推广app平台
  • 怎么做网站测试百度推广靠谱吗
  • 给企业建设网站的意义高手优化网站
  • b2c网站流量百度官网推广平台
  • 网站开发建设价格网站收录查询网
  • 网站建设不力 被问责上海优质网站seo有哪些
  • 网站内容页怎么设计模板个人博客网站设计毕业论文