Länderspiel
Verfasst: Do Jan 26, 2017 8:56 pm
Hallo zusammen, ich habe folgendes Problem aber erstmal kurze Fakten.
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
Dazu der Code 2.Form
Und Klasse Datenbank
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);
}
}
}
}