C# 请求用户输入字符';s统计数据
C# 请求用户输入字符';s统计数据,c#,events,textbox,runtime-error,return-value,C#,Events,Textbox,Runtime Error,Return Value,if((parseissusccessfull=int.TryParse(P1STRtextbox.Text,out result))==true)//尝试解析STR文本框;如果它解析成功 { PlayerOne[P1ClassNumber].Strength=0;//这两条线最初重置了Strength的值 int-SumOfAllStatPoints=PlayerOne[P1ClassNumber].Strength+//如果没有这两行,用户将无法在此文本字段中输入其总点数 游戏玩家[P1Cl
if((parseissusccessfull=int.TryParse(P1STRtextbox.Text,out result))==true)//尝试解析STR文本框;如果它解析成功
{
PlayerOne[P1ClassNumber].Strength=0;//这两条线最初重置了Strength的值
int-SumOfAllStatPoints=PlayerOne[P1ClassNumber].Strength+//如果没有这两行,用户将无法在此文本字段中输入其总点数
游戏玩家[P1ClassNumber]。敏捷+游戏玩家[P1ClassNumber]。活力+//
玩家指南[P1ClassNumber]。红魔+玩家指南[P1ClassNumber]。蓝魔//
P1RemainingStatPointsLabel.Text=(播放者[P1ClassNumber].TotalStatPoints-SumOfAllStatPoints)。ToString();//每次更改文本时重新计算剩余的统计点
playerne[P1ClassNumber].Strength=int.Parse(P1STRtextbox.Text);//将解析后的值存储到playernes的Strength值中
if(PlayerOne[P1ClassNumber].Strength>int.Parse(P1RemainingStatPointsLabel.Text))//如果PlayerOne的强度输入大于剩余的统计点
{
MessageBox.Show(“您输入的数字大于您的剩余统计点!”;//提示用户输入有效数字
}
else if(玩家玩家[P1ClassNumber].Strength
功能的快速定义:玩家选择一个可玩的角色类别,输入他们的级别(全部在图片中的“类别选择”选项卡中完成)。完成后,他们输入他们的级别。该等级被取下并乘以10,给玩家一个他们可以分配给角色的统计点数总数。初始总StatPoints=剩余StatPoints。然后用户进入“输入统计信息”选项卡,在那里分配统计信息。每次用户更改文本框中的值时,都会更新其统计信息的值
我的问题:一切正常,但当我输入3000(这是我的总统计点)时,显示我剩余统计点的字段显示的是3000而不是0。我猜在我的代码中的某个地方,它搞乱了,并将剩余的stat points变量设置为3000,因为显示剩余点的标签是本地化的
问题:我的问题是什么?你有什么合理的建议吗?提前感谢您的时间和努力。代码忽略了强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 使用谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。
if ((ParseIsSuccessfull = int.TryParse(P1STRtextbox.Text, out result)) == true)//Try parsing the STR text box;If it parses successfully
{
PlayerOne[P1ClassNumber].Strength = 0;//These couple lines reset the value of strength initially
int SumOfAllStatPoints = PlayerOne[P1ClassNumber].Strength + //Without these couple lines the user cannot enter their total number of points into this text field
PlayerOne[P1ClassNumber].Dexterity + PlayerOne[P1ClassNumber].Vigor + //
PlayerOne[P1ClassNumber].RedMagic + PlayerOne[P1ClassNumber].BlueMagic;//
P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - SumOfAllStatPoints).ToString();//Recalculate the remaining stat points each time the text is changed
PlayerOne[P1ClassNumber].Strength = int.Parse(P1STRtextbox.Text);//Store the parsed value into PlayerOnes Strength Value
if (PlayerOne[P1ClassNumber].Strength > int.Parse(P1RemainingStatPointsLabel.Text))//If PlayerOnes Strength Input is greater than the remaining stat points
{
MessageBox.Show("You have enter a number larger than your remaining stat points!");//Prompt the user to enter a valid number
}
else if (PlayerOne[P1ClassNumber].Strength < int.Parse(P1RemainingStatPointsLabel.Text))//If PlayerOnes Strength Input is less than the remaining stat points
{
PlayerOne[P1ClassNumber].Strength = int.Parse(P1STRtextbox.Text);//Store the STR input in an integer value
SumOfAllStatPoints = PlayerOne[P1ClassNumber].Strength + //Total up All of player ones stats that the user has the option to input a number for
PlayerOne[P1ClassNumber].Dexterity + PlayerOne[P1ClassNumber].Vigor + //In this case STR/DEX/VIG/RM/BM
PlayerOne[P1ClassNumber].RedMagic + PlayerOne[P1ClassNumber].BlueMagic;
PlayerOne[P1ClassNumber].RemainingStatPoints = (PlayerOne[P1ClassNumber].TotalStatPoints - SumOfAllStatPoints);
P1RemainingStatPointsLabel.Text = PlayerOne[P1ClassNumber].RemainingStatPoints.ToString();//Display the updated stat points in the remaining stat points label
}
}
else if ((ParseIsSuccessfull = int.TryParse(P1STRtextbox.Text, out result)) == true)//If the parse is unsuccessfull
{
MessageBox.Show("Please enter numbers only!");//Display an error message
}