home *** CD-ROM | disk | FTP | other *** search
- 300 WHILE HANOI : HANOI = FALSE
- 310 STOCKWERK = 9 : ANFANG = 3 - ZIEL + START
- : MITTE = 3 - ZIEL - START
- : DREHUNG%(1) = ANFANG * (1 + N MOD 2)
- : DREHUNG%(0) = ANFANG * (2 - N MOD 2)
- ' abhängig v. Ziel,Start u. N
- 320 FOR J=1 TO N
- : FUNDAMENT%(J) = START: WEGWEISER%(J) = 1
- : NEXT
- 330 BESCHRIFTUNG = TRUE : GOSUB 100
- 335 ' Abwechselnd werden immer das ursprünglich N-te
- ' Stockwerk und dann dasjenige umgesetzt, dessen
- ' übergeordnetes eine gerade Zahl von Umsetzungen
- ' hinter sich hat.
- 340 ECHTZEIT! = TIMER
- 350 FOR SCHRITT = 1 TO 2^N - 1
- 351 IF STOCKWERK>1 THEN STOCKWERK=1
- : ELSE STOCKWERK = 2
- : WHILE WEGWEISER%(STOCKWERK-1) > 0
- : STOCKWERK = STOCKWERK+1 : WEND
- 352 DREHUNG = DREHUNG%(STOCKWERK MOD 2)
- 353 VON = FUNDAMENT%(STOCKWERK)
- : NACH = (VON+DREHUNG) MOD 3
- 354 FUNDAMENT%(STOCKWERK) = NACH
- 355 WEGWEISER%(STOCKWERK) = -WEGWEISER%(STOCKWERK)
- 356 AUSGABE = TRUE : GOSUB 900
- 357 NEXT
- 360 ECHTZEIT! = TIMER - ECHTZEIT!
- 370 END.AUSGABE = TRUE : GOSUB 100
- 380 RETURN
- 389 WEND ' Hanoi
- ' Zeit-Optimierung mit GOSUB 900 in Zeile 356
- ' Die Wegweiser ergeben den in Zeile 3 erwähnten
- ' einschrittigen, binären zyklischen Code