Algorithmus-Problem Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
|
|
|
BID = 430332
Steppenwolf Schreibmaschine
Beiträge: 1757 Wohnort: Zürich, Schweiz
|
|
Hallihallo,
ich tüftel gerade an einer Software, die 4-Gewinnt gegen einen Menschen spielen können soll.
Dabei benutze ich an einer Stelle ein zweidimensionales Array.
Das Array ist X "Ebenen" tief. Ist X z.B. = 8, dann gibt es kein Array(9). Array(8) ist dann der letzte Eintrag.
Zu Beginn steht an jedem Platz eine "1"
Also z.B. Array(4)=1 und Array(8)=1 etc. etc.
Nun soll (in einer While-Schleife) die letzte Stelle des Arrays (Also die X-te Stelle) um eins erhöht werden. Soweit kein Problem. Doch sobald diese letzte Stelle den Wert "8" erreicht, soll eine 0 geschrieben werden, dafür sollte dann die zweitletzte Stelle um eins erhöht werden usw, bis ich ganz durch bin.
Ich zähle also sozusagen eine Zahl hoch, nur ist diese Zahl zu Beginn 1111111...111 und es wechselt schon bei 8 zum nächsthöheren Eintrag, der dann hochgezählt wird.
Zuallerletzt steht dann also 88888888...8887 im Array.
Frage nun: Wie kann ich das algorithmisch am besten umsetzen? Ich grübel da schon eine Weile dran rum...
Das Problem ist auch, dass das Ganze nicht an einem Stück passieren darf, sprich, nach jeder Erhöhung eines Eintrags, muss es den Algorithmus verlassen, beim darauf folgenden Zugriff muss es jedoch weitergehen, wo man aufgehört hat.
Ideen? Fragen?
Herzlichen Gruss
Mario
_________________
Meine Projekte:
http://mauerer.m.googlepages.com |
|
BID = 430351
Jornbyte Moderator
Beiträge: 7143
|
|
Poste mal deine Schleife.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten. |
|
BID = 430361
Steppenwolf Schreibmaschine
Beiträge: 1757 Wohnort: Zürich, Schweiz
|
Die sieht grob so aus:
While zugwahl(1) <> (ungleich) 9
[Unwichtig]
[*]
Wend
momentan ist "Zugwahl" bei mir 4 Ebenen tief. Diese "4" soll aber auch variabel sein.
Dort, wo das Sternchen ist, soll nun "Hochgezählt" werden, und zwar bei jedem Durchlauf der While-Schleife um eins, bis die "Zahl" "überläuft", bis also 8888 im Array verteilt steht. (zugwahl(1)=8, zugwahl(2)=8 etc.)
Falls dann noch eins hochgezählt wird, steht bei "Zugwahl(1)" eine 9 drin und die Schleife wird verlassen.
Nur, wie kann ich das zusammenbasteln... Besonderst die Tatsache, dass die "Tiefe" des Arrays variabel ist bereitet mir Probleme.
Herzlichen Gruss
Mario
_________________
Meine Projekte:
http://mauerer.m.googlepages.com
[ Diese Nachricht wurde geändert von: Steppenwolf am 17 Mai 2007 22:57 ]
[ Diese Nachricht wurde geändert von: Steppenwolf am 17 Mai 2007 22:57 ]
|
BID = 430369
Jornbyte Moderator
Beiträge: 7143
|
Das Spiel kenne ich nicht (bin kein Spieler) deshalb kann ich dir nicht folgen.
Mit Schleife meinte ich sowas in der Art:
Code : |
For i=0 to 8 ' abbruch bei 9
if Zugwahl(i) <9 then
Zugwahl(i)=Zugwahl(i)+1
end if
if i>8 then
i=1
exit
end if
next |
|
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 430376
Steppenwolf Schreibmaschine
Beiträge: 1757 Wohnort: Zürich, Schweiz
|
Hm, das Spiel musst du ja nicht kennen, mein Problem hat ja keinen direkten Bezug dazu
Hmhm, ich muss da morgen noch dran rumstudieren.
Man könnte auch sagen, dass ich alle möglichen Kombinationen durchgehen möchte.
Sprich, falls das Array 4 Ebenen lang ist, und Zahlen von 1 bis und mit 8 möglich sind, möchte ich alle möglichen "Kombinationen" durchgehen. Dabei kann ich aber nicht "von vorne" hochzuzählen beginnen, muss "von hinten" losgehen, also wie wenn man eine normale Zahl hochzählt. Die einzelnen Ziffern sind halt in den einzelnen Arry-Plätzen und es geht nur bis 8.
_________________
Meine Projekte:
http://mauerer.m.googlepages.com
|
BID = 430377
Jornbyte Moderator
Beiträge: 7143
|
Code : |
if Zugwahl(i) > 8 or (Zugwahl(i>8) then
bla bla
end if
|
|
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag heute wurden bisher 14 Beiträge verfasst © x sparkkelsputz Besucher : 182087949 Heute : 2429 Gestern : 6155 Online : 529 28.9.2024 12:21 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0326089859009
|