GreenKeeper
Neu angemeldet
- Registriert
- 5 Aug. 2013
- Beiträge
- 3
Hallo,
ich programmieren zur Zeit eine Anwendung, welche eine beliebige Anzahl von Lottoziehungen simulieren soll. Beim Klicken auf "button1" erstelle ich die Instanz "l" der Klasse Lotto und lasse die Funktionen durchlaufen, welche die Listen mit den nötigen Zahlen füllen.
Ich wollte jedoch noch einen Button (button2) hinzufügen mit dem ich die Listen auch wieder löschen kann, bzw. den Inhalt der Listen. Dabei stoße ich jedoch auf das Problem, das ich nicht auf die Funktion der Klasse Lotto zugreifen kann, da die Instanz ja in der Funktion von button1 liegt. Ich komme also nicht an die Daten aus der Klasse Lotto in der Instanz "l" heran. Ich hab schon recherchiert wie ich dieses Problem lösen kann aber bin nur auf die Verwendung von Events gestoßen. Dabei bin aber auch nicht weitergekommen und hab mich nun schlussendlich hier gemeldet. Ich hoffe ihr könnt mir bei dem Problem helfen. Ich bin auch bereit das Problem selbst zu lösen, wenn mir jemand einen Hinweis gibt wie dies zu machen ist aber aktuell weiß ich nicht weiter.
Den Code habe ich übersichtshalber gekürzt angehängt.
[src=csharp] class Lotto
{
List<int> urne = new List<int>(); //Lostrommel mit allen 49 Kugeln
List<int> einzelziehung = new List<int>(); //Gezogenen 6 Kugeln
List<int> gesamtziehung = new List<int>(); //Gezogene Zahlen aller Reihen
public Lotto(int kugeln, int gewkugeln, int ziehungen)
{
anzahlKugeln = kugeln;
gewinnkugeln = gewkugeln;
anzahlZiehungen = ziehungen;
}
void ClearUrne()
{
urne.Clear();
}
public void ClearAll()
{
einzelziehung.Clear();
gesamtziehung.Clear();
ergebnis.Clear();
}
public List<string> Go()
{
FillUrne(49);
for (int x = 0; x < anzahlZiehungen; x++)
{
Ziehung();
ClearUrne();
FillUrne(49);
}
return ergebnis;
}
}
}[/src]
[src=csharp] public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int anzahlziehungen = Convert.ToInt32(textBox3.Text);
int kugeln = Convert.ToInt32(textBox1.Text);
int gewinnkugeln = Convert.ToInt32(textBox2.Text);
Lotto l = new Lotto(kugeln, gewinnkugeln, anzahlziehungen);
List<string> a = l.Go();
}
private void button2_Click(object sender, EventArgs e)
{
//TODO: Löschfunktion einbauen
}
}
}[/src]
ich programmieren zur Zeit eine Anwendung, welche eine beliebige Anzahl von Lottoziehungen simulieren soll. Beim Klicken auf "button1" erstelle ich die Instanz "l" der Klasse Lotto und lasse die Funktionen durchlaufen, welche die Listen mit den nötigen Zahlen füllen.
Ich wollte jedoch noch einen Button (button2) hinzufügen mit dem ich die Listen auch wieder löschen kann, bzw. den Inhalt der Listen. Dabei stoße ich jedoch auf das Problem, das ich nicht auf die Funktion der Klasse Lotto zugreifen kann, da die Instanz ja in der Funktion von button1 liegt. Ich komme also nicht an die Daten aus der Klasse Lotto in der Instanz "l" heran. Ich hab schon recherchiert wie ich dieses Problem lösen kann aber bin nur auf die Verwendung von Events gestoßen. Dabei bin aber auch nicht weitergekommen und hab mich nun schlussendlich hier gemeldet. Ich hoffe ihr könnt mir bei dem Problem helfen. Ich bin auch bereit das Problem selbst zu lösen, wenn mir jemand einen Hinweis gibt wie dies zu machen ist aber aktuell weiß ich nicht weiter.
Den Code habe ich übersichtshalber gekürzt angehängt.
[src=csharp] class Lotto
{
List<int> urne = new List<int>(); //Lostrommel mit allen 49 Kugeln
List<int> einzelziehung = new List<int>(); //Gezogenen 6 Kugeln
List<int> gesamtziehung = new List<int>(); //Gezogene Zahlen aller Reihen
public Lotto(int kugeln, int gewkugeln, int ziehungen)
{
anzahlKugeln = kugeln;
gewinnkugeln = gewkugeln;
anzahlZiehungen = ziehungen;
}
void ClearUrne()
{
urne.Clear();
}
public void ClearAll()
{
einzelziehung.Clear();
gesamtziehung.Clear();
ergebnis.Clear();
}
public List<string> Go()
{
FillUrne(49);
for (int x = 0; x < anzahlZiehungen; x++)
{
Ziehung();
ClearUrne();
FillUrne(49);
}
return ergebnis;
}
}
}[/src]
[src=csharp] public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int anzahlziehungen = Convert.ToInt32(textBox3.Text);
int kugeln = Convert.ToInt32(textBox1.Text);
int gewinnkugeln = Convert.ToInt32(textBox2.Text);
Lotto l = new Lotto(kugeln, gewinnkugeln, anzahlziehungen);
List<string> a = l.Go();
}
private void button2_Click(object sender, EventArgs e)
{
//TODO: Löschfunktion einbauen
}
}
}[/src]