windelterrorist
Goto Top

Flussdiagramm erstellen und Programmierung

Hallo!


Ich habe wenig Erfahrung mit VBA und brauche dringend eure Hilfe! .......

Habt ihr vielleicht eine Idee wie ein Flussdiagramm für das Spiel 4 Gewinnt aussehen könnte? Damit erleichtert es mir das Programmieren...


Kriterien sehen wie folgt aus:

-> 2 Spieler geben die namen ein (Input)
-> In wird das Feld von C3 - H6 definiert
-> Wennmöglich nicht kompliziert
-> Nach jedem Spielzug soll überprüft werden
-> Spiel ist beendet wenn Spieler1 oder 2 gewonnen hat oder alle Felder voll sind

Bittee helfen :D ich verzweifle langsam schon... :/

Tipps wäre der hammer, programmier-Tips natürlich auch face-smile


Gruss,

For2men

Content-ID: 274945

Url: https://administrator.de/contentid/274945

Ausgedruckt am: 26.11.2024 um 01:11 Uhr

eisbein
eisbein 18.06.2015 um 19:35:11 Uhr
Goto Top
Hallo!

Klingt irgendwie nach Hausübung face-wink

oder so und ich verzweifle langsam lassen auf kein konkretes Problem schließen!

Ab besten postest du hier den Code der dich verzweifeln lässt, dann können wir dir zielgerichtete Tipps geben.

Gruß
Eisbein
windelterrorist
windelterrorist 18.06.2015, aktualisiert am 20.06.2015 um 12:56:52 Uhr
Goto Top
Welchen Code? Ich frage nach einem Struktogramm damit ich schneller vorankomme... aber ja das hab ich mir so überlegt:

1. Spielfeld definieren
2. Spieler1 Name eingeben
3. Spieler2 Name eingeben
4. Zähler i=1
5. if i mod2 = 0 (wenn dieZahl ungerade/gerade ist)
5.1 Falls ja, Feldeingabe = X
5.2 Falls nein, Feldeingabe = O

Zähler wird ja dann erhöt um eins und dann wird sich Nr 5. verändern...

Nun hab ich nur definiert ob er X oder O (X = Spieler 1,O = Spieler 2) ins Feld eingeben muss. Ich weiss ned genau wie ich weier machen soll...

Auf jeden Fall wird bei einem Klick (ActiveCell.Click = Feldeingabe) das X oder der O gesetzt. Nun aber brauch ich noch Loops und die Erkennung ob jemand gewonnen hat...

Gruss
windelterrorist
114757
Lösung 114757 18.06.2015, aktualisiert am 20.06.2015 um 19:19:22 Uhr
Goto Top
Moin lieber Terrorist,
möglicher Ablauf

  1. Spielfeld als Range definieren
  2. Spieler definieren
  3. In einer Variablen abwechselnd den aktuellen Spieler speichern so dass klar ist welches Zeichen beim nächsten Klick in die aktive Zelle eingesetzt werden muss
  4. Bei jedem Klick nun folgende Dinge prüfen:
    • Alle drei Zeilen des Spielfelds-Ranges durchlaufen und bei jeder Zeile die Anzahl von X und O zählen, wenn dabei einer der Summen =3 dann hat der jeweilige Spieler gewonnen = Exit Sub
    • Alle drei Spalten des Spielfelds durchlaufen und bei jeder Spalte die Anzahl von X und O zählen, wenn dabei einer der Summen =3 dann hat der jeweilige Spieler gewonnen = Exit Sub
    • Jeweils Zellen A1,B2,C3 und C1,B2,A3 über die Diagonale summieren um die Diagonalen zu überprüfen, wenn eine der beiden Summen =3 Gewonnen, Exit Sub
    • Nicht leere Zellen des Spielfeldes prüfen, wenn diese gleich 9 ...=> Spiel beenden / oder eben über einen Counter der die Klicks zählt, kann man ja machen wie man es lieber mag

Für das zählen von Zellen mit bestimmten Werten gibt es vordefinierte Worksheet-Functions (Countif). Zum zählen nicht leerer Zellen gibt es ebenfalls eine Worksheet-Function (CountA)
WorksheetFunction-Methoden

Und schon ist die Windel vollgeschissen face-big-smile.

Ich hätt dir natürlich das ganze auch in VBA hier reinstellen können, aber du willst es bestimmt selber versuchen, deshalb habe ich erst mal keinen Code gepostet. Aber mit den Infos sollte das eigentlich jetzt jeder VBA Neuling mit einem durchschnittlichen IQ hinbekommen.

Gutes Gelingen
Gruß jodel32
eisbein
eisbein 18.06.2015 aktualisiert um 21:47:17 Uhr
Goto Top
Und schon ist die Windel vollgeschissen

Dann wollen wir gespannt sein ob der Lehrer seinen Schülern was beibringen konnte face-wink

Gruß
Eisbein
windelterrorist
windelterrorist 19.06.2015 um 07:49:55 Uhr
Goto Top
Hey jodel,

vielen Dank für deine Hilfe! Ich habe deine Überlegung verstanden face-smile!

Würdest du das mit der Spielererkennung (gerade/ungerade) auch so machen?

Mit einem Klick des Spielersx wird das X, bzw der Kreis gesetzt und anschliessend überprüft ob er gewonnen hat. Geht das mit der Klick-Funktion soweit in Ordnung? face-smile

Gruss
windelterrorist
114757
Lösung 114757 19.06.2015, aktualisiert am 20.06.2015 um 19:19:29 Uhr
Goto Top
Würdest du das mit der Spielererkennung (gerade/ungerade) auch so machen?
Kannst du machen das ist Geschmacksache. Mach es wie du willst.
Geht das mit der Klick-Funktion soweit in Ordnung?
Kommt drauf an was du damit genau meinst ? In VBA wäre das ja das Change Ereignis des Worksheets. Und bei jedem neuen Spielzug musst du selbstredend immer alle Prüfungen durchführen, logisch.
eisbein
eisbein 19.06.2015 um 08:55:05 Uhr
Goto Top
Hallo!

Klingt für mich als ob das Ganze in Richtung Bitmuster geht. So kenne ich das von diversen Aufgaben der 1. Klasse.

Wenn du die Spielerkennung gleich mit O oder X machst, könntest du dir eine Variable sparen.

Gruß
Eisbein
windelterrorist
windelterrorist 20.06.2015 aktualisiert um 19:25:04 Uhr
Goto Top
Nochmals kurz vielleicht...

Ich wäre euch sehr dankbar, wenn ihr mir bei dem überprüfen des Feldes ein wenig helfen würdet... (was Coden angeht)...

Mein Kopf kommt vor lauter Loops nicht mehr mit...


Ich wäre euch sehr dankbar face-smile


Gruss
windelterrorist
114757
114757 20.06.2015 aktualisiert um 20:18:34 Uhr
Goto Top
Öhm ... nur mal so als Frage weil mir das gerade so auffällt, warum hast du deinen Ursprünglichen Beitrag von TicTacToe auf vier gewinnt geändert ??
Ziemlich confusing für die Nachwelt face-wink