Zdravím, prosím o radu ...
Dělám do školy "hru" Trefuj kuličku. Úkolem je kliknout na kuličku, která je buď zelená(levé tlačítko) nebo červená (pravé) ... Počet kuliček, které má program vykreslit má hráč zadat na začátku hry, a to je ten problém ... Nevím, jak nejprve zadat počet kuliček a až po té spustit samotné generování kuliček
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Random nahoda = new Random(); //náhodné losování pozice kuličky
Random nahoda_barva = new Random();
//souřadnice, poloměr, barva kuličky
int x, y;
int r = 5;
Color barva_kulicky = Color.Transparent; //na začátku hry není vidět
//možné barvy kuličky
Color leve_tlacitko = Color.Green;
Color prave_tlacitko = Color.Red;
Color netrefena = Color.LightYellow;
public Form1()
{
InitializeComponent();
}
private void casovac_kulicky_Tick(object sender, EventArgs e)
{
//nastavení, kde se bude kulička zobrazovat
int min_x = r;
int max_x = panel1.Width - r - 1;
int min_y = r;
int max_y = panel1.Height - r - 1;
//vygenerování kuličky
x = nahoda.Next(min_x, max_x + 1);
y = nahoda.Next(min_y, max_y + 1);
int barva = nahoda_barva.Next(2);
if (barva == 0)
{
barva_kulicky = leve_tlacitko;
}
else
{
barva_kulicky = prave_tlacitko;
}
panel1.Refresh();
//počítadlo kuliček
int pocet_kulicek = Convert.ToInt32(text_box_pocet_kulicek.Text);
pocet_kulicek++;
text_box_pocet_kulicek.Text = pocet_kulicek.ToString();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics plocha = e.Graphics;
//vykreslení kuličky
int x_levy = x - r;
int y_levy = y - r;
int sirka = 2 * r;
int vyska = sirka;
Brush stetec = new SolidBrush(barva_kulicky);
plocha.FillEllipse(stetec, x_levy, y_levy, sirka, vyska);
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
if (barva_kulicky == leve_tlacitko && barva_kulicky == prave_tlacitko)
return;
//došlo k zásahu?
int rozdil_x = e.X - x;
int rozdil_y = e.Y - y;
double vzdalenost_od_stredu = Math.Sqrt(rozdil_x * rozdil_x + rozdil_y * rozdil_y);
bool zasah = vzdalenost_od_stredu <= r;
if (zasah)
{
if (e.Button == MouseButtons.Left)
{
if (barva_kulicky == leve_tlacitko)
{
panel1.Refresh();
int pocet_zasahu = Convert.ToInt32(text_Box_zasahy.Text);
pocet_zasahu++;
text_Box_zasahy.Text = pocet_zasahu.ToString();
}
}
if (e.Button == MouseButtons.Right)
{
if (barva_kulicky == prave_tlacitko)
{
panel1.Refresh();
int pocet_zasahu = Convert.ToInt32(text_Box_zasahy.Text);
pocet_zasahu++;
text_Box_zasahy.Text = pocet_zasahu.ToString();
}
}
}
int pocet_kulicek = Convert.ToInt32(textBox1.Text);
int pocitadlo = Convert.ToInt32(text_box_pocet_kulicek.Text);
int zasahy = Convert.ToInt32(text_Box_zasahy.Text);
if (pocet_kulicek == pocitadlo)
{
MessageBox.Show("KONEC HRY");
}
}
private void button1_Click(object sender, EventArgs e)
{
int pocet_kulicek = Convert.ToInt32(textBox1.Text);
}
}
}
a formulář vypadá takto
Díky moc