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:

Variablenübergabe

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Schnism
Gast





BeitragVerfasst am: 13.10.2004, 11:58    Titel: Variablenübergabe Antworten mit Zitat

Hallo!

Kann ich eine key$ variable an eine temp abgeben?
also in form von: a=key$ (a soll den NUMMERISCHEN wert von key$ bekommen, da ich weiß, das key$ nur zahlen bekommt.. )

qs(a2) = key$: ents(a2) = key$ <--
das key$ bekoomt ja durch DO: key$ = INKEY$ seinen tastaturwert ..
aber wie bekomme ich die zahl daraus traurig
Nach oben
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.10.2004, 12:42    Titel: Antworten mit Zitat

funktion heiß ASC
tastenzahl% = ASC(INKEY$)
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 13.10.2004, 12:58    Titel: Antworten mit Zitat

fehler traurig
_________________
"...nichts ist so schlimm wie mein programmcode!"


Zuletzt bearbeitet von Schnism am 13.10.2004, 13:04, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 13.10.2004, 13:02    Titel: Antworten mit Zitat

qs(a2) = ASC(INKEY$) <---- unzulässiger funktionaufruf traurig

das ganze mal.. vielleicht wird das klarer..

DO: key$ = INKEY$
IF key$ = "1" OR key$ = "2" OR key$ = "3" AND ents(a2) = 0 AND baus(a2) = 0 THEN
qs(a2) = ASC(INKEY$): ents(a2) = ASC(INKEY$)
a9(a2) = a9(a2) - (sc(a2) * sver * ASC(INKEY$))
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)
END IF
END IF

qs(a2) und ents(a2) sollen demnach ja 1, 2 oder 3 übergeben bekommen..
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.10.2004, 13:02    Titel: Antworten mit Zitat

ASC(INKEY$) funktioniert auf jeden Fall. Es muss an dem Teil vor dem = liegen.

Ist das Datenfeld auch vom Typ Integer? und die Variable a2 auch?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 13.10.2004, 13:09    Titel: Antworten mit Zitat

du kannst fragen stellen traurig
integer.. was weiß ein alter mann von INTEGER grinsen

qs ist einfach nur eine variable.. (a2) jedoch auch..
es liegt in einer schleife..
qs ist eine variable für sagen wir AUTO
a2 die für member nummer 1 oder 2 oder 3..
ich KÖNNTE auch schreiben qs(1) jedoch soll a2 ja als durchlauf entweder 1 oder 2 oder ..(bis max 6 und dann wieder von 1 beginnend)) enthalten

gesetzt ist der anfang mit DIM qs(5)
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 13.10.2004, 13:12    Titel: Antworten mit Zitat

müsste ich dann schreiben...

DO: key$ = INKEY$
IF key$ = "1" OR key$ = "2" OR key$ = "3" AND ents(a2) = 0 AND baus(a2) = 0 THEN
a=asc(inkey$)
qs(a2) = a: ents(a2) = a
a9(a2) = a9(a2) - (sc(a2) * sver * a)
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)
END IF
END IF


???????
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 13.10.2004, 13:17    Titel: Antworten mit Zitat

nein... grade versucht.. der unzuläßige funktionsaufruf tritt auch dabei auf..
auch a=asc(inkey$) geht so nicht..
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 13.10.2004, 13:34    Titel: Antworten mit Zitat

hm, ich weiß auch warum... mit dem Kopf durch die Mauer wollen

wenn inkey$ = "" gibts bei ASC("") immer unzulässigen Funktionsaufruf.
Code:
do:t$ = inkey$: loop until t$ <> ""
a = ASC(INKEY$)


dann gehts.
aber achtung bei Pfeiltasten und ähnlichem ist inkey$ = CHR$(0) + chr$(72) (bei der Hoch-Taste). Dan gibts ASC immernur den Wert des ersten Zeichens, also 0 zurück.

PS: Integer heißt Ganzzahl.
wenn du keinen Typ angibst und auch kein DEFINT A-Z oder so hast ist eine Variable immer vom Typ Single (Kommazahl) müsste aber auch gehen. Ansonsten schreib einfach DIM ... AS INTEGER.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 13.10.2004, 19:38    Titel: Antworten mit Zitat

Die Primitivlösung ist beispielsweise ein
Code:
t$ = INKEY$
IF t$ <> "" THEN
  a% = ASC(RIGHT$(t$, 1))
  ...
END IF

Der grosse Nachteil aber: <CursorHoch> (CHR$(0) + "H") und <Umschalt>+<H> ("H", d.h. ganz normales grosses H) können nicht mehr unterschieden werden. Deshalb empfehle ich folgende Lösung:
Code:
t$ = INKEY$
IF t$ <> "" THEN
  a% = ASC(RIGHT$(t$, 1)) + 256 * (LEN(t$) - 1)
  ...
END IF

d.h. wenn es eine Sondertaste ist, zählt man noch 256 dazu, damit die einzelnen Tastenkombinationen weiterhin eindeutig unterscheidbar bleiben. Entsprechend muss man halt wie folgt arbeiten:
Code:
a% = HoleTaste
SELECT CASE a%
CASE 328
  ' Behandlung Cursor-Hoch
CASE 97
  ' Behandlung kleines "a"
CASE 271
  ' Behandlung <Umschalt> + <Tab>
...
END SELECT

FUNCTION HoleTaste%
  t$ = INKEY$
  IF t$ <> "" THEN
    HoleTaste% = ASC(RIGHT$(t$, 1)) + 256 * (LEN(t$) - 1)
  ELSE
    HoleTaste% = 0
  END IF
END FUNCTION

_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 14.10.2004, 07:39    Titel: HILFE.. ich hab euch alle lieb.. Antworten mit Zitat

seid ihr noch bei trost?? die hälfte der befehle kenne ich ja gar nicht.. traurig

ok..

versuchen wir das mal einzusetzen..

ist es dann SO richtig??

Zitat:
DO: key$ = INKEY$
IF key$ = "1" OR key$ = "2" OR key$ = "3" AND ents(a2) = 0 AND baus(a2) = 0 THEN
qs(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)): ents(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1))
a9(a2) = a9(a2) - (sc(a2) * sver * ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)))
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - (a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)
END IF
END IF
IF key$ = "4" OR key$ = "5" OR key$ = "6" AND entk(a2) = 0 AND bauk(a2) = 0 THEN
qk(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 3: entk(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 3
a9(a2) = a9(a2) - (k(a2) * kver * (ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 3))
IF s(a2) < (k(a2) * 20) THEN
a = (k(a2) * 20) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (k(a2) * 20)
END IF
END IF
IF key$ = "7" OR key$ = "8" OR key$ = "9" AND entg(a2) = 0 AND baug(a2) = 0 THEN
qg(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 6: entg(a2) = ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 6
a9(a2) = a9(a2) - (g(a2) * gver * (ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) - 6))
IF salz(a2) < (g(a2) * 50) THEN
a = (g(a2) * 50) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (g(a2) * 50)
END IF
END IF
IF key$ = "0" AND (ents(a2) > 0 AND entk(a2) > 0 AND entg(a2) > 0) THEN GOTO 1740
IF key$ = "0" THEN 1753
LOOP WHILE key$ = ""




denn am ende soll für key$ ja nur entweder 1,2 oder 3 (nach der rechnung) als wert rauskommen und übergeben werden.. (darum die -3 (für tasteneingabe 4,5,6) und -6 (für 7,8,9)

ist etwas viel traurig
kann ich das ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1)) auch vorher übergeben? damit der code nicht so lang wird?
also in form von

temp= ASC((RIGHT$(key$, 1)) + 256 * (LEN(key$) - 1))

sodass ich nur noch temp eintragen muss? das wäre übersichtlicher ..

(ich hoffe ich hab das alles richtig verstanden..)

ach.. und bitte keine kommentare wegen den GOTO sprüngen.. ich habe meine kenntnisse aus den amigazeiten.. und da gab es nur zeilennummern.. ich tu mein bestes die rauszuhalten .. grinsen
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 14.10.2004, 10:07    Titel: Antworten mit Zitat

Hallo !

Was genau willst du eigentlich machen ?
Wenn ich das richtig verstanden habe, möchtest du einfach nur warten, bis entweder die Taste 1, 2 oder 3 gedrückt wurde und dann denn Zahlenwert 1, 2 oder 3 irgendwie in deinem Programm weiterverwenden. Warum bei 4-6 bzw. 7-9 auch 1-3 übergeben werden sollen, ist mir noch nicht ganz klar.

Jedenfalls war von deiner Seite aus noch nicht die Rede von irgendwelchen Sonderzeichen, Pfeiltasten oder so. Also sollten es die einfachsten Beispiele von MisterD und dreael für deine Zwecke tun. Ich will mal versuchen, dass wichtigste nochmal zusammenzufassen.

Die "Zahl aus einer Taste" (also deren ASCII-Wert) bekommst du mit dem Befehl ASC

taste$ = INKEY$
tastenzahl = ASC(taste$)

Das Problem war nun, dass wenn keine Taste gedrückt wurde, der ASC-Befehl durchlaufen wurde und die Textvariable taste$ dabei leer war. Da "nichts" bzw. keine Taste auch keinen ASCII-Wert hat, kam die Fehlermeldung mit dem unzulässigen Funktionsaufruf. Das musst du also noch abfangen. Also z.B. so:

DO
taste$ = INKEY$
LOOP WHILE taste$ = ""
tastenzahl = ASC(taste$)

Die zwei "" stehen eben für die leere Textvariable wenn nix gedrückt ist.

Wie schon erwähnt, werden so eben keine Pfeiltasten und Sonderzeichen erkannt . Die Frage ist halt, ob du das für dein Programm überhaupt brauchst. Wenn nicht, kommst du mit diesen wenigen Programmzeilen aus.

Ach ja - du weisst schon, das die ASCII-Werte der Tasten 0-9 von 48 - 57 gehen ? Also der Wert von "1" ist 49, der von "2" ist 50 usw. Wenn du also nur den Zahlenblock erkennen willst, dann evtl. so

DO
DO
taste$ = INKEY$
LOOP WHILE taste$ = ""
tastenzahl = ASC(taste$)
LOOP WHILE tastenzahl < 48 or tastenzahl > 57
zahl = tastenzahl - 48

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 14.10.2004, 14:57    Titel: Antworten mit Zitat

naja... was will ich..

es ist eine auswahl, die man treffen kann also eine abfrage ungefähr wie:

was willst du tun. : Drücke 1-9

1.----
2.---
.....

und nun soll eben die 4 eine 1 ergeben.. und die 5 eine 2 und die 6 eine drei .. die 7 wieder eine 1 die 8 wieder eine 2 und so on

damit ich meinen quellcode verringern kann ..
ursprünglich hatte ich neun IF key$ = "1" ("2" und so)
und dachte nun, das ich das auf drei reduzieren kann.. da jeder IF / Endif aus 7 zeilen besteht traurig
mein programm umfasst nun schon ca 80 kbyte und ich muss mal zusehen, das ich das kleiner bekomme, da noch VIEL mehr rein soll traurig

(p.s.: den quellcode willst du nicht wirklich sehen)

es soll mal ein spiel (wirtschaftssimulation, in der ich Kaiser, Hanse und Fugger zusammenfasse) werden grinsen jedoch nach eigenen vorstellungen.. dabei spare ich mit graphik (wobei ich nicht mal genau weiß, wie ich das anstellen sollte) und reduziere das auf vielseitigkeit und spiellänge grinsen
(kann bei tot mein erbe einem kind hinterlassen)

nun kannst du dir ungefähr vorstellen, was ich vorhabe.. leider kann ich mit deinem beispiel mal wieder nicht viel anfangen.. ich habe einen quellauszug gepostet.. kannst du das dort nicht einbinden? sodas ich das auch bildlich vor augen habe??

bin etwas eingefahren.. aber.. lernfähig.. ich habe sogar eine rechnung rausgetüftelt grinsen sagenhaft geil und funktionabel grinsen kann ich ja mal posten.. (später.. habs auf ner anderen platte.. hab das OS eben erst fertiggemacht grinsen )
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 14.10.2004, 20:40    Titel: Antworten mit Zitat

Vielleicht dürfte der Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

für Dich an dieser Stelle interessant sein, ebenso

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Sondertasten.html

Ansonsten musst Du halt modular arbeiten, d.h. möglich viele wiederholende Aufgaben in SUBs und FUNCTIONs einkapseln, wie in meinem obigen Beispiel am Schluss gezeigt. Habe auch zum Thema SUB/FUNCTION einen Artikel:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/SUB-Unterprogramme.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 14.10.2004, 22:37    Titel: Antworten mit Zitat

Hallo

Also. Du schreibst...

Schnism hat Folgendes geschrieben:


DO: key$ = INKEY$
IF key$ = "1" OR key$ = "2" OR key$ = "3" AND ents(a2) = 0 AND baus(a2) = 0 THEN
qs(a2) = ASC(INKEY$): ents(a2) = ASC(INKEY$)
a9(a2) = a9(a2) - (sc(a2) * sver * ASC(INKEY$))
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)
END IF
END IF

qs(a2) und ents(a2) sollen demnach ja 1, 2 oder 3 übergeben bekommen..


Ein entscheidender Fehler ist hier:

qs(a2) = ASC(INKEY$): ents(a2) = ASC(INKEY$)
a9(a2) = a9(a2) - (sc(a2) * sver * ASC(INKEY$))

INKEY$ ist keine einfache Variable. Wenn du mit INKEY$ den Tastaturpuffer ausliest, wird dieser dabei geleert. Die nächsten INKEY$-Abfragen in den darauffolgenden Programmzeilen bringen dann wieder nichts bzw. "" also einen leeren String, bis wieder eine Taste gedrückt wurde. Deshalb macht man sich ja zu Beginn den Stress mit dem warten und kopiert INKEY$ in key$. So wird der Tastenwert festgehalten, bis die Auswertung abgeschlossen ist. In INKEY$ wird die gedrückte Taste nur solange gespeichert, bis es irgendwie ausgelesen wird. Das merkt "der Computer" und löscht den Inhalt von INKEY$ gleich danach wieder. Aber eben erst wenn sie einmal ausgelesen wurde.

Puh ! Soweit klar ?

Wenn du jetzt aber schreiben würdest

qs(a2) = ASC(key$): ents(a2) = ASC(key$)
a9(a2) = a9(a2) - (sc(a2) * sver * ASC(key$))
usw.

würde es sich zwar nicht mehr aufhängen (zumindest deswegen nicht mehr), es würde aber für deine Zwecke nicht funktionieren. Für den Rechner ist die Ziffer "1" ein Zeichen wie jedes andere auch - keine Zahl an sich. Ein Zeichen merkt er sich, indem er die Nummer speichert, die jedem Zeichen im ASCII-Standard zugeordnet ist. Sinnigerweise sind das für die Zeichen von "0" - "9" nicht die entsprechenden Zahlen, sondern sie haben die Nummer 48 (für die "0") bis 57 (für die "9"). Immerhin sind sie am Stück...

Was verstehst du denn an meinem und den anderen Beispielen nicht ? Ich kann's ja nochmal mit qs(a2) versuchen und GOTO und Zeilennummern benutzen...

10 key$ = INKEY$
20 IF key$ = "" THEN GOTO 10
30 tastenwert = ASC(key$)
40 IF tastenwert < 49 THEN GOTO 10
50 IF tastenwert > 57 THEN GOTO 10
60 zahl = tastenwert - 48
70 qs(a2) = ((zahl - 1) MOD 3) + 1

Zeile 70 macht aus 1 - 9 drei mal 1- 3. So wie ich glaube dich verstanden zu haben. Also 1-3 -> 1-3 / 4-6 -> 1-3 / 7-9 -> 1-3. Die Funktion von MOD kannst du ja in der QB-Hilfe nachsehen.

Das mit dem warten bis was gedrückt wurde (Zeile 20) und dem unzulässigen Funktionsaufruf ist ja klar - oder ?

Das andere Zeug:

Schnism hat Folgendes geschrieben:


a9(a2) = a9(a2) - (sc(a2) * sver * ASC(INKEY$))
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)


versteh' ich nicht.


Hanse kenn' ich noch. Pelze aus Riga und Tran aus Novgorod oder so...

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 15.10.2004, 06:11    Titel: Antworten mit Zitat

ich bin glücklich... denn ich glaube dich verstanden zu haben... werde das ausprobieren.. sollte das klappen, hast du mir sehr geholfen.. ernsthaft.. lol.. das ANDERE zeugs lächeln nett umschrieben ...

mein hauptaugenmerk liegt auf Kaiser.. Hanse-komponenten sind: schiffe, ereignisse und das vererben des titels.. sodas man (theoretisch) über jahrhunderte spielen kann..

a9(a2) = a9(a2) - (sc(a2) * sver * ASC(INKEY$))
IF s(a2) < (sc(a2) * 10) THEN
a = (sc(a2) * 10) - s(a2)
a9(a2) = a9(a2) - INT(a * sk): s(a2) = 0
ELSE
s(a2) = s(a2) - (sc(a2) * 10)

das ist nicht so schwer lächeln

a9 bezeichnet die menge der Finanzen (das (a2) ist für den jeweiligen spieler der dran ist.. erster spieler a2=1; zweiter spieler a2=2.. und damit haben wir nur EINE geldvariante für eine unbeliebige zahl an spielern (wobei ich das auf MAX 6 begrenzt habe) )
sc ist ein schiffstype, sver der preis für das versenden dieses types und das ASC(INKEY$) (also der wert 1,2 oder 3) stellt die entfernung dar (europa, amerika, asien)
dann wird abgefragt, ob genug salz (s(a2) ) für den schiffstype da ist, (dieser kann je schiff 10 last salz befördern.. das ganze ist begrenzt auf 10 schiffe pro schiffstype)
ist nicht genug salz da, wird der rest zum vollpreis der einfachhalt halber vom geld abgezogen grinsen

ich bin noch nicht ganz so weit.. ich werde noch entsprechende abfragen machen... (denke ich) grinsen

ich hoffe das erklärt dieses ZEUGS grinsen
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Laurin



Anmeldungsdatum: 16.09.2004
Beiträge: 16

BeitragVerfasst am: 15.10.2004, 16:17    Titel: Antworten mit Zitat

Warum hast du nicht aussagekräftigere Variablennamen genommen? Wenn du mal zwei Tage nicht in deinen Code reinschaust, weißt du nicht mehr was, was ist.
_________________
Die Menge agrarwirtschaflich erzeugter Produkte ist umgekehrt proportional zu der geistigen Leistungsfähigkeit des Landwirtschaftlers.

Oder auf deutsch:
Der dümmste Bauer hat die größten Kartoffeln.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 15.10.2004, 16:26    Titel: Antworten mit Zitat

aber habe ich doch zwinkern

ich habe die hier nur abgeändert, weil es mir peinlich war verlegen , euch mit einem derart altem und völlig nutzlosen "projekt" zu langweilen.. mit den Augen rollen

s(a2) = salz(a2), sc(a2) = schnigge(a2) etc..

und immernoch glaube ich, das das für die sache an sich ja auch nicht interessant war lächeln

ach.. und nach zwei tagen vergessen:

ich hatte dieses programm erstmals 1991 auf dem amiga gesehen, den code geöffnet und für meine zwecke abgeändert und ergänzt.. und das über 3 jahre hinweg..

nun kam es mir wieder in den sinn (juni 2004) also fing ich an, das programm aus dem kopf (inklusive der damals verwendeten variablen) für den PC neu zu schreiben.. vertrau mir.. ich vergesse sowas nicht.. ich kann auch nach 5 jahren noch in einem von mir gestalteten code schauen ohne mich zu verirren oder es nicht nachvollzieh zu können.... lächeln tut mir leid, wenn ich euch etwas verwirrt habe..
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 18.10.2004, 14:10    Titel: Antworten mit Zitat

DANKE!

Du hast mir das Programm um 52 zeilen gekürzt lächeln

für die Zukunft seh ich BLAU...

grinsen

DANKE, DANKE, DANKE..
_________________
"...nichts ist so schlimm wie mein programmcode!"
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 -> Allgemeine Fragen zu QBasic. 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