C# 小游戏推箱子源码分享

功能:

支持手动选择关卡,撤销\重玩关卡,及拼图设计关卡。

 

成果展示:

主页面

主页面
主页菜单

 

关卡编辑
关卡编辑页菜单

 

附上源码地址:

https://github.com/yuqish/move-boxes

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是使用C#编写的一个关卡的推箱子游戏的示例: ```csharp using System; class Program { static void Main() { // 定义地图 char[,] map = new char[,] { { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', '#' }, { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' } }; // 定义人物和箱子的初始位置 int playerX = 1; int playerY = 1; int boxX = 3; int boxY = 3; // 游戏循环 while (true) { // 清空屏幕 Console.Clear(); // 绘制地图 for (int y = 0; y < map.GetLength(0); y++) { for (int x = 0; x < map.GetLength(1); x++) { if (x == playerX && y == playerY) { Console.Write('P'); // 绘制人物 } else if (x == boxX && y == boxY) { Console.Write('B'); // 绘制箱子 } else { Console.Write(map[y, x]); // 绘制地图 } } Console.WriteLine(); } // 判断是否胜利 if (boxX == 7 && boxY == 7) { Console.WriteLine("恭喜你通关了!"); break; } // 获取玩家输入 ConsoleKeyInfo keyInfo = Console.ReadKey(); // 根据玩家输入移动人物和箱子 switch (keyInfo.Key) { case ConsoleKey.UpArrow: if (map[playerY - 1, playerX] != '#') { playerY--; if (playerX == boxX && playerY == boxY - 1 && map[boxY - 1, boxX] != '#') { boxY--; } } break; case ConsoleKey.DownArrow: if (map[playerY + 1, playerX] != '#') { playerY++; if (playerX == boxX && playerY == boxY + 1 && map[boxY + 1, boxX] != '#') { boxY++; } } break; case ConsoleKey.LeftArrow: if (map[playerY, playerX - 1] != '#') { playerX--; if (playerX == boxX - 1 && playerY == boxY && map[boxY, boxX - 1] != '#') { boxX--; } } break; case ConsoleKey.RightArrow: if (map[playerY, playerX + 1] != '#') { playerX++; if (playerX == boxX + 1 && playerY == boxY && map[boxY, boxX + 1] != '#') { boxX++; } } break; } } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值