使用C#Visual Studio 2010的飞镖计分游戏-在evey第3次计分后交替计分
刚买了一个飞镖板,想创建一个小计分应用程序,到目前为止,我已经设置了玩家姓名和个人按钮来开始游戏。三个游戏-301、501和1001,这是两名玩家依次投掷三个飞镖,以达到零的目标分数。 我已经包括了许多按钮,每个飞镖的得分从20到1,每个按钮分别用于单、双、三、公牛、外公牛和无得分按钮。一旦游戏开始,前三个按钮的按下应归于玩家1,然后按下以下三个按钮将相应的分数分配给玩家2。游戏结束时,获胜的玩家达到目标分数(或将分数减为零) 我可以用一个球员选择按钮来做这件事,但我想知道一些技巧,如何将另一种得分模式编码为自动模式 非常感谢您的帮助。多谢各位使用C#Visual Studio 2010的飞镖计分游戏-在evey第3次计分后交替计分,c#,visual-studio-2010,function,loops,methods,C#,Visual Studio 2010,Function,Loops,Methods,刚买了一个飞镖板,想创建一个小计分应用程序,到目前为止,我已经设置了玩家姓名和个人按钮来开始游戏。三个游戏-301、501和1001,这是两名玩家依次投掷三个飞镖,以达到零的目标分数。 我已经包括了许多按钮,每个飞镖的得分从20到1,每个按钮分别用于单、双、三、公牛、外公牛和无得分按钮。一旦游戏开始,前三个按钮的按下应归于玩家1,然后按下以下三个按钮将相应的分数分配给玩家2。游戏结束时,获胜的玩家达到目标分数(或将分数减为零) 我可以用一个球员选择按钮来做这件事,但我想知道一些技巧,如何将另一种
namespace dbstats
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
btnPlay.Visible = false;
btnReset.Visible = false;
btnUndo.Visible = false;
gbDartBoard.Visible = false;
gbScoreBoard.Visible = false;
lbP1Select.Visible = false;;
lbP2Select.Visible = false;
cmbP1.Visible = false;
cmbP2.Visible = false;
string[] lines = File.ReadAllLines(@"playerStats.csv");
foreach (var line in lines)
{
string[] names = line.Split(',');
if (names[0] != "NAME")
{
cmbP1.Items.Add(names[0]);
cmbP2.Items.Add(names[0]);
}
}
}
private void tsm301_Click(object sender, EventArgs e)
{
lbP1Select.Visible = true;
cmbP1.Visible = true;
lbP2Select.Visible = true;
cmbP2.Visible = true;
btnPlay.Visible = true;
tbPlayer1.Text = "301";
tbPlayer2.Text = "301";
gamesToolStripMenuItem.Visible = false;
manageToolStripMenuItem.Visible = false;
}
private void btnPlay_Click(object sender, EventArgs e)
{
if (cmbP1.SelectedItem == cmbP2.SelectedItem || cmbP1.SelectedItem == null || cmbP2.SelectedItem == null)
{
MessageBox.Show("Make Sure:" + "\n\n"
+ "The Players are NOT the same." + "\n"
+ "&" + "\n"
+ "At least one selection is NOT left blank", "Choose Again!");
}
else
{
lbP1Select.Visible = false;
cmbP1.Visible = false;
lbP2Select.Visible = false;
cmbP2.Visible = false;
btnPlay.Visible = false;
lbPlayer1.Text = cmbP1.SelectedItem.ToString();
lbPlayer2.Text = cmbP2.SelectedItem.ToString();
btnReset.Visible = true;
btnUndo.Visible = true;
gbDartBoard.Visible = true;
gbScoreBoard.Visible = true;
lbPlayer1.Visible = true; ;
lbPlayer2.Visible = true;
}
}
}
将
turnsEntered
成员变量保留到管理轮次/得分的任何类
// Call after every time a new score is entered. Start at 0.
turnsEntered++;
if (turnsEntered % 3 == 0)
{
SwitchPlayer(); // However you keep track of current player - switch here
}
输入第三个分数后,它将切换玩家…再输入第三个分数后,它将再次切换,等等
您可以稍后检查
turnsEntered
,以确定游戏何时结束。重新初始化新游戏时,将其设置回零。您的问题实在太模糊,无法回答。你在看什么样的应用程序?网络应用?桌面?我建议找一个好的MVC或MVVM框架。文本墙,没有代码。我太懒了,看不懂这些。发布你的代码并说明你的问题。你说你“包括了很多按钮”。。。那么这是否意味着你已经做了一些事情?它是ASP.NET
,WPF
,WinForms
,还是别的什么?@Matt-我基本上是在创建一个省道计分计算器,它在文本框中显示一个数字,然后按下相应的计分按钮来减去这个数字。@Andrew-我使用的是在VS2010中使用C#创建的WinForms。我还使用了总共63个按钮,它们对应于在飞镖板上投掷一个飞镖所获得的分数,并希望每三次投掷两名玩家交替使用每个文本框的分数。希望这能让你感觉到,我也用你的方法在每个玩家的侧面用单选按钮来指示一个回合。现在就到。