|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Knick
Anmeldungsdatum: 11.04.2005 Beiträge: 2
|
Verfasst am: 11.04.2005, 14:39 Titel: C64-Basic |
|
|
Servus erstmal,
Mein erster Beitrag geht zwar nicht um QBasic, aber um´s C64-Basic.
Habe da nämlich ein (kleines) Code-Problem.
Ich stieß irgendwie zufällig zu diesem Forum hier, und muss sagen, gar nicht übel hier . Hab sowieso vor, auch QBasic zu beherrschen.
Wieauchimmer, lange Rede kurzer Sinn:
Habe mal wieder seit langer Zeit den C64 angeschmissen, und wollte mal versuchen, ein Textadventure hinzubekommen..
Erstmal der Code (ist nur ein Beispiel):
Code: |
10 RM=1
20 DIM RM$(2):DIM GS$(3):DIM LO(3)
30 FOR X=1 TO 2:READ RM$(X):NEXT
31 FOR X=1 to 3:READ GS$(X):NEXT
70 PRINT RM$(RM):PRINT
80 ON RM GOTO 2000,2010
90 FOR X=1 TO 3:IF LO(X)=RM THEN PRINT GS$(X):NEXT
100 PRINT:PRINT
101 INPUT RM
102 GOTO 70
1001 DATA"RAUM 1","RAUM 2"
1002 DATA"DATENWUERFEL,ROT","SAEBEL","ROSTIGER KELCH"
1003 DATA 2,2,1
2000 PRINT"DU BEFINDEST DICH GERADE IN RAUM 1. **TEXT TEXT**"
2009 GOTO 90
2010 PRINT"DU BIST IN RAUM 2. **TEXT TEXT**"
2020 GOTO 90
|
So. Ist wohl sicher simpel. Kommen wir zu meinem Problem:
In Zeile 1003 [LO(3)] habe ich einfach die Orte der Gegenstände [GS$(3)] festgelegt. Also der erste Gegenstand in Raum 2, der zweite auch in Raum 2, der dritte in Raum 1.
Zeile 90 fragt ab, ob sich irgendeiner der Gegenstände im aktuellem Raum befindet. Den Raum wurde ja vorher mit RM festgelegt.
Eigentlich sollte es reibungslos funktionieren, aber je nachdem wie man die Position der Gegenstände setzt (in Zeile 1003 wie gesagt), werden später immer nur in einem Raum Gegenstände ausgegeben (Zeile 90)... und nie in beiden Räumen.
Wo liegt denn nun der Fehler?
Achja, ich hoffe, man kann meine etwas wirre Schreibweise wenigstens halbwegs interpretieren ... |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.04.2005, 20:45 Titel: |
|
|
Spezialisierter Artikel zu diesem Thema:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Abenteuerspiel.html
Zu Deinem Problem: Ist schlussendlich immer eine Definitionsfrage, die man dann lediglich richtig umsetzen (implementieren) muss. Im Prinzip verwendest Du dasselbe Grundprinzip bei der Gegenstandsverwaltung wie in meinem Artikel. Ich habe es dort noch verfeinert, dass 0=trägt man gerade bei sich und -1=verbraucht/zerstört bedeutet. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Stephan
Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 11.04.2005, 21:33 Titel: |
|
|
Mach mal das NEXT am Ende von Zeile 90 in eine extra zeile.
Zur zeile 80 eine Frage,
Ist zwar schon ziemlich lange her,das ich C64 programmiert habe,
aber C64 Basic ist ON x GOTO eigentlich nicht. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
|
Knick
Anmeldungsdatum: 11.04.2005 Beiträge: 2
|
Verfasst am: 11.04.2005, 21:46 Titel: |
|
|
Ja! So geht´s endlich, danke dir!
hm, habe oben im code-listing eine zeile vergessen.:
Code: | 32 FOR X=1 to 3:READ lo(X):NEXT |
Hm. Dann hat sich das ja erledigt
@dreael
Zitat: | Im Prinzip verwendest Du dasselbe Grundprinzip bei der Gegenstandsverwaltung wie in meinem Artikel. Ich habe es dort noch verfeinert, dass 0=trägt man gerade bei sich und -1=verbraucht/zerstört bedeutet. |
Klar, es war nur als Test für die Räume und deren zugeordneten Gegenstände gedacht,
Achja, wegen des ON...GOTO: Ich habe den Code direkt am C-64 eingetippt. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|