锁定布尔值虽然是块

时间:2017-03-15 07:29:57

标签: c# while-loop boolean console-application

我正在创建一个纸牌游戏,我希望创建一个神模式来吓坏我的朋友,但我需要在所有运行的方法中保持一个布尔值

所有代码:

namespace Card_Game_1
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                P1Hand();
            }

        }


        #region PosAns
        static string PosAns()
        {
            string posans = "Y";
            return posans;
        }
        #endregion


        #region NegAns
        static string NegAns()
        {
            string posans = "N";
            return posans;
        }
        #endregion


        #region P1Hand
        static int P1Hand()
        {
            int P1Hand = 0;
            if (PlayerInput().Equals(PosAns()))
            {
                int NewRnd = Rnd();
                string StringRnd = NewRnd.ToString();
                Console.WriteLine(StringRnd);
                P1Hand = P1Hand + NewRnd;
                Console.WriteLine("You're Hand Is " + P1Hand);
            }
            else
            {
                if (GMActP1() == true)
                {
                    P1Hand = GodModeP1();
                    Console.WriteLine("You're Hand Is " + P1Hand);
                }
                if (PlayerInput().Equals(NegAns()))
                {
                    Console.WriteLine("You're Hand Is " +P1Hand);
                }

            }

            return P1Hand;
        }
        #endregion


        #region P2Hand
        static int P2Hand()
        {
            // Not completing till P1 is done
            return P2Hand;
        }
        #endregion


        #region NormalMode
        static int Rnd()
        {
            Random Rd = new Random();            
            int[] Cards = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
            int RandomIdex = Rd.Next(1, Cards.Length);
            return RandomIdex;
        }
        #endregion


        #region GodMString
        static string GodMString()
        {
            string GmAct = " ChTy";
            return GmAct;
        }
        #endregion


        #region GodModeP1
        static int GodModeP1()
        {
            int NewP1Hand = P1Hand();
            int WinHand = 21 - NewP1Hand;
            return WinHand;
        }
        #endregion


        #region GMActP1
        static bool GMActP1()
        {
            bool Godmode = false;
            if (PlayerInput().Equals(PosAns() + GodMString()))
            {
                Godmode = true;

            }
            bool NewGodM = Godmode;
            return NewGodM;            
        }
        #endregion


        #region GodModeP2
        static int GodModeP2()
        {
            int NewP2Hand = P2Hand();
            int WinHand = 21 - NewP2Hand;
            return WinHand;
        }
        #endregion


        #region PlayerInput
        static string PlayerInput()
        {
            string S = Console.ReadLine();

            return S;
        }
        #endregion
    }
}

现在我的问题是:

1:当逻辑转向God Mode方法或GM方法的方向时,它会绘制一个空白然后请求另一个PlayerInput方法

2:我认为这源于GMActP1方法中的布尔值,而不是通过while语句保持为真,或者根本不返回值,因此它不属于P1H和Method中的逻辑

这些方法只有在我完成之后才能完成,因为它可以帮助我跟踪事情,因此编辑起来更容易,完成后我编辑它就不那么疯狂了。 GMString用作密码,而GMActP1是神模式的激活器,用于P1Hand中的逻辑。

问题出在哪里:

   static bool GMActP1()
    {
        bool Godmode = false;
        Console.WriteLine(Godmode);
        if (PlayerInput().Equals(PosAns() + GodMString()))
        {
            Godmode = true;
            Console.WriteLine(Godmode);

        }
        bool NewGodM = Godmode;
        Console.WriteLine(NewGodM);
        return NewGodM;            
    }

我检查了最后一段代码,它在所有阶段都返回false。 这是我的问题是可以在满足所需的逻辑后将bool var锁定为true我宁愿不必每次运行时都将bool var声明为false因为这意味着你必须写" Y ChTy"你有每一个回合,如果你不想让你的朋友知道,当你输入这个"作弊码"时,让他们看起来不那么容易。当我开始工作时,我会让它在前几轮正常运行,直到所需数字为21小于12,因为12是你可以收到的最大#卡。这种方式看起来像是一个对你有利的正常游戏。

0 个答案:

没有答案