Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

C64-Basic

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Knick



Anmeldungsdatum: 11.04.2005
Beiträge: 2

BeitragVerfasst am: 11.04.2005, 13:39    Titel: C64-Basic Antworten mit Zitat

Servus erstmal,

Mein erster Beitrag geht zwar nicht um QBasic, aber um´s C64-Basic. grinsen
Habe da nämlich ein (kleines) Code-Problem.
Ich stieß irgendwie zufällig zu diesem Forum hier, und muss sagen, gar nicht übel hier grinsen . 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 ... durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 11.04.2005, 19:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 11.04.2005, 20:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Knick



Anmeldungsdatum: 11.04.2005
Beiträge: 2

BeitragVerfasst am: 11.04.2005, 20:46    Titel: Antworten mit Zitat

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. Zunge rausstrecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz