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:

Eine Wirtschaftssimulation und ihre Umsetzung.
Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter
 
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



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 04.02.2016, 11:45    Titel: Eine Wirtschaftssimulation und ihre Umsetzung. Antworten mit Zitat

Hoi ..

Nächste Frage:

ich habe ja mein Programm (siehe meine Signatur), das durch meine unortodoxe Programmart weit mehr Zeilen hat, als es "Könner" hätten.
Damit kann ich leben lächeln

Ich meine in Erinnerung zu haben, das die BAS Datein im QBasicc nicht über 64K kommen dürfen.
Denn ich hatte eine, die "plötzlich" (Weil viel text lächeln ) bei 72kb lag und ich konnte sie nicht ausführen.
So habe ich dann eine Zweite erstellt, alle Werte vorher abgespeichert, in der Neuen ausgelesen und ins Gefüge wieder eingefügt.
Somit habe ich derzeit zwei 61K grosse Datein.
In der Mitte des Programms wechselt er also von Datei 1 auf 2 und bei Spielerwechsel wieder von 2 auf 1. (Immer mit Variablenübertrag)

Zitat:
CLEAR , , 5000: CHAIN "C:\kaiser\13-2.bas"
CLEAR , , 5000: CHAIN "C:\kaiser\13-1.bas"


Ist bei 64k wirklich ende ? Oder liegt das an was anderem?
Und wenn freeBasic mehr kann.. kann ich den Code von QB zu FB übernehmen? ODer muss ich da allfällige anpassungen machen ? (SCREEN / COLOR oder was auch immer.. kann ja sein, das die Befehle anders sind)

Achja.. ich bin mir NICHT zu schade, eine Dritte datei zu erstellen lächeln lächeln lächeln
_________________
"...nichts ist so schlimm wie mein programmcode!"


Zuletzt bearbeitet von Schnism am 13.04.2016, 12:38, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.02.2016, 13:48    Titel: Re: Datei/Speichergrösse Antworten mit Zitat

Schnism hat Folgendes geschrieben:
Ist bei 64k wirklich ende ?

QuickBasic 4.5 kann mehr, aber das kompiliert dann auch nicht mehr (sprich man kann es nur aus der IDE ausführen, und auch nur wenn genug konventioneller Speicher freigeräumt ist).

Schnism hat Folgendes geschrieben:
Und wenn freeBasic mehr kann.. kann ich den Code von QB zu FB übernehmen?

Ja, nein, vielleicht. Kommt auf dein Programm an. Der CLEAR-Trick würde z.B. nicht funktionieren, aber der wäre ja auch unnötig.
FreeBASIC ist zu ~99% kompatibel to QBasic, wenn man mit dem Parameter "-lang qb" kompiliert. Bei Low-Level-Sachen wie Mausabfrage per Interrupt u.ä. klappt das natürlich nicht, aber da bringt FB schon seine eigenen Hausmittel mit. Ich kann dir also nur raten: Einfach mal ausprobieren, und nicht beim ersten Kompilierfehler aufgeben, sondern einfach lesen und den Programmcode an der entsprechenden Stelle korrigieren.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1855
Wohnort: D59192

BeitragVerfasst am: 04.02.2016, 14:49    Titel: Antworten mit Zitat

Hi,
die neueren FB-Versionen sind nicht so kompatibel zu qb-Code.
Beste Ergebnisse für Windows 32Bit war noch unter FB 0.90.1
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 04.02.2016, 15:06    Titel: Antworten mit Zitat

Ok.. ich benutze QB 1.0 (1987-1991) vom 1.11.1995 in der DosBox.
Es ist wie ich ein OldTimer lächeln

"könnte" ich also entspannt mit meinem Programm(code) auf QB 4.5 gehen?

Und was genau bedeutet in dem Zusammenhang verlegen
Zitat:
und auch nur wenn genug konventioneller Speicher freigeräumt ist


P.S:
Achja.. kompilieren tu ich nicht. Ich starte das immer "aus dem Programm" (IDE?) heraus. Das reicht mir völlig. So kann ich auch immer direkt in den Code intervenieren, wenn mir was nicht passt. Da es im Grunde auch ein ewiges Anpassen / Erweitern ist, wäre komplilierte Software für mich eher hinderlich.
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.02.2016, 15:23    Titel: Antworten mit Zitat

Schnism hat Folgendes geschrieben:
Und was genau bedeutet in dem Zusammenhang verlegen
Zitat:
und auch nur wenn genug konventioneller Speicher freigeräumt ist

QBasic/QuickBasic kann nur die ersten 640KB an Speicher ansprechen (FreeBASIC hat Zugriff auf deinen kompletten Arbeitsspeicher).
Sprich, ein QuickBasic-Programm kann auch größer als 64KB sein, aber es muss halt inklusive des Editors, der Programmdaten, der DOS-Umgebung usw. in diese 640KB passen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 04.02.2016, 16:01    Titel: Antworten mit Zitat

Schnism hat Folgendes geschrieben:
P.S:
Achja.. kompilieren tu ich nicht. Ich starte das immer "aus dem Programm" (IDE?) heraus. Das reicht mir völlig. So kann ich auch immer direkt in den Code intervenieren, wenn mir was nicht passt. Da es im Grunde auch ein ewiges Anpassen / Erweitern ist, wäre komplilierte Software für mich eher hinderlich.


Das kannst du unter FB auch bequem so machen... 'quick run'
Dabei wird das Programm fix temporär 'kompiliert und ausgeführt'
So kannst du bequem weiter über deinen code schauen bzw nach beendigung deines Programms daran weiterarbeiten ohne die IDE zu verlassen...

Ich selbst benutze FreeBASIC mit der schon etwas 'betagten' FreeBasic IDE 0.4.6
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 04.02.2016, 16:30    Titel: Antworten mit Zitat

Eternal_pain hat Folgendes geschrieben:

Das kannst du unter FB auch bequem so machen... 'quick run'
Dabei wird das Programm fix temporär 'kompiliert und ausgeführt'
So kannst du bequem weiter über deinen code schauen bzw nach beendigung deines Programms daran weiterarbeiten ohne die IDE zu verlassen...

Ich selbst benutze FreeBASIC mit der schon etwas 'betagten' FreeBasic IDE 0.4.6


Ok, das teste ich gerne aus, sobald mein "olles" QB streikt lächeln

Ich habe den Code ohne beanstandung auf das QB 4.5 verwenden können. ICh werde nun vorerst das weiterführen.

(Gibt es in QB einen Weg zu erfahren, wieviel KB das Program noch parat "hätte" ? In der DosBox kann ich das durch "mem" .. aber dann ist das IDE nicht gestartet und auch das Programm nicht geladen. Im MEM sagt er mir, ich hätte noch 632 KB frei. Das sollte doch weit reichen ??? geschockt )
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4189
Wohnort: ~/

BeitragVerfasst am: 04.02.2016, 17:34    Titel: Antworten mit Zitat

Ich hätte am ehesten hierauf getippt:
http://www.qbasicnews.com/qboho/qckfre.shtml
_________________
Meine Großeltern waren als junge Menschen sehr modern - sie hatten schon damals in der Badewanne Email.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.02.2016, 18:09    Titel: Antworten mit Zitat

Schnism: 632KB mag zwar nach "viel" klingen (wäre auch viel für ein "echtes" DOS-System!), aber du musst halt auch bedenken, dass da noch die IDE, der Quelltext und alles mögliche in den Speicher passen muss. Und dass man unter DOS im Real Mode auch Speicher nicht einfach beliebig adressieren kann, sondern dies in 64KB-Blöcken geschieht (siehst du nun, wo das Limit von QBasic herkommt?). Das macht alles ein wenig komplexer, als man zuerst denken mag. Gelobt sei der Protected Mode, wo man beleibig viel Speicher adressieren kann, ohne sich über irgendwelche 64KB-Segmente Gedanken machen muss. lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 05.02.2016, 08:49    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Ich hätte am ehesten hierauf getippt:
http://www.qbasicnews.com/qboho/qckfre.shtml


Ok. Danke. habe mir das angeschaut in der DE QB Hilfe.
Werde nicht schlau draus, was ich da eingeben müsste, damit das funktioniert. Alleine kann ich FRE(-2) als beispiel nicht starten.

Jojo hat Folgendes geschrieben:
Gelobt sei der Protected Mode

Und den finde ich wo? (Falls ich in einen Überlauf laufe?)
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9732
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.02.2016, 13:44    Titel: Antworten mit Zitat

Zitat:
Und den finde ich wo? (Falls ich in einen Überlauf laufe?)

Nirgends. lachen
In QBasic kann man nur im Real Mode programmieren. Was anderes wuerde in den 80ern (vor dem 286er) quasi nicht verwendet. QBasic kann nur im Real Mode arbeiten. FreeBASIC verwendet unter DOS den Protected Mode, und unter Windows ist sowieso wie in jedem modernen System alles Protected Mode.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4189
Wohnort: ~/

BeitragVerfasst am: 05.02.2016, 14:00    Titel: Antworten mit Zitat

Schnism hat Folgendes geschrieben:
nemored hat Folgendes geschrieben:
Ich hätte am ehesten hierauf getippt:
http://www.qbasicnews.com/qboho/qckfre.shtml


Ok. Danke. habe mir das angeschaut in der DE QB Hilfe.
Werde nicht schlau draus, was ich da eingeben müsste, damit das funktioniert. Alleine kann ich FRE(-2) als beispiel nicht starten.

Ich habe schon seit über 10 Jahren kein QBasic mehr verfügbar, daher kann ich es nicht testen - aber so weit ich mich erinnere, sollte ein einfaches
Code:
PRINT FRE(-2)

doch funktionieren?
_________________
Meine Großeltern waren als junge Menschen sehr modern - sie hatten schon damals in der Badewanne Email.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 05.02.2016, 15:18    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Ich habe schon seit über 10 Jahren kein QBasic mehr verfügbar, daher kann ich es nicht testen - aber so weit ich mich erinnere, sollte ein einfaches
Code:
PRINT FRE(-2)

doch funktionieren?
Tut es! Ergibt bei mir einen Wert von 1200.

@Schnism:
Du solltest freeBasic trotzdem einmal ausprobieren:
- Die compilierten Programme sind -je nach Anwendung- ca. um den Faktor 100 schneller.
- Wenn du einmal mit einem richtig komfortablen Editor wie FBEdit oder FBIDE gearbeitet hast, wirst du nicht zum QBasic - Editor zurückwollen.
- Das Compilieren dauert bei einem normalen Programm nicht länger als 2 - 3 Sekunden.
- Du brauchst dir um Speichergrößen keine Gedanken mehr zu machen (es sei denn, du möchtest Strings von mehr als 2 GB Länge verarbeiten grinsen ).
- freeBasic bietet Möglichkeiten, an die bei QB nicht im Traum zu denken ist (Multithreading, Bibliotheken, Inline - Assembler, Zugriff auf die WinAPI, GUI...)
- Du kannst ja QBasic trotzdem weiterverwenden.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 05.02.2016, 16:25    Titel: Antworten mit Zitat

AH.. da betreibt jemand Werbung grinsen

Ich bin minimalistisch geprägt und mit wenig zufrieden. Ich bekomme es nicht mal hin, eine GOSUB Sache in eine SUB zu bringen. Das .. überfordert mich oftmals schon.

Ich bleibe dran lächeln Versprochen ..

Was anderes..

Ich habe ein Phänomen festgestellt, dem ich nicht Herr werde.

(a2 = Spieler, a3 = Gegenspieler)
fsp = 50 : spy(a2) = 10: esp = 50: spy(a3) = 10
fzufall = (RND * (fsp*spy(a3))): ezufall = (RND * (esp*spy(a2)))

ezufall ist IMMER!!!! deutlich kleiner als fzufall. Selbst wenn ich sie in der Schreibfolge tausche.
Dabei kann ich auch nen RANDOMIZE TIMER vor einem oder auch beiden setzen. ezufall bekommt immer den kleineren Wert. Ich werde noch irre..

QB 4.5 verhält sich da genauso wie QB 1.0 .. ist ESP irgendeine Sache, die das System anders interpretiert?

@EDIT
Nein. Ich habe das grade umbenannt (eispy) .. es bleibt dasselbe .. der ezufall bekommt immer einen .4563345 wert, das fzufall einen 345.2334234

Keine Ahnung, was DAS soll ...

@EDIT2
s separat laufen zu lassen, hilft mir leider nicht.. (grade probiert) dort macht er es richtig. (und dort bekomme ich bei der höhe der Wert so gut wie NIE! ein 0.22323 irgendwas .. )
ich probiere weiter.. aber das ist mehr als seltsam

@EDIT 3
Da brat mir einer einen Storch. wenn ich vor den beiden (ezufall,fzufall) einfach einen anderen wert per RND ermitteln lasse, sind die Werte "OK" geschockt geschockt

@EDIT4
So ganz ist das noch nicht richtig. der ezufall fällt viel zu oft in einen Wert unter 1 .. (.354672), während der andere NIE!! unter 1 fällt. (und ich rede hier von mehreren 100 versuchen)
_________________
"...nichts ist so schlimm wie mein programmcode!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4189
Wohnort: ~/

BeitragVerfasst am: 05.02.2016, 17:34    Titel: Antworten mit Zitat

Zitat:
- Du brauchst dir um Speichergrößen keine Gedanken mehr zu machen (es sei denn, du möchtest Strings von mehr als 2 GB Länge verarbeiten grinsen ).

Dann nimmst du FreeBASIC 64bit, dann liegt die maximale Länge deutlich höher. cool

@Schnism: Ich weiß aktuell nicht, ob das Problem vielleicht an einer ganz anderen Stelle liegt (z. B. bei der Belegung der Werte a2 und a3) - kannst du dazu einen (so weit wie möglich reduzierten) lauffähigen Code posten, in dem dein Problem auftritt?

RANDOMIZE TIMER bringt im übrigen (bis auf Ausnahmen) nur einmal im Programm etwas, nämlich zu Beginn vor dem Aufruf des ersten RND - eine häufigere Verwendung ist meistens kontraproduktiv.
_________________
Meine Großeltern waren als junge Menschen sehr modern - sie hatten schon damals in der Badewanne Email.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 05.02.2016, 17:55    Titel: Antworten mit Zitat

Schnism hat Folgendes geschrieben:
AH.. da betreibt jemand Werbung grinsen
Und das aus voller Überzeugung! Daumen rauf! Ich bin selbst vor einigen Jahren umgestiegen und habe die meisten meiner Programme von QB nach FB portiert. Ist gar nicht so schwer, wenn man den Bogen einmal raus hat.

Zitat:
Ich bin minimalistisch geprägt und mit wenig zufrieden.
Umgangssprachlich nennt man das "faul" grinsen

Zitat:
ezufall ist IMMER!!!! deutlich kleiner als fzufall.
Kann ich nicht bestätigen. Ich bekomme Werte, wie sie sein sollen.

    fzufall / ezufall
    352.7737 / 266.712
    289.7593 / 144.7812
    150.974 / 387.3701
    7.008821 / 380.3618
    407.245 / 354.519
    22.67638 / 207.0163
    431.3097 / 395.24
    186.7681 / 480.9766
    435.7229 / 28.11843
    474.7783 / 182.0093



Vielleicht ein Schreibfehler in deinem Programm?

Gruß
grindstone

EDIT: Ich bin erstaunt, daß QB offensichtlich float - Variablen als Arrayindex akzeptiert.
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 05.02.2016, 20:57    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Zitat:
- Du brauchst dir um Speichergrößen keine Gedanken mehr zu machen (es sei denn, du möchtest Strings von mehr als 2 GB Länge verarbeiten :D ).

Dann nimmst du FreeBASIC 64bit, dann liegt die maximale Länge deutlich höher. 8)

Mit FreeBasic verschwinden solche Speicherprobleme vollkommen. Bei der 64-Bit-Version kannst Du sogar spielend ein Array so gross dimensionieren wie in einem professionellen Server in einem Datacenter, bei dem sämtliche Banks mit RAM-Riegel im Maximalausbau (=heutzutage durchaus im TB-Bereich liegend!) bestückt sind... ;-)

QBasic würde ich nur noch für Spezialanwendungen unter reinem MS-DOS einsetzen, z.B. Festplattenlöschtool von mir ist so ein Fall. Auch Messanwendungen mit Parallelport (direktes Ansteuern mit INP() und OUT) gehören dazu.

Zum Thema Kompatibilität: FreeBasic geht halt mittlerweilen stark Richtung professionelle Programmierung mit Objektorientierung, also ein grösseres Projekt in Klassen aufzuteilen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 06.02.2016, 13:33    Titel: Antworten mit Zitat

[offTopic]
dreael hat Folgendes geschrieben:
...Festplattenlöschtool von mir...
Funktioniert das Tool auch mit modernen SATA - Platten? Wäre schön, ein Löschtool zu haben, dem ich absolut vertrauen kann. lächeln
[/offTopic]

dreael hat Folgendes geschrieben:
FreeBasic geht halt mittlerweilen stark Richtung professionelle Programmierung mit Objektorientierung
Wobei es IMHO speziell für Einsteiger von Vorteil ist, daß man mit FB objektorientiert programmieren kann, aber nicht muss.

Ein weiterer nicht unerheblicher Vorteil von FB, den ich bei meiner obigen Aufzählung noch vergessen habe: Die Verwendung von langen Dateinamen.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnism



Anmeldungsdatum: 13.10.2004
Beiträge: 58
Wohnort: Schweiz

BeitragVerfasst am: 06.02.2016, 15:04    Titel: Antworten mit Zitat

Ok ..

Ich warne euch: mein Code ist wie er ist und bleibt wie er ist lachen
Ich kenne das Programm so wie es ist nun schon seit 20 Jahren. Alle Variablen sind mir total vertraut, der Aufbau, was dort dirin sein soll und ich habe es aus dem KOPF nun zum dritten mal neu erzeugt (die vorherigen waren zuerst auf AMIGA Basic und das andere habe ich "verloren" ..)

Ich weiss, dass ich es nicht kann ..aber ich habe viel spass dran ..

Diejenigen also, die sich dem Code annehmen, danke ich schon mal. Der rest erfreut sich einfach an seinen glücklichen Gefühlen, die bei ihnen entstehen, wenn sie meinen Code sehen.. cool


ALSO ..

Ich hoffe, ich vergesse nix und der CODE Schnipzel reicht aus.
Ich bin derzeit der Überzeugung, das ich einen IF THEN ENDIF FEHLER irgendwo habe. Denn: der ROT Markierte Bereich wird bei MIR als beispiel nicht verwendet. Denn selbst wenn spy(a2)=100 ist, kommen trotzdem immer wieder neu ergebnisse unter 1 heraus.. und das dürfte ja gar nicht gehen. Ich zwinge (zum Test ... ) ihn ja eigentlich dazu, dass, sobald ezufall unter spy(a2) liegt, er neu berechnen soll und zwar solange, bis er drüber ist. das aber tut er nicht. diese IF THEN wird bei mir nicht verwendert traurig

so .. dann..

Zitat:
' a2= Spieler 1: a3 = spieler 2: kfas = erfahrungswert : spy() = spionmenge. Den Rest erkennt man am Text in den IF / END IF Bereichen.


1970 spioneentsendet = 1: z = 0: ezufall = 0: fzufall = 0: go = 0: in = 0: ka = 0: ar = 0: sc = 0
ko = 0: ga = 0: fe = 0: ha = 0: mu = 0: pa = 0: kat = 0: fsp = 0: esp = 0: erfolg = 0: spionage = spy(a2)
FOR t = 1 TO spionage: COLOR 10: LOCATE 7, 1: PRINT "Ergebnis Spion"; t: LOCATE 23, 1: PRINT " "
RANDOMIZE TIMER:schlaf = INT(RND * 3) + 1
fsp = kfas(a3): esp = kfas(a2): COLOR 10: rezufall = kfas(a2) * spy(a2): rfzufall = kfas(a3) * spy(a3)
1971 RANDOMIZE TIMER: erfolg = (RND * rang(a2)): fzufall = (RND * rfzufall): ezufall = (RND * rezufall):IF ezufall < spy(a2) THEN GOTO 1971
IF (esp * ezufall * spy(a2)) > (fsp * fzufall * spy(a3)) THEN
PRINT : LOCATE 3, 1: COLOR 8: PRINT "Ihre Spione konnten folgendes sabotieren/stehlen:": PRINT : COLOR 10
RANDOMIZE TIMER: a = (RND * 100): gold = INT(a * rang(a2) * ezufall): IF gold > a9(a3) THEN gold = a9(a3)
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND a9(a3) > 0 THEN
LOCATE 10, 1: PRINT "Gold: "; gold; t$: go = go + gold: a9(a3) = a9(a3) - gold: a9(a2) = a9(a2) + gold: LOCATE 10, 20: PRINT "Gesamterfolg: "; go
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND inf(a3) > 1 THEN
GOSUB 1972: LOCATE 11, 1: PRINT "Infanteristen: "; z: in = in + z: inf(a3) = inf(a3) - z: LOCATE 11, 20: PRINT "Gesamterfolg: "; in
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND kav(a3) > 1 THEN
GOSUB 1972: LOCATE 12, 1: PRINT "Kavalleristen: "; z: ka = ka + z: kav(a3) = kav(a3) - z: LOCATE 12, 20: PRINT "Gesamterfolg: "; ka
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND art(a3) > 1 THEN
GOSUB 1972: LOCATE 13, 1: PRINT "Artilleristen: "; z: ar = ar + z: art(a3) = art(a3) - z: LOCATE 13, 20: PRINT "Gesamterfolg: "; ar
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND schnigge(a3) > 1 AND ents(a3) = 0 THEN
GOSUB 1972: LOCATE 14, 1: PRINT "Schniggen: "; z: sc = sc + z: schnigge(a3) = schnigge(a3) - z: LOCATE 14, 20: PRINT "Gesamterfolg: "; sc
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND kogge(a3) > 1 AND entk(a3) = 0 THEN
GOSUB 1972: LOCATE 15, 1: PRINT "Koggen: "; z: ko = ko + z: kogge(a3) = kogge(a3) - z: LOCATE 15, 20: PRINT "Gesamterfolg: "; ko
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RN1D * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND galleone(a3) > 1 AND entg(a3) = 0 THEN
GOSUB 1972: LOCATE 16, 1: PRINT "Galleonen: "; z: ga = ga + z: galleone(a3) = galleone(a3) - z: LOCATE 16, 20: PRINT "Gesamterfolg: "; ga
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND feld(a3) > 1 THEN
GOSUB 1972: LOCATE 17, 1: PRINT "Felder: "; z: fe = fe + z: feld(a3) = feld(a3) - z: LOCATE 17, 20: PRINT "Gesamterfolg: "; fe
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND b3(a3) > 1 THEN
GOSUB 1972: LOCATE 18, 1: PRINT "H„user: "; z: ha = ha + z: b3(a3) = b3(a3) - z: LOCATE 18, 20: PRINT "Gesamterfolg: "; ha
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND b2(a3) > 1 THEN
GOSUB 1972: LOCATE 19, 1: PRINT "Mhlen: "; z: mu = mu + z: b2(a3) = b2(a3) - z: LOCATE 19, 20: PRINT "Gesamterfolg: "; mu
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND b4(a3) > 1 THEN
GOSUB 1972: LOCATE 20, 1: PRINT "Palastteile: "; z: pa = pa + z: b2(a3) = b2(a3) - z: LOCATE 20, 20: PRINT "Gesamterfolg: "; pa
END IF
RANDOMIZE TIMER: a = (RND * 100): RANDOMIZE TIMER: ezufall = (RND * rang(a2)): RANDOMIZE TIMER: erfolg = (RND * rang(a2))
IF INT(a * rang(a2)) > INT(((esp * ezufall) - rang(a2)) * erfolg) AND INT(a * rang(a2)) < INT(((esp * ezufall) + rang(a2)) * erfolg) AND b5(a3) > 1 THEN
GOSUB 1972: LOCATE 21, 1: PRINT "Kathedralenteile: "; z: kat = kat + z: b5(a3) = b5(a3) - z: LOCATE 21, 20: PRINT "Gesamterfolg: "; kat
END IF
kfas(a2) = kfas(a2) + (RND * 1): kfas(a3) = kfas(a3) - (RND * 1)
IF (kfas(a2) * ezufall) > (kfas(a3) * fzufall) AND spy(a3) > 0 THEN LOCATE 23, 1: PRINT "Ein gegnerischer Spion wurde ausgeschaltet": spy(a3) = spy(a3) - 1
END IF
IF (esp * ezufall * spy(a2)) <= (fsp * fzufall * spy(a3)) AND spy(a3) > 0 THEN
COLOR 10: LOCATE 7, 1: PRINT "Ergebnis Spion"; t: LOCATE 23, 1: COLOR 12
PRINT "Tut mir leid, die gegnerischen Spione haben ihren Spion getötet": spy(a2) = spy(a2) - 1: schlaf = 10: PRINT esp; ezufall; spy(a2), fsp; fzufall; spy(a3)
kfas(a2) = kfas(a2) - (RND * 2): kfas(a3) = kfas(a3) + (RND * 2)
END IF
IF kfas(a2) > 95 THEN kfas(a2) = 95
IF kfas(a3) > 95 THEN kfas(a3) = 95
IF kfas(a2) < 0 THEN kfas(a2) = 0
IF kfas(a3) < 0 THEN kfas(a3) = 0
SLEEP schlaf
LOCATE 23, 1: COLOR 12: PRINT " "
NEXT t
LOCATE 25, 1: PRINT "Zurckgekehrte Spione:"; spy(a2)
sleep 100 'nur für euch lächeln
RETURN

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



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 06.02.2016, 16:00    Titel: Antworten mit Zitat

Schnism hat Folgendes geschrieben:
Ich weiss, dass ich es nicht kann ..aber ich habe viel spass dran ..
Ich neige dazu, dir zuzustimmen. grinsen

Mein Interpreter beschwert sich über eine "fehlende Marke: 1972".

Kleiner Hinweis: Für Programmcode gibt es im Eingabefenster extra die Schaltfläche "Code" (zwischen "Quote" und "List"). Und wozu ist das RETURN am Ende?

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!


Zuletzt bearbeitet von grindstone am 06.02.2016, 16:03, insgesamt 2-mal bearbeitet
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
Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter
Seite 1 von 7

 
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