Ah daran habe ich nicht gedacht, gibt es da schon eine Funktion um direkt nur Bilddateien anzusprechen?
ich habe zwar 10 CheckBoxen, wobei jede für ein Format steht, doch sind hier nur die gängigen hinterlegt. Da wir ja bequem sind wäre eine automatische Auswahl ja wesentlich schöner.....
CheckBox[] cb = new CheckBox[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6, checkBox7, checkBox8, checkBox9, checkBox10, checkBox11 };
Hallo zusammen,
ich möchte die Möglichkeit einbauen alle Formate(z.B. Bildformate) jedoch haut er mir hier ständig eine Datei namens "Desktop.ini" rein.
gibt es eine Möglichkeit dies auszuschließen an der stelle dirInfo.GetFiles("*.*Ausnahme von ".ini"")
// prüft ob alle Formate Ausgewählt sind
if (checkBox1.Checked == true)
{
foreach (FileInfo fInfo in dirInfo.GetFiles("*.*"))
{
listeBilder.Add(new Bild(fInfo));
}
}
else
{
foreach (CheckBox box in cb)
{
if (box.Checked == true)
{
Auswahl.Add(box);
}
}
foreach (CheckBox format in Auswahl)
{
foreach (FileInfo fInfo in dirInfo.GetFiles("*." + format.Text))
{
listeBilder.Add(new Bild(fInfo));
}
}
}
Falls Relevant, ich möchte alle Bilder eines Ordners in eine Liste packen, die Metadaten kommen in eine Datenbank, danach wird eine Verzeichnisstruktur angelegt welche auf dem Erstellungsjahr basiert....bis hier läuft alles.
Abschließend lasse ich alle Bilder anzeigen und hier springt er raus da " .ini " zum Abbruch führt.
Diese sollte aber gar nicht ausgewählt worden sein 😦
Freue mich über Hilfe
@ Palin eine gute idee, ich werde das noch einbauen.
@ Sir Rufo, nette Fragen und passende Antworten.
Werde mir deinen Code jetzt mal genauer angucken und hoffe das ich da durchsteige.
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
}
}
}
Meine Datenbank hat eine Tabelle Land in der
//// LandID, LandKontinent,LandHauptstadt/LandName/LandFlagge ///
Habe jetzt noch folgendes Problem, wenn ich eingangs mir einen Kontinent auswählen möchte ob die Fragen darauf zu begrenzen, kann ich die Auswahl der Zufallszahlen weiter eingrenzen indem ich sage nur Zahlen (entspricht je der LandID) welche als Kontinent den ausgewählten Kontinent haben....
Hallo Danke für eure Antworten,
schulisch bedingt sollen wir die Form verwenden,verstehe ich jedoch auch nicht.
Eine Struktur insoweit das ich weiß was passieren muss habe ich doch hapert es an der Umsetzung.
Einige Probleme habe ich lösen können doch bleiben 2 wesentliche Probleme.
switch (AuswahlRechts)
{
case "Flagge":
pictureBox1.Image = Image.FromFile(@"C:\Users\ca.martinez\Desktop\Länderspiel\Grafik\flags-big\" + listLand[ZahlenFrage[counter]].LandFlagge + ".png");
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
if (AuswahlLinks.Equals("Stadt"))
{
txtArray[ZahlenAntwort[0]].Text = listLand[ZahlenFrage[counter]].LandHauptstadt;
txtArray[ZahlenAntwort[1]].Text = listLand[ZahlenAntwort[0]].LandHauptstadt;
txtArray[ZahlenAntwort[2]].Text = listLand[ZahlenAntwort[1]].LandHauptstadt;
txtArray[ZahlenAntwort[3]].Text = listLand[ZahlenAntwort[2]].LandHauptstadt;
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;
Hallo zusammen,
Ich schreibe gerade ein kleines Spiel welches via SQL sämtliche laender mit Hauptstadt,Flagge und Kontinent bereitgestellt bekommt. In der DB ist eine 2 Tabelle Spieler.
Nach dem Programmstart wird ein Spieler ausgewählt und danach entscheidet dieser ob er Land,Stadt,Flagge von land,stadt,flagge spielt und ob alle Kontinente oder mit eingrenzung.
Danach öffnet eine 2.form für das Spiel und hier hänge ich.
Bis jetzt habe ich eine list mit Länder Objekten gefüllt und ein Array mit Zufallszahlen generiert um 10 zufaellige Fragen zu stellen.
Die Form hat eine picturebox und ein Textfeld wo je nach Auswahl eins enable ist. Für die Antwort gibt es 4 Button die ich in ein Array gepackt habe.
Wie bekomme ich jetzt die richtige Frage(je nach Auswahl ) und die richtige Antwort sowie 3 falsch Antworten in die Form
Ich brauche gedanklich einen kräftigen anstoss.
Vielen Dank vorab