我正在创建一个纸牌游戏,我希望创建一个神模式来吓坏我的朋友,但我需要在所有运行的方法中保持一个布尔值
所有代码:
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是你可以收到的最大#卡。这种方式看起来像是一个对你有利的正常游戏。