Seite 4 von 6

Re: BASICODE in Java

Verfasst: 23.12.2023, 15:53
von Paul
Danke Thomas, ich habe mir inzwischen von deiner Seite auch den Kurs herunter geladen.
Seltsam finde ich bei Basicode.jar das Verhalten wenn Zeile 20 überschrieben wird.
20 REM
zum Beispiel bewirkt gar nichts :shock:
20 PRINT I dagegen schon :?

Re: BASICODE in Java

Verfasst: 23.12.2023, 16:12
von ein Thüringer
Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)

Sowohl REM als auch PRINT I wird ausgeführt und wenig später muss laut Reglement (der Wikipedia-Artikel ist auch sehr ausführlich und hilfreich) der Sprung zu Zeile 1010 erfolgen.

"Meine" Seite ist Bestandteil unserer Klub-Homepage und Werner kümmert sich dankenswerterweise schon mindestens zwanzig Jahre darum.

Re: BASICODE in Java

Verfasst: 23.12.2023, 16:29
von Paul
ein Thüringer hat geschrieben: 23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)
Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätte :D

Re: BASICODE in Java

Verfasst: 23.12.2023, 17:49
von wnb
.
> "Meine" Seite ist Bestandteil unserer Klub-Homepage und Werner kümmert
.. sich dankenswerterweise schon mindestens zwanzig Jahre darum.


Das ist schon Deine Seite, Thomas ... Ehre, wem Ehre gebührt ...
Du füllst Sie mit Inhalt und Leben ... ich mache nur das bisschen HTML.

Wünsche Euch allen auf diesem Wege ein besinnliches Weihnachtsfest
und im nächsten Jahr weiterhin viel Freude mit unserem tollen Hobby !!!

VG Werner

-

Re: BASICODE in Java

Verfasst: 24.12.2023, 11:44
von haupz
Paul hat geschrieben: 23.12.2023, 14:31 Dort sind auch jeweils die Lizenzen dabei.
...
Heute habe ich auch endlich ein aktuelles Java installiert und ein paar Basicodes ausprobiert.
Danke für die Links, und Glückwunsch zum Ausprobieren!

Re: BASICODE in Java

Verfasst: 24.12.2023, 11:50
von haupz
Paul hat geschrieben: 23.12.2023, 16:29
ein Thüringer hat geschrieben: 23.12.2023, 16:12 Dort solltest Du auch nix machen (ist Michaels Job), nur in den Zeilen ab 1000. ;)
Auf die Idee wäre ich auch gar nicht gekommen wenn nicht das Beispiel SCROLL.BAS genau das getan hätte :D
... ich bekenne mich schuldig. ;)

Dieses Beispiel (aus der Frühzeit der Implementierung) ist "reines BASIC", kein BASICODE. So lang man nicht irgendwelche der BASICODE-Subroutinen (GOTO 20/950, GOSUB irgendwas <1000) verwendet, ist dieses BASICODE einfach nur ein minimalistisches BASIC. Deswegen funktioniert scroll.bas "einfach so": es ist kein den BASICODE-Konventionen entsprechendes Programm, sondern wie gesagt "reines BASIC".

Ganz einfach gesagt: wenn man irgendwelche Codezeilen mit Zeilennummern <1000 produziert, ist man "selbst schuld", wenn irgendwas holpert, andererseits ist man aber auch auf der sicheren Seite, solang man keinerlei BASICODE-Subroutinen benutzt.

Die BASICODE-Subroutinen sind in dieser Variante allesamt nicht in BASIC implementiert, sondern in Java (siehe Subroutines.java). Es gibt überhaupt keinen Code mit Zeilennummern <1000.

Re: BASICODE in Java

Verfasst: 24.12.2023, 13:01
von haupz
Paul hat geschrieben: 23.12.2023, 15:22 Am Ende fehlt dann das mandatorische GOTO 950
Diese Implementierung terminiert unter drei Bedingungen:
1. ein GOTO 950 wird ausgeführt
2. ein END wird ausgeführt
3. nach der letzten Zeile kommen keine mehr

Wenn ein Programm also einfach linear durchläuft, und die letzte Zeile ausgeführt wurde, ist Schluss. Was auch sonst? :)

Re: BASICODE in Java

Verfasst: 25.12.2023, 14:36
von Paul
Tree.jpg
(107.64 KiB) Noch nie heruntergeladen

Code: Alles auswählen

1000 GOTO 20: REM Scrollp.bas
1010 DIM CC(2): CC(0) = 4 : CC(1) = 0: GOSUB 600
1015 VE = 0: HO = 0.5: CC(0)=6: SR$="*":GOSUB 650
1020 FOR PA = 1 TO 20
1025 IF PA > 16 THEN GOTO 1062
1030 FOR PB = 0 TO (PA / 2)
1031 VE = (PA/26) : HO = ((16 + PB)/32) : CC(0)=4 
1034 GOSUB 260:REM RND ergebnis in RV
1035 IF RV < 0.9 THEN GOTO 1041
1036 SR$ = "O" : GOSUB 650
1037 GOTO 1042
1041 SR$ = "#" : GOSUB 650
1042 VE = (PA/26) : HO = ((16 - PB)/32) 
1043 GOSUB 260: IF RV < 0.9 THEN GOTO 1050
1045 SR$ = "O" : GOSUB 650
1046 GOTO 1060
1050 SR$ = "#" : GOSUB 650
1060 NEXT PB
1061 GOTO 1070
1062 VE = (PA/26) : HO = (15/32) : SR$="####": GOSUB 650
1070 NEXT PA
1080 VE = (21/26) : HO = (8/26) : CC(0)=7: SR$="Frohe Weihnachten": GOSUB 650
1999 GOTO 950

Re: BASICODE in Java

Verfasst: 25.12.2023, 16:57
von ein Thüringer
Schön gemacht, gefällt mir, Paul!

Vor allem, wie die Kugeln bei jedem Durchlauf woanders hängen:
Screenshot_20231227_052418.jpg
Screenshot_20231227_052418.jpg (177.78 KiB) 1747 mal betrachtet

Re: BASICODE in Java

Verfasst: 25.12.2023, 18:52
von wnb
.
Prima ... Weihnachten auch auf dem JOYCE ... Merci Paul !
.
.Bild
.
.