一个面向对象的, 可拓展的, 简单易用的贪吃蛇小游戏.
SnakeGameCoregame=newSnakeGameCore(newSnakeMap(30,30)// 实例化游戏对象{newSnake(SnakeMoveDirection.Right,5,5,3),// 第一条蛇newSnake(SnakeMoveDirection.Left,24,24,3)// 第二条蛇});game.SnakeMapRenderer=newSnakeMapConsoleRenderer();// 应用控制台游戏渲染器SnakeGameConsoleControllergameController=newSnakeGameConsoleController();// 实例化控制台游戏控制器gameController.SetStartKey(ConsoleKey.Spacebar)// 设置各种用于游戏操作的按键.SetPauseKey(ConsoleKey.P).SetResumeKey(ConsoleKey.P).SetStopKey(ConsoleKey.Escape).SetSnakeKeys(game.Map[0],ConsoleKey.A,ConsoleKey.W,ConsoleKey.D,ConsoleKey.S).SetSnakeKeys(game.Map[1],ConsoleKey.LeftArrow,ConsoleKey.UpArrow,ConsoleKey.RightArrow,ConsoleKey.DownArrow);Console.WriteLine("按 空格 开始游戏 (30x30, x2)");// 打印一个提示信息gameController.HandleController(game);// 开启游戏主进程Console.WriteLine("游戏结束");Console.ReadKey();一个控制台应用, 包含了贪吃蛇游戏的最基本功能调用, 可以用来玩
项目包含了本游戏的基本实现, 例如 Snake 类, SnakeMap 类, 以及 SnakeGameCore 类等等.
- Snake 类表示一条蛇
- SnakeMap 是承载蛇的地图
- SnakeGameCore 是游戏的核心, 用来控制游戏的进行
- SnakeMoveDirection 蛇的移动方向
- ISnakeGameController 贪吃蛇游戏控制器, 该接口应该实现对用户的响应
- ISnakeMapRenderer 游戏地图渲染器, 用来将游戏地图表示出来
项目包含了游戏在控制台应用上的接口实现, 例如控制台按键控制响应以及控制台地图渲染
- SnakeGameController 借助 Console.ReadKey 实现使用控制台按键控制游戏
- SnakeMapRenderer 将 SnakeMap 绘制在控制台上.
如若要为游戏拓展功能, 你可以创建一个名字为 XXX.SnakeGame.YYY 的项目, 其中 XXX 是你的链接库前缀, YYY 是你要实现的功能平台, 例如 WinForm, WPF, 或其他
实现 NullLib.SnakeGame 的接口, 并供用户调用.