c#之飞行棋项目源码

c#之飞行棋项目源码

namespace 飞行棋1
{
   
    class Program
    {
   
        //静态字段模拟全局变量
        static int[] Maps = new int[100];
        //静态数组存储玩家A跟玩家B的坐标
        static int[] PlayerPos = new int[2];
        //存储两个玩家的姓名
        static string[] PlayerNames = new string[2];
        //两个玩家的标记
        static bool[] Flags = new bool[2];
        static void Main(string[] args)
        {
   
            GameShow();
            #region 输入玩家
            Console.WriteLine("请输入玩家A的姓名");
            PlayerNames[0] = Console.ReadLine();
            while (PlayerNames[0] == "")
            {
   
                Console.WriteLine("玩家A的姓名不能为空,请重新输入");
                PlayerNames[0] = Console.ReadLine();
            }
            Console.WriteLine("请输入玩家B的姓名");
            PlayerNames[1] = Console.ReadLine();
            while (PlayerNames[1] == "" || PlayerNames[1] == PlayerNames[0])
            {
   
                if (PlayerNames[1] == "")
                    Console.WriteLine("玩家B的姓名不能为空,请重新输入");
                else
                    Console.WriteLine("玩家B的姓名不能跟玩家A相同,请重新输入");
                PlayerNames[1] = Console.ReadLine();
            }
            #endregion
            //玩家输入完成后进行清屏
            Console.Clear();
            GameShow();
            Console.WriteLine("{0}的士兵用A表示", PlayerNames[0]);
            Console.WriteLine("{0}的士兵用B表示", PlayerNames[1]);
            //画地图前必须初始化
            InitaiMap();
            DrawMap();
            //没有到终点前一直玩
            while (PlayerPos[1] < 99 && PlayerPos[0] < 99)
            {
   
                if (Flags[0] == false)
                {
   
                    PlayGame(0);
                }
                else
                {
   
                    Flags[0] = false;
                }
                if (Flags[1] == false)
                {
   
                    PlayGame(1);
                }
                else
                {
   
                    Flags[1] = false;
                }
            }//while
            Console.Clear();
            if (PlayerPos[0] > PlayerPos[1])
                Console
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,我们可以了解到实现C#四人飞行棋游戏需要以下技术点:面向对象编程、图形用户界面设计、随机数生成、游戏规则设计等。其中,游戏规则设计是实现棋子踩棋子退回原点的关键。 以下是C#四人飞行棋棋子踩棋子退回原点的代码实现: ```csharp // 定义棋子类 public class Chess { public int Position { get; set; } // 棋子位置 public bool IsStop { get; set; } // 是否停留在起点或终点 public bool IsFly { get; set; } // 是否起飞 public bool IsProtected { get; set; } // 是否处于保护状态 public int Owner { get; set; } // 棋子所属玩家编号 } // 定义游戏规则类 public class GameRule { public void CheckCollision(Chess[] chesses, int currentPlayer) { for (int i = 0; i < chesses.Length; i++) { if (chesses[i].Owner != currentPlayer && !chesses[i].IsStop && !chesses[i].IsProtected && chesses[i].Position == chesses[currentPlayer].Position) { chesses[i].Position = 0; // 踩到其他玩家的棋子,退回原点 chesses[i].IsStop = true; } } } } ``` 以上代码中,我们定义了一个Chess类来表示棋子,包含了棋子的位置、是否停留在起点或终点、是否起飞、是否处于保护状态和棋子所属玩家编号等属性。同时,我们还定义了一个GameRule类来表示游戏规则,其中CheckCollision方法用于检测棋子之间的碰撞,如果当前棋子与其他玩家的棋子位置重合,则将其他玩家的棋子退回原点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆火重生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值