Algorithmus-Problem

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 28 9 2024  12:21:19      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Algorithmus-Problem

    







BID = 430332

Steppenwolf

Schreibmaschine



Beiträge: 1757
Wohnort: Zürich, Schweiz
Zur Homepage von Steppenwolf
 

  


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
Zur Homepage von Steppenwolf

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&auml;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
Zur Homepage von Steppenwolf

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.


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


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