Es geht um die Erstellung eines Quiz in der der Spieler nach Anmeldung entscheidet ob er nach Land,Hauptstadt oder Flagge gefragt wird und dazu die Antwort Land,HS oder Flagge gibt ( natürlich wird gleiches ausgeschlossen) und danach kann ausgewählt werden ob alle Länder oder nur ausgewählte Kontinente gespielt werden.
Das ganze geht in Verbindung mit SQL wo ich in der DB 2 Tabellen habe eine für den Spieler und eine Land
( LandID | Landontinent|LandHauptstadt|LandName)
Problem 1 :
Wie bekomme ich nach der gegebenen Antwort meine Form aktualisiert bzw. die 2. Frage eingelesen ? Habe es mit Refrech versucht aber irgendwie komme ich da nicht weiter.
Problem 2 :
Ich bekomme die Eingrenzung mit den Kontinenten nicht hin, stehe da vollkommen im Wald und finde nichtmal eine Idee und hoffe da auf eure Hilfe.
Dazu der Code 1.Form
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Startseite
{
public partial class Startseite : Form
{
string AuswahlKontinent;
string AuswahlLinks;
string AuswahlRechts;
Datenbank DB = new Datenbank();
List<Spieler> listSpieler = new List<Spieler>();
public Startseite()
{
InitializeComponent();
}
private void Startseite_Load(object sender, EventArgs e)
{
SpielerAnzeigen();
btnFlaggen.Enabled = false;
btnFlagge2.Enabled = false;
btnHauptstadt.Enabled = false;
btnHauptstadt2.Enabled = false;
btnLaender.Enabled = false;
btnLaender2.Enabled = false;
checkedListBox1.Enabled = false;
btnNeuesSpiel.Enabled = false;
}
private void SpielerAnzeigen()
{
try
{
DB.dbVerbinden();
listSpieler.Clear();
cbxSpielerAuswahl.Items.Clear();
DB.dbSpielerEinlesen(listSpieler);
for (int i = 0; i < listSpieler.Count; i++)
{
cbxSpielerAuswahl.Items.Add(listSpieler[i].SpielerVorname + " " + listSpieler[i].SpielerNachname);
}
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
private void btnNeuerSpieler_Click(object sender, EventArgs e)
{
Neuer_Spieler NS = new Neuer_Spieler();
NS.ShowDialog();
SpielerAnzeigen();
}
private void Startseite_FormClosing(object sender, FormClosingEventArgs e)
{
DB.dbVerbindungSchließen();
}
private void btnFlaggen_Click(object sender, EventArgs e)
{
btnHauptstadt.BackColor = Color.FromArgb(255, 240, 240, 240);
btnLaender.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.Enabled = true;
btnLaender2.Enabled = true;
btnFlagge2.Enabled = false;
btnFlaggen.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlLinks = "Flagge";
}
private void btnLaender_Click(object sender, EventArgs e)
{
btnFlaggen.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.Enabled = true;
btnLaender2.Enabled = false;
btnFlagge2.Enabled = true;
btnLaender.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlLinks = "Land";
}
private void btnHauptstadt_Click(object sender, EventArgs e)
{
btnFlaggen.BackColor = Color.FromArgb(255, 240, 240, 240);
btnLaender.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.Enabled = false;
btnLaender2.Enabled = true;
btnFlagge2.Enabled = true;
btnHauptstadt.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlLinks = "Stadt";
}
private void btnFlagge2_Click(object sender, EventArgs e)
{
btnLaender2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnFlagge2.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlRechts = "Flagge";
}
private void btnLaender2_Click(object sender, EventArgs e)
{
btnFlagge2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnLaender2.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlRechts = "Land";
}
private void btnHauptstadt2_Click(object sender, EventArgs e)
{
btnLaender2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnFlagge2.BackColor = Color.FromArgb(255, 240, 240, 240);
btnHauptstadt2.BackColor = Color.FromArgb(195, 50, 141, 171);
AuswahlRechts = "Stadt";
}
private void btnNeuesSpiel_Click(object sender, EventArgs e)
{
try
{
AuswahlKontinent = checkedListBox1.SelectedItem.ToString();
//MessageBox.Show(AuswahlKontinent);
QuestionPicture QP = new QuestionPicture(AuswahlLinks, AuswahlRechts, AuswahlKontinent);
QP.ShowDialog();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
btnNeuesSpiel.Enabled = true;
}
private void cbxSpielerAuswahl_SelectedIndexChanged(object sender, EventArgs e)
{
btnFlaggen.Enabled = true;
btnHauptstadt.Enabled = true;
btnLaender.Enabled = true;
checkedListBox1.Enabled = true;
}
}
}
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Startseite
{
public partial class QuestionPicture : Form
{
string Pfad = @"C:\Users\Chris\Desktop\Länderspiel\Grafik\flags-big\";
Random rndZahl = new Random();
Datenbank DB = new Datenbank();
List<Land> listLand = new List<Land>();
string AuswahlLinks;
string AuswahlRechts;
string AuswahlKontinent;
//int Spiellänge;
int counter = 0;
int Punkte;
Button bRichtig;
public QuestionPicture(string AuswahlLinks, string AuswahlRechts, string AuswahlKontinent)
{
InitializeComponent();
this.AuswahlLinks = AuswahlLinks;
this.AuswahlRechts = AuswahlRechts;
this.AuswahlKontinent = AuswahlKontinent;
}
private void QuestionPicture_Load(object sender, EventArgs e)
{
try
{
DB.dbLandEinlesen(listLand);
if (AuswahlRechts.Equals("Flagge"))
{
txtBox.Visible = false;
pictureBox1.Visible = true;
}
else
{
txtBox.Visible = true;
pictureBox1.Visible = false;
}
Fragen(ZufallsZahlFrage(), ZufallsZahlAntwort(), counter);
ZufallsZahlFrage();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
public int[] ZufallsZahlAntwort()
{
int[] ZufallsZahlAntwort = new int[4/*spiellänge*/];
int i, y;
for (i = 0; i <= ZufallsZahlAntwort.Length - 1; i++)
{
ZufallsZahlAntwort[i] = rndZahl.Next(0, 4);
for (y = i - 1; y >= 0; y--)
{
if (ZufallsZahlAntwort[i] == ZufallsZahlAntwort[y])
{
ZufallsZahlAntwort[i] = rndZahl.Next(0, 4);
y = i;
}
}
}
return ZufallsZahlAntwort;
}
public int[] ZufallsZahlFrage()
{
int[] ZufallsZahlFrage = new int[10/*spiellänge*/];
int i, y;
for (i = 0; i <= ZufallsZahlFrage.Length - 1; i++)
{
ZufallsZahlFrage[i] = rndZahl.Next(0, listLand.Count);
for (y = i - 1; y >= 0; y--)
{
if (ZufallsZahlFrage[i] == ZufallsZahlFrage[y])
{
ZufallsZahlFrage[i] = rndZahl.Next(0, listLand.Count);
y = i;
}
}
}
return ZufallsZahlFrage;
}
public void Fragen(int[] ZahlenFrage, int[] ZahlenAntwort, int counter)
{
Button[] txtArray = new Button[] { btnAntwort1, btnAntwort2, btnAntwort3, btnAntwort4 };
switch (AuswahlRechts)
{
case "Flagge":
pictureBox1.Image = Image.FromFile(Pfad + listLand[ZahlenFrage[counter]].LandFlagge + ".png");
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
if (AuswahlLinks.Equals("Stadt"))
{
txtArray[ZahlenAntwort[0]].Text = listLand[ZahlenFrage[counter]].LandHauptstadt;
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Text = listLand[ZahlenAntwort[0]].LandHauptstadt;
txtArray[ZahlenAntwort[2]].Text = listLand[ZahlenAntwort[1]].LandHauptstadt;
txtArray[ZahlenAntwort[3]].Text = listLand[ZahlenAntwort[2]].LandHauptstadt;
}
else
{
txtArray[ZahlenAntwort[0]].Text = listLand[ZahlenFrage[counter]].LandName;
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Text = listLand[ZahlenAntwort[0]].LandName;
txtArray[ZahlenAntwort[2]].Text = listLand[ZahlenAntwort[1]].LandName;
txtArray[ZahlenAntwort[3]].Text = listLand[ZahlenAntwort[2]].LandName;
}
break;
case "Land":
//txtBox.Text = "Welche Flagge gehört zur ";
if (AuswahlLinks.Equals("Stadt"))
{
txtBox.Text += " Nenne die Hauptstadt von " + listLand[ZahlenFrage[counter]].LandName;
txtArray[ZahlenAntwort[0]].Text = listLand[ZahlenFrage[counter]].LandHauptstadt;
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Text = listLand[ZahlenAntwort[0]].LandHauptstadt;
txtArray[ZahlenAntwort[2]].Text = listLand[ZahlenAntwort[1]].LandHauptstadt;
txtArray[ZahlenAntwort[3]].Text = listLand[ZahlenAntwort[2]].LandHauptstadt;
}
else
{
txtBox.Text = "Welche Flagge gehört zu " + listLand[ZahlenFrage[counter]].LandName;
txtArray[ZahlenAntwort[0]].Image = Image.FromFile(Pfad + listLand[ZahlenFrage[counter]].LandFlagge + ".png");
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[0]].LandFlagge + ".png");
txtArray[ZahlenAntwort[2]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[1]].LandFlagge + ".png");
txtArray[ZahlenAntwort[3]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[2]].LandFlagge + ".png");
}
break;
case "Stadt":
if (AuswahlLinks.Equals("Land"))
{
txtBox.Text = listLand[ZahlenFrage[counter]].LandHauptstadt + " ist Die Hauptstadt von ...";
txtArray[ZahlenAntwort[0]].Text = listLand[ZahlenFrage[counter]].LandName;
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Text = listLand[ZahlenAntwort[0]].LandName;
txtArray[ZahlenAntwort[2]].Text = listLand[ZahlenAntwort[1]].LandName;
txtArray[ZahlenAntwort[3]].Text = listLand[ZahlenAntwort[2]].LandName;
}
else
{
txtBox.Text = listLand[ZahlenFrage[counter]].LandHauptstadt + " ist Die Hauptstadt von ...";
txtArray[ZahlenAntwort[0]].Image = Image.FromFile(Pfad + listLand[ZahlenFrage[counter]].LandFlagge + ".png");
bRichtig = txtArray[ZahlenAntwort[0]];
txtArray[ZahlenAntwort[1]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[0]].LandFlagge + ".png");
txtArray[ZahlenAntwort[2]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[1]].LandFlagge + ".png");
txtArray[ZahlenAntwort[3]].Image = Image.FromFile(Pfad + listLand[ZahlenAntwort[2]].LandFlagge + ".png");
}
break;
}
}
private void btnAntwort1_Click(object sender, EventArgs e)
{
Button gedr = (Button)sender;
if (bRichtig == gedr)
{
Punkte += 10;
gedr.BackColor = Color.Green;
}
else
{
gedr.BackColor = Color.Red;
bRichtig.BackColor = Color.Green;
}
counter++;
System.Threading.Thread.Sleep(1000); // 2sekunden Pause
}
}
}
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace Startseite
{
class Datenbank
{
MySqlConnection connect;
MySqlCommand command;
MySqlDataReader read;
public void dbVerbinden()
{
try
{
connect = new MySqlConnection("Server=localhost;UID=root;Password=;");
connect.Open();
command = connect.CreateCommand();
}
catch (Exception EX)
{
MessageBox.Show("Keine Verbindung zur Datenbank");
}
}
public List<Spieler> dbSpielerEinlesen(List<Spieler> listSpieler)
{
try
{
string sql = "select * from christianarmasmartinez.Spieler;";
command.CommandText = sql;
read = command.ExecuteReader();
while (read.Read())
{
listSpieler.Add(new Spieler(Convert.ToInt32(read.GetValue(0)),
read.GetValue(1).ToString(),
read.GetValue(2).ToString(),
read.IsDBNull(3) ? 0 : Convert.ToInt32(read.GetValue(3))));
}
read.Close();
}
catch (Exception EX)
{
MessageBox.Show("Keine Spieler vorhanden \n " + EX.Message);
}
return listSpieler;
}
public void dbSpielerSpeichern(List<Spieler> listSpieler)
{
try
{
string sql = "insert into christianarmasmartinez.spieler (SpielerVorname,SpielerNachname) values ('"
+ listSpieler[listSpieler.Count - 1].SpielerVorname + "','"
+ listSpieler[listSpieler.Count - 1].SpielerNachname + "');";
command.CommandText = sql;
command.ExecuteNonQuery();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
public void dbSpielerPunkteSpeichern(List<Spieler> listSpieler)
{
try
{
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
public List<Land> dbLandEinlesen(List<Land> listLand)
{
try
{
string sql;
//if (Kontinent == String.Empty)
//{
sql = "select * from christianarmasmartinez.land;";
//}
//else
//{
// switch (Kontinent)
// {
// case "Afrika":
// sql = "select * from christianarmasmartinez.land;";
// break;
// case "Asien":
// sql = "select * from christianarmasmartinez.land where christianarmasmartinez.land = 'Asien';";
// break;
// }
//}
dbVerbinden();
command.CommandText = sql;
read = command.ExecuteReader();
while (read.Read())
{
listLand.Add(new Land(Convert.ToInt32(read.GetValue(0)),
read.GetValue(1).ToString(),
read.GetValue(2).ToString(),
read.GetValue(3).ToString(),
read.GetValue(4).ToString()));
}
read.Close();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
return listLand;
}
public void dbVerbindungSchließen()
{
try
{
connect.Close();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
}
}