Hallo!
Ich bin dabei, einen Algorithmus zu entwickeln, der aus einer angegebenen Menge an Buchstaben (Buchstaben-Pool) alle möglichen Kombinationen aus diesem erstellt. (für die Computergegner in einem Scrabble-Spiel)
Z.B. wenn ABC gegeben sind, dass er daraus folgende einmalige Kombinationen erstellt:
<pre>
CAB
BAC
ACB
ABC
BCA
CBA
</pre>
Ich habe eine funktionierende Version hinbekommen, die die möglichen Kombinationen anhand von Zufallszahlen im Bereich der Länge des Zeichenpools ermittelt und prüft, ob eine doppelte Kombination erstellt wurde. Allerdings ist diese Variante bei "größeren" Bereichen (z.B. bei 7 Stellen) ziemlich langsam.
Nun dachte ich daran, dieses Array "einfach" Vertikal von links nach rechts zu durchsuchen und zu prüfen, welcher Buchstabe aus dem Pool noch nicht auf der Y- <b>UND</b> X-Achse vorkommt und diesen dann einfach da einzusetzen.
<pre>
<font face="Fixedsys">
. x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ...<br>
---------------------------------------------------------<br>
y 1 | a | b | c | d | e | f | g |<br>
. 2 | b | a | d | c | f | g | e |<br>
. 3 | d | c | a | b | g | e | f |<br>
. 4 | ...<br>
. 5 |<br>
. . |<br>
</font>
</pre>
Theoretisch eigentlich kein Problem und für das Problem eine effektive Lösung, finde ich. Allerdings scheitert bei mir die Implementierung an Logik- und Denkfehlern. Wäre daher für Hilfestellungen echt dankbar!
MfG
Mario
Ich bin dabei, einen Algorithmus zu entwickeln, der aus einer angegebenen Menge an Buchstaben (Buchstaben-Pool) alle möglichen Kombinationen aus diesem erstellt. (für die Computergegner in einem Scrabble-Spiel)
Z.B. wenn ABC gegeben sind, dass er daraus folgende einmalige Kombinationen erstellt:
<pre>
CAB
BAC
ACB
ABC
BCA
CBA
</pre>
Ich habe eine funktionierende Version hinbekommen, die die möglichen Kombinationen anhand von Zufallszahlen im Bereich der Länge des Zeichenpools ermittelt und prüft, ob eine doppelte Kombination erstellt wurde. Allerdings ist diese Variante bei "größeren" Bereichen (z.B. bei 7 Stellen) ziemlich langsam.
Nun dachte ich daran, dieses Array "einfach" Vertikal von links nach rechts zu durchsuchen und zu prüfen, welcher Buchstabe aus dem Pool noch nicht auf der Y- <b>UND</b> X-Achse vorkommt und diesen dann einfach da einzusetzen.
<pre>
<font face="Fixedsys">
. x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ...<br>
---------------------------------------------------------<br>
y 1 | a | b | c | d | e | f | g |<br>
. 2 | b | a | d | c | f | g | e |<br>
. 3 | d | c | a | b | g | e | f |<br>
. 4 | ...<br>
. 5 |<br>
. . |<br>
</font>
</pre>
Theoretisch eigentlich kein Problem und für das Problem eine effektive Lösung, finde ich. Allerdings scheitert bei mir die Implementierung an Logik- und Denkfehlern. Wäre daher für Hilfestellungen echt dankbar!
MfG
Mario
Comment