C#项目:简单控制台飞行棋小游戏[附下载地址]

先来看看效果

游戏描述:

地图中有100个地点,包含5种不同的关卡:普通(□),幸运轮盘(◎),地雷(★),冰窟窿(▲),空间机器(卍)。

普通地点什么也不发生;幸运轮盘可以再掷一次骰子;地雷向后退6格;冰窟窿暂停一回合;空间机器可以和对手互换位置,有利有弊。

游戏规则:开始先输入两个人的姓名,然后依次掷骰子……先到100关者获胜。

下面是核心程序代码:

private static void PlayGame(string[] playerName)
        {
            int finalCoorDnt;
            int goForward;
            int player = 0;
            int playerJudge = 0;
            int[] playAgain = new int[2] { 0, 0 };
            Random random = new Random();
            while (true)
            {
                if (playerCoords[0] == mapSites.Length - 1 || playerCoords[1] == mapSites.Length - 1)
                    break;
                player = playerJudge % 2;
                PlayMap(playerName);
                Console.WriteLine($"玩家{playerName[player]}按任意键掷骰子:");
                Console.ReadKey(true);
                goForward = random.Next(1, 7);
                Console.WriteLine($"玩家{playerName[player]}掷出了{goForward},并开始行动……");
                (finalCoorDnt, playAgain[player]) = GameRule(playerCoords[player], goForward, playAgain[player]);
                if (finalCoorDnt == playerCoords[(playerJudge + 1) % 2])
                    playerCoords[(playerJudge + 1) % 2] += goForward;
                else
                {
                    playerCoords[player] = finalCoorDnt;
                }
                if (playerCoords[player] == playerCoords[(playerJudge + 1) % 2])
                {
                    playerCoords[(playerJudge + 1) % 2] -= 6;
                    Console.WriteLine($"{playerName[player]}踩中敌方脑袋,把他往后扔了6格。");
                    Console.WriteLine($"可怜的{playerName[(playerJudge + 1) % 2]}目前坐标:{playerCoords[(playerJudge + 1) % 2]}");
                }
                Console.WriteLine($"{playerName[player]}行动完成,目前坐标:{playerCoords[player]}");
                if (playAgain[player] == 1)
                {
                    playAgain[player] = 0;
                    Console.WriteLine("按任意键继续……");
                    Console.ReadKey(true);
                    continue;
                }
                if (playAgain[player] == -1)
                {
                    playAgain[(playerJudge + 1) % 2] = 1;
                    playAgain[player] = 0;
                }
                Console.WriteLine("按任意键继续……");
                Console.ReadKey(true);
                playerJudge++;
            }
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"游戏结束……{playerName[player]}取得了胜利!");
        }
 private static (int, int) GameRule(int nowCoordnt, int step, int playAgain)
        {
            int finalCoordnt = nowCoordnt + step;
            if (finalCoordnt > mapSites.Length - 1)
                finalCoordnt = 2 * (mapSites.Length - 1) - finalCoordnt;
            if (finalCoordnt == mapSites.Length - 1)
                return (finalCoordnt, playAgain);
            switch (mapSites[finalCoordnt])
            {
                //幸运轮盘,再来一次
                case 1:
                    playAgain = 1;
                    Console.WriteLine("恭喜你,碰到了幸运轮盘,再来一次吧。");
                    break;

               //地雷,退6格
                case 2:
                    finalCoordnt -= 6;
                    if (finalCoordnt < 0)
                        finalCoordnt = 0;
                    Console.WriteLine("嘭!踩到地雷了,退6格。");
                    break;

                //冰窟窿,暂停一回
                case 3:
                    playAgain = -1;
                    Console.WriteLine("掉进冰窟窿里面了,慢慢爬一回合吧。");
                    break;

                //空间传送,和另一个人互换位置
                case 4:
                    playerCoords[0] = playerCoords[0] - playerCoords[1];
                    playerCoords[1] = playerCoords[0] + playerCoords[1];
                    playerCoords[0] = playerCoords[1] - playerCoords[0];
                    Console.WriteLine("空间传送!互换位置。");
                    finalCoordnt = nowCoordnt;
                    break;
            }

            return (finalCoordnt, playAgain);
        }

完整项目地址:

注意:本段内容须成功“回复本文”后“刷新本页”方可查看!
 收藏 (0) 打赏

您的赞助是我分享的最大动力!

支付宝扫一扫赞助

微信钱包扫描赞助

转载请注明出处:STBLOG » C#项目:简单控制台飞行棋小游戏[附下载地址]

分享到: 更多 (0)

热门文章

  • 评论 抢沙发

    评论前必须登录!

    立即登录   注册

    ❤ 感谢您的关注与支持!❤

    对TA表白给我留言
    我要注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活