![Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht](misc/logos/logo.png) |
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 |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 04.02.2016, 12:45 Titel: Eine Wirtschaftssimulation und ihre Umsetzung. |
|
|
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
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 ) 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](images/smiles/icon_smile.gif) _________________ "...nichts ist so schlimm wie mein programmcode!"
Zuletzt bearbeitet von Schnism am 13.04.2016, 13:38, insgesamt einmal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2016, 14:48 Titel: Re: Datei/Speichergrösse |
|
|
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.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 04.02.2016, 15:49 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 04.02.2016, 16:06 Titel: |
|
|
Ok.. ich benutze QB 1.0 (1987-1991) vom 1.11.1995 in der DosBox.
Es ist wie ich ein OldTimer
"könnte" ich also entspannt mit meinem Programm(code) auf QB 4.5 gehen?
Und was genau bedeutet in dem Zusammenhang
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 |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2016, 16:23 Titel: |
|
|
Schnism hat Folgendes geschrieben: | Und was genau bedeutet in dem Zusammenhang
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.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Eternal_pain
![](images/avatars/16598560324c4aaa1608b8e.jpg)
Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 04.02.2016, 17:01 Titel: |
|
|
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 _________________
![](http://fs5.directupload.net/images/160216/jt32siqx.jpg) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 04.02.2016, 17:30 Titel: |
|
|
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
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 ??? ) _________________ "...nichts ist so schlimm wie mein programmcode!" |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
nemored
![](images/avatars/18585278245ddb8b9d8710.png)
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 04.02.2016, 18:34 Titel: |
|
|
Ich hätte am ehesten hierauf getippt:
http://www.qbasicnews.com/qboho/qckfre.shtml _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2016, 19:09 Titel: |
|
|
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](images/smiles/icon_smile.gif) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 05.02.2016, 09:49 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Jojo alter Rang
![](images/avatars/10930814364b9fe4465f34c.jpg)
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.02.2016, 14:44 Titel: |
|
|
Zitat: | Und den finde ich wo? (Falls ich in einen Überlauf laufe?) |
Nirgends.
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.
![](https://sagamusix.de/other/nectarine/playing.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
nemored
![](images/avatars/18585278245ddb8b9d8710.png)
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 05.02.2016, 15:00 Titel: |
|
|
Schnism hat Folgendes geschrieben: |
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
doch funktionieren? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 05.02.2016, 16:18 Titel: |
|
|
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 ).
- 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 |
|
![](templates/subSilver/images/spacer.gif) |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 05.02.2016, 17:25 Titel: |
|
|
AH.. da betreibt jemand Werbung
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 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"
@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 |
|
![](templates/subSilver/images/spacer.gif) |
nemored
![](images/avatars/18585278245ddb8b9d8710.png)
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 05.02.2016, 18:34 Titel: |
|
|
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 ). |
Dann nimmst du FreeBASIC 64bit, dann liegt die maximale Länge deutlich höher.
@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. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 05.02.2016, 18:55 Titel: |
|
|
Schnism hat Folgendes geschrieben: | AH.. da betreibt jemand Werbung grinsen | Und das aus voller Überzeugung! 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"
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 |
|
![](templates/subSilver/images/spacer.gif) |
dreael Administrator
![](images/avatars/112279543641421ec80e8e2.gif)
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 05.02.2016, 21:57 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 06.02.2016, 14:33 Titel: |
|
|
[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.
[/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 |
|
![](templates/subSilver/images/spacer.gif) |
Schnism
![](images/avatars/669524975416d101427814.gif)
Anmeldungsdatum: 13.10.2004 Beiträge: 58 Wohnort: Schweiz
|
Verfasst am: 06.02.2016, 16:04 Titel: |
|
|
Ok ..
Ich warne euch: mein Code ist wie er ist und bleibt wie er ist
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..
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
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 "Mhlen: "; 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 "Zurckgekehrte Spione:"; spy(a2)
sleep 100 'nur für euch
RETURN
|
_________________ "...nichts ist so schlimm wie mein programmcode!" |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 06.02.2016, 17:00 Titel: |
|
|
Schnism hat Folgendes geschrieben: | Ich weiss, dass ich es nicht kann ..aber ich habe viel spass dran .. | Ich neige dazu, dir zuzustimmen.
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, 17:03, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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.
|
|