C# :: Aufgabe #196 :: Lösung #3
3 Lösungen

#196
Tic Tac Toe - Den Spieleklassiker grafisch darstellen
Fortgeschrittener - C#
von Gelöschte Person
- 18.12.2017 um 21:18 Uhr
Setze den allbekannten Klassiker Tic Tac Toe in einer Windows Form um. Es sollte Grafisch erkennbar sein, welche Felder schon belegt wurden. Am sollte ein Spieler Gewinnen so soll dies angezeigt und das Spiel anschließen neu gestartet werden. Sollten alle Felder gefüllt sein und kein Gegner feststehen, so sollte ein Unentschieden angezeigt, und anschließen das Spiel neu gestartet werden. Vorzugsweise sollte auch erkennbar sein, welcher Spieler gerade am Zug ist. Ein Computergegner ist nicht von Nöten, solltet ihr aber Lust darauf haben so könnt ihr auch das umsetzen.
#3

von Manita112 (40 Punkte)
- 20.01.2018 um 10:38 Uhr

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 TicTacToe { public partial class Form1 : Form { public Form1() { InitializeComponent(); } static int counter = 0; bool spieler = true; private void PButton(object sender, EventArgs e) { Button PButton = (Button)sender; if (spieler) { PButton.Text = "X"; spieler = false; } else { PButton.Text = "O"; spieler = true; } PButton.Enabled = false; counter++; gewinner(); } private void exitToolStripMenuItem1_Click(object sender, EventArgs e) { Application.Exit(); } private void neuesSpielToolStripMenuItem1_Click(object sender, EventArgs e) { counter = 0; spieler = true; foreach (Control c in Controls.OfType<Button>()) { Button neu = (Button)c; neu.Enabled = true; neu.Text = ""; } } private void gewinner() { if ((buttonA1.Text == buttonA2.Text) && (buttonA2.Text == buttonA3.Text) && (!buttonA1.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonB1.Text == buttonB2.Text) && (buttonB2.Text == buttonB3.Text) && (!buttonB1.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonC1.Text == buttonC2.Text) && (buttonC2.Text == buttonC3.Text) && (!buttonC1.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonA1.Text == buttonB1.Text) && (buttonB1.Text == buttonC1.Text) && (!buttonA1.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonA2.Text == buttonB2.Text) && (buttonB2.Text == buttonC2.Text) && (!buttonA2.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonA3.Text == buttonB3.Text) && (buttonB3.Text == buttonC3.Text) && (!buttonA3.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonA1.Text == buttonB2.Text) && (buttonB2.Text == buttonC3.Text) && (!buttonA1.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if ((buttonA3.Text == buttonB2.Text) && (buttonB2.Text == buttonC1.Text) && (!buttonA3.Enabled)) { nachgewinn(); if (spieler) { MessageBox.Show("O hat gewonnen"); } else { MessageBox.Show("X hat gewonnen"); } } else if (counter == 9) { MessageBox.Show("Unentschieden!"); } } private void nachgewinn() { foreach (Control c in Controls.OfType<Button>()) { Button PButton = (Button)c; PButton.Enabled = false; } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1