Это игра с бросанием костей, в которой 2 игрока могут бросить кости по 3 раза подряд, и рассчитывается их личная сумма, а победителем становится тот, чья сумма больше.
Проблема начинается на ходу player2 i1
продолжается до i2
, таким образом, он собирает значение последнего числа, полученного player1, и считает его как первый бросок игрока player2. И тогда я могу бросить кубик только дважды как второй игрок, потому что первый бросок считается уже взятым.
Я пытался исправить это целый день, но безуспешно. Мне сказали, что i1 и i2 - это проблема, и что ее можно исправить и другим способом. Любое решение будет очень полезно.
using System;
using System.Windows.Forms;
using System.ComponentModel;
namespace Kockica
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
MessageBoxManager.OK = "U redu";
MessageBoxManager.Yes = "Izlaz";
MessageBoxManager.No = "Ponovo";
MessageBoxManager.Cancel = "Ostani";
MessageBoxManager.Register();
}
protected override void OnClosing(CancelEventArgs e)
{
DialogResult rezultat = MessageBox.Show("Da li želite da napustite aplikaciju " +
"ili da igrate ponovo?", "Pitanje", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (rezultat == DialogResult.No)
{
Application.Restart();
}
else if (rezultat == DialogResult.Yes)
{
Application.Exit();
}
else e.Cancel = true;
}
private void BacanjeKockice_Load(object sender, EventArgs e)
{
label25.Hide();
labelIme2.Hide();
labelZbir2.Hide();
labelUkupno2.Hide();
labelPobednik.Hide();
labelBacanje2.Hide();
labelBrojBacanja2.Hide();
labelIme1.Text = Class1.labelIme1;
labelIme2.Text = Class1.labelIme2;
labelZbir1.Text = Class1.suma1.ToString();
labelZbir2.Text = Class1.suma2.ToString();
labelBrojBacanja1.Text = Class1.i1.ToString();
labelBrojBacanja2.Text = Class1.i2.ToString();
}
private void buttonBaci_Click(object sender, EventArgs e)
{
Random rb = new Random();
int broj = rb.Next(imageListKockice.Images.Count);
pictureBoxKockice.Image = imageListKockice.Images[broj];
pictureBoxKockice.SizeMode = PictureBoxSizeMode.Zoom;
if (Class1.i1 >= 0 && Class1.i1 < 3 && Class1.pom == false)
{
Class1.i1 += 1;
labelBrojBacanja1.Text = Class1.i1.ToString();
if (broj == 0)
{
Class1.suma1 += 1;
}
else
{
if (broj == 1)
{
Class1.suma1 += 2;
}
else
{
if (broj == 2)
{
Class1.suma1 += 3;
}
else
{
if (broj == 3)
{
Class1.suma1 += 4;
}
else
{
if (broj == 4)
{
Class1.suma1 += 5;
}
else
{
Class1.suma1 += 6;
}
}
}
}
}
labelZbir1.Text = Class1.suma1.ToString();
if (Class1.i1 == 3)
{
MessageBox.Show(Class1.labelIme1 + " ima ukupno: " +
Class1.suma1.ToString(), "Obaveštenje");
}
}
if (Class1.i1 == 3 && Class1.pom == false)
{
label24.Hide();
labelIme1.Hide();
labelZbir1.Hide();
labelUkupno1.Hide();
labelBacanje1.Hide();
labelBrojBacanja1.Hide();
labelBrojBacanja2.Show();
labelBacanje2.Show();
labelUkupno2.Show();
labelZbir2.Show();
labelIme2.Show();
label25.Show();
Class1.pom = true;
}
if (Class1.i2 >= 0 && Class1.i2 < 3 && Class1.pom == true)
{
labelBrojBacanja2.Text = Class1.i2.ToString();
Class1.i2 += 1;
if (broj == 0)
{
Class1.suma2 += 1;
}
else
{
if (broj == 1)
{
Class1.suma2 += 2;
}
else
{
if (broj == 2)
{
Class1.suma2 += 3;
}
else
{
if (broj == 3)
{
Class1.suma2 += 4;
}
else
{
if (broj == 4)
{
Class1.suma2 += 5;
}
else
{
Class1.suma2 += 6;
}
}
}
}
}
}
labelZbir2.Text = Class1.suma2.ToString();
if (Class1.i2 == 3)
{
MessageBox.Show(Class1.labelIme2 + " ima ukupno: " +
Class1.suma2.ToString(), "Obaveštenje");
}
if (Class1.i1 == 3 && Class1.i2 == 3 && Class1.pom == true)
{
labelUkupno2.Show();
labelUkupno1.Show();
labelZbir1.Show();
labelZbir2.Show();
labelIme2.Show();
labelIme1.Show();
label25.Hide();
label24.Hide();
buttonBaci.Hide();
labelBacanje2.Hide();
labelBacanje1.Hide();
labelBrojBacanja1.Hide();
labelBrojBacanja2.Hide();
pictureBoxKockice.Hide();
Class1.pom1 = true;
}
if (Class1.pom1 == true)
{
if (Class1.suma1 > Class1.suma2)
{
MessageBox.Show("Pobednik je: " + Class1.labelIme1, "Obaveštenje");
labelPobednik.Text = Class1.labelIme1 + " JE POBEDNIK!";
labelPobednik.Show();
}
else if (Class1.suma1 < Class1.suma2)
{
MessageBox.Show("Pobednik je: " + Class1.labelIme2, "Obaveštenje");
labelPobednik.Text = Class1.labelIme2 + " JE POBEDNIK!";
labelPobednik.Show();
}
else
{
MessageBox.Show("Nerešeno je, igrate ponovo!", "Obaveštenje");
Class1.i1 = 0;
Class1.i2 = 0;
Class1.suma1 = 0;
Class1.suma2 = 0;
Class1.pom = false;
Class1.pom1 = false;
this.Close();
Form2 f2 = new Form2();
f2.Show();
}
}
}
}
}
namespace Kockica
{
class Class1
{
private static string ime1;
private static string ime2;
public static int i1 = 0;
public static int i2 = 0;
public static int suma1 = 0;
public static int suma2 = 0;
public static bool pom = false;
public static bool pom1 = false;
public static string labelIme1 { get => ime1; set => ime1 = value; }
public static string labelIme2 { get => ime2; set => ime2 = value; }
}
}