TIA 4 Gewinnt Spiel??

bkizilkaya

Level-1
Beiträge
93
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag an alle die diesen Beitrag lesen

Ich bin jetzt am SCL lernen und dabei möchte ich als Projekt für die Schule
ein 4 Gewinnt zu programmieren.
Das 4 Gewinnt muss kein Autonomer Gegner haben sonder 1vs1. Es wird mit RGB's LED's simuliert.
Das Problem ist das ich noch keine Ahnung habe wie es lösen sollte, aber ansonsten verstehe ich mit der SPS-Technik gut.

Wenn ihr mir auch nur ein kleiner Tipp geben könnt, wäre es für mich sehr toll.


Ich danke Ihnen im Vorraus


Mit Freundlichen Grüssen


Burak Kizilkaya
 
Puh... ziehmlich coole Idee und sicher nicht einfach. :cool:

Mal abgesehen von der Steuerung wo ein Stein landet wenn man ich in eine Spalte wirft (finde den ersten freien Platz über dem ersten belegten Platz) wird wohl die Analyse wann wer gewonnen hat das schwierigste. Ich versuch mal nieder zu schreiben was mir auf die schnelle mal so einfällt.

Das wichtigste wird zunächst eine vernünftige Datenstruktur sein mit der du das Spielraster darstellst. Ich hab kurz überlegt ob man irgendwie
binär arbeiten könnten um später eventuell einfacherer Vergleiche anstellen zu können aber mir ist eigentlich nur ein 7x6 Array aus Integern eingefallen in dem du dann von mir aus 1 oder 2 für den Stein des jeweiligen Spielers schreibst.

Das Auswerten könntest du mit Schleifen machen die die Spalten/Zeilen mit indirekter Adressierung ansprechen.

Zuerst eine Schleife für die senkrechten: Eine Prüfung in der du die einzelnen Felder einer Spalte für Spieler 1 prüfst. Also irgendwie so:
Beginn Array an der Stelle [1/1] -> wenn 1 dann Zähler hoch-zählen
nächster Schleifendurchlauf an Stelle [1/2] dann [1/3] usw. Wenn der Zähler 4 erreicht hat ein Spieler 1 gewonnen.
Darüber könntest du dann eine Schleife legen die alle Spalten abarbeitet.

Soviel zu den senkrechten, für die waagrechten gilt eigentlich dass selbe, nur dass du dich von [1/1] nach [2/1] usw. vorarbeitest und die darüber liegende Schleife die Zeilen wechselt ([2/1] - [2/2] - usw.]

Die schrägen sind komplizierter, funktionieren aber nach dem selben Prinzip. Du brauchst hier wieder 2 Schleifen für die beiden Arten wie die schrägen Reihen liegen können. Anders ist jedoch dass du in jedem Durchlauf sowohl x als auch y ändern musst. Müsste dann:
[4/1] - [3/2] - [2/1] - [1/4] (1.Durchlauf)
[5/1] - [4/2] - [3/3] - [2/4] - [5-1] (2.Durchlauf) usw...
prüfen.

Lässt sich eigentlich ganz einfach als for-Schleife schreiben.
Das selbe dann adäquat angepasst für die andere Orientierung der schrägen Reihen.

Und das ganze noch für beide Spieler, wobei hier könnte noch eine allumfassende Schleife die deinen Vergleichswert austauscht reinpassen.

Ganz schön kompliziert und blutig, aber heut ist bei mir offizieller "Wie viele Schleifen passen in einen Codevorschlag"-Tag

Das war jetzt nur schnell ausgedacht, vielleicht hat wer noch besserer Ideen. Und die gibt es bestimmt. :p
 
Zuletzt bearbeitet:
Ich danke euch beiden für die Antworten.

In beiden Antworten redet Ihr über Array, aber ich habe keine Ahnung was mit Array gemeint ist.

Könntet Ihr mir paar Therio beibringen über Array und ein paar beispiele aufzeigen für Array
 
Zurück
Oben