Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 18.04.2005, 16:47 Titel: Variablen |
|
|
Hallo , habe mal wieder ne eigentlich sehr einfache Frage ...
Leider habe ich keine Antwort in der Q-Basic Monster FAQ
gefunden , aber es ist ja eine einfache Sache . Es geht um
Variablen J Also mein Prog. Sieht so aus :
Code: |
10
PRINT " Varibalen "
PRINT ""
PRINT " Burg Stufe : "; Burg$
PRINT ""
PRINT " [A] Abrunden [B] Aufrunden [C] Ende "
PRINT ""
PRINT ""
PRINT ""
INPUT "", Eingabe$
IF INSTR(Eingabe$, "A") THEN GOTO 20
IF INSTR(Eingabe$, "B") THEN GOTO 30
IF INSTR(Eingabe$, "C") THEN END
20
PRINT " Abgerundet ! "
Burg$ = "1"
SLEEP
CLS
GOTO 10
30
PRINT " Aufgerundet ! "
Burg$ = "2"
SLEEP
CLS
GOTO 10 |
Nun würde ich gerne wissen wie es geht dass Automatisch immer eins Drauf und wieder abgezogen wird ? Also bei [A] 1 - und bei [B] 1 + . Ich weis ja das GOTO nicht gerade das
Beste ist aber für mich reicht es J Bitte setzt die Sachen einfach an der richtigen Stelle ein .
Die Goto Befehle sollten am besten bleiben .
Download Link : http://rapidshare.de/files/1322191/Prog.rar.html
Download Anleitung :
Seite öffnet sich , bis nach unten gehen und auf Free klicken . Neue
Seite erscheint wieder bis nach unten gehen und auf Download klicken . _________________ Courage ist gut, aber Ausdauer ist besser. |
|
Nach oben |
|
 |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 18.04.2005, 17:48 Titel: |
|
|
also erstes solltest du doe variable burg nicht als string speichern, sondern als integer (also einfach das $ weglassen).
der code sieht dann so aus:
Code: | 10
PRINT " Varibalen "
PRINT ""
PRINT " Burg Stufe : "; Burg
PRINT ""
PRINT " [A] Abrunden [B] Aufrunden [C] Ende "
PRINT ""
PRINT ""
PRINT ""
INPUT "", Eingabe$
IF INSTR(Eingabe$, "A") THEN GOTO 20
IF INSTR(Eingabe$, "B") THEN GOTO 30
IF INSTR(Eingabe$, "C") THEN END
20
PRINT " Abgerundet ! "
Burg = Burg - 1
SLEEP
CLS
GOTO 10
30
PRINT " Aufgerundet ! "
Burg= Burg + 1
SLEEP
CLS
GOTO 10 |
Du mußt auch unterscheiden, ob der benutzer groß oder kleinbuchstaben eingegeben hat. mi deiner methode würde die eingabe nur auf großbuchstaben reagieren.
dazukommt, das bei dir der benutzer A, B und C hätte auf einmal eingeben können. deshalb solltest du die eingabe verbessern. Du willst hier nur ein zeichen einlesen, also lohnt sich hier der code:
mit ucase$(zeichenkette) wandelts du einen string in großbuchstaben um.
also sieht der fertige code forgendermaßen aus:
Code: | 10
PRINT " Varibalen "
PRINT ""
PRINT " Burg Stufe : "; Burg$
PRINT ""
PRINT " [A] Abrunden [B] Aufrunden [C] Ende "
PRINT ""
PRINT ""
PRINT ""
Eingabe$=INPUT$(1)
IF UCASE$(Eingabe$)="A" THEN GOTO 20
IF UCASE$(Eingabe$)="B" THEN GOTO 30
IF UCASE$(Eingabe$)="C" THEN END
GOTO 10
20
PRINT " Abgerundet ! "
Burg$ = "1"
SLEEP
CLS
GOTO 10
30
PRINT " Aufgerundet ! "
Burg$ = "2"
SLEEP
CLS
GOTO 10 |
Das GOTO 10 nach der IF-Abfrage hab ich reingeschrieben, damit er wieder zu 10 geht und die eingabe wieder holt, wenn nicht a, b oder c eingeben wurde. |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 18.04.2005, 19:02 Titel: |
|
|
Ich würde nicht A, B, C verenden sondern 1-3, weil wen der User einfach nur "a" eintippt wird die Eingabe nicht richtig erkannt da QB zwischen Gross und Klein Schreibung unterscheidet
/Edit: Ups hab den Beitrag (wegen den Grossbuchstaben) von Code übersehen
/Edit #2: Der "fertige" Quellcode von Code is nicht richtig
/Edit #3: Ich denke das ihr wisst das Abrunden bzw. Aufrunden nciht einfach -/+ 1 bedeutet - oder ?
/Edit #4: Ziemlich viele Edits oder  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.04.2005, 19:52 Titel: Re: Variablen |
|
|
Jet X hat Folgendes geschrieben: | Nun würde ich gerne wissen wie es geht dass Automatisch immer eins Drauf und wieder abgezogen wird ? Also bei [A] 1 - und bei [B] 1 + . Ich weis ja das GOTO nicht gerade das
Beste ist aber für mich reicht es J Bitte setzt die Sachen einfach an der richtigen Stelle ein .
Die Goto Befehle sollten am besten bleiben . |
Hallo JetX!
Brauchst du das jetzt für einen neuen 3D-Echtzeit-Internet-Rollenspiel-Multiplayer-Egoshooter oder arbeitest du noch an einem revolutionären Betriebssystem, vor dem Microsoft insgeheim schon zittert? Und wann gibt's endlich die DeLuxe-GoldEdition der Personenangabe?
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 18.04.2005, 20:19 Titel: |
|
|
@ Skilltronic : Naja , mein "revolutionären Betriebssystem" habe ich erstmal in den Hintergrund gestellt , war glaube ich nur so ne Fase
Mein wie du es so schön nantest DeLuxe-GoldEdition von Personenangabe wird in der nächsten Zeit erscheinen
Und ja , ich arbeite an einem kleinem Text Basierenden Strategiespiel
Aber halt ohne Bilder desswegen halt Text Basierend .
Noch mal ne andere Frage : Hat schon mal jemand was von Rays Spiel
Gehört das er letztens angekündigt hat ???
Also Grüße JET X _________________ Courage ist gut, aber Ausdauer ist besser. |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 18.04.2005, 20:24 Titel: |
|
|
Jet X hat Folgendes geschrieben: | @ Skilltronic : Naja , mein "revolutionären Betriebssystem" habe ich erstmal in den Hintergrund gestellt Ähm ... gute Idee , war glaube ich nur so ne Fase (das nennt man Phase)
Mein wie du es so schön nantest DeLuxe-GoldEdition von Personenangabe wird in der nächsten Zeit erscheinen Juhu ! Warte schon die ganze Zeit darauf dachte es wird nie fertig
Und ja , ich arbeite an einem kleinem Text Basierenden Strategiespiel
Aber halt ohne Bilder desswegen halt Text Basierend Mach erstmal die Hyper Edition von Personenangabe ferig ... immer langsam mit den Jungen Jets .
Noch mal ne andere Frage : Hat schon mal jemand was von Rays Spiel
Gehört das er letztens angekündigt hat ???
Schau ins Projektvorstellungs Forum in den passenden Thread
Also Grüße JET X |
_________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 18.04.2005, 20:40 Titel: |
|
|
Zitat: | Juhu ! Warte schon die ganze Zeit darauf dachte es wird nie fertig |
War das jetzt ernst gemeint ? Dachte das alle mein Programm Personenangabe echt scheiße fanden ??? Wer ja cool wen es dir gefallen würde
Grüße J E T X _________________ Courage ist gut, aber Ausdauer ist besser. |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 18.04.2005, 20:51 Titel: |
|
|
Also: Die Idee is nicht neu und die erste Version ist (das wirst du wohl zugeben) ähm nunja reden wir nicht drüner
Ich will einfach sehen wie die 2te Version wird, also vom Design her ob du dich da Verbessert hast und so - also ein bisschen gespannt bin ich schon wies wird  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 19.04.2005, 16:29 Titel: |
|
|
Devilkevin hat Folgendes geschrieben: | /Edit #2: Der "fertige" Quellcode von Code is nicht richtig |
was ist falsch?
ich hatte beim zweiten code noch burg$ aber das hab ich hier verbessert:
(man sollte halt aufpassen wenn man kopiert und einfügt )
Code: | 10
PRINT " Varibalen "
PRINT ""
PRINT " Burg Stufe : "; Burg
PRINT ""
PRINT " [A] Abrunden [B] Aufrunden [C] Ende "
PRINT ""
PRINT ""
PRINT ""
Eingabe$=INPUT$(1)
IF UCASE$(Eingabe$)="A" THEN GOTO 20
IF UCASE$(Eingabe$)="B" THEN GOTO 30
IF UCASE$(Eingabe$)="C" THEN END
GOTO 10
20
PRINT " Abgerundet ! "
Burg = Burg - 1
SLEEP
CLS
GOTO 10
30
PRINT " Aufgerundet ! "
Burg=Burg + 1
SLEEP
CLS
GOTO 10 |
ich weiß das das aufrunden und abrunden nicht plus eins ist, aber jet x wollte das halt so. |
|
Nach oben |
|
 |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 19.04.2005, 16:43 Titel: |
|
|
Vielen Dank für euer Hilfe
Hab noch ne zweite Frage :
Ich will das für den Anfang erstmal nur ein Gegner besteht ... der soll
in zufälligen Anständen Angreifen , das heißt er zieht etwas von der
Burg ab , auch zufällig ! Könntet ihr den Code so ergänzen ? Warscheinlich
gibt es doch eine einfache Lösung die ich mal wieder nicht kenne
Das heißt man sollte weiterhin noch eingeben können ob man abrunden oder aufrunden will aber zwischendurch zieht der "Gegner" einem halt was ab , am besten in einem Zeitraum von 1-5 Minuten . Ist so was
möglich ? Eine kurze lösung wäre echt Supi !
Also Grüße JET X _________________ Courage ist gut, aber Ausdauer ist besser. |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 19.04.2005, 16:54 Titel: |
|
|
ich denke mal, du meinst, abziehen von der Variablen burg, oder?
Spätestens jetzt solltest du auf DO-LOOP umsteigen:
Code: |
RANDOMIZE TIMER
DO
LOCATE 2,1
PRINT "BURG STUFE : "; Burg
PRINT
PRINT "A..., B..., C..."
in$ = INKEY$
SELECT CASE UCASE$(in$)
CASE "A"
burg = burg - 1
CASE "B"
burg = bur + 1
CASE "C"
END
END SELECT
Attack = INT(RND * 500)
Strength = INT(RND * 5)
IF Attack = 1 THEN Burg = Burg - Strength
LOOP
|
Die Chance, dass der Gegner pro DO..LOOP-Durchlauf Angreift ist hier 1:500. Er zieht dir zwischen 0 und 4 Punkte ab.
Anmerkung:
Du musst evtl. noch ergänzen, ich hab nicht den ganzen Code abgeschrieben (kopieren hätte sich wegen der neustrukturierung nciht gelohnt).
Wenn du einen Zeitraum festlegen willst, gehts über TIMER:
Code: |
lastattack = INT(TIMER)
DO
....
IF nextAttackSek THEN
nextAttackMin = RND * 5 + 1
nextAttackSek = INT(NextAttackMin * 60)
Strength = INT(RND * 5)
END IF
IF lastattack + nextAttackSek >= TIMER THEN
nextAttackSek = 0
Burg = Burg - Strength
'evtl Print?
END IF
...
LOOP
|
viel Spaß dabei *g* _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Jet X gesperrt

Anmeldungsdatum: 05.01.2005 Beiträge: 447
|
Verfasst am: 19.04.2005, 20:34 Titel: |
|
|
hmm.... also , habe das obere ausprobiert das geht ja viel zu schnell !!!
Könntest du vileicht mal alles in mein Programm einbinden ? Weiteroben siehst du ja wie es bisher ausehen sollte :
Zitat: | 10
PRINT " Varibalen "
PRINT ""
PRINT " Burg Stufe : "; Burg
PRINT ""
PRINT " [A] Abrunden [B] Aufrunden [C] Ende "
PRINT ""
PRINT ""
PRINT ""
Eingabe$=INPUT$(1)
IF UCASE$(Eingabe$)="A" THEN GOTO 20
IF UCASE$(Eingabe$)="B" THEN GOTO 30
IF UCASE$(Eingabe$)="C" THEN END
GOTO 10
20
PRINT " Abgerundet ! "
Burg = "1"
SLEEP
CLS
GOTO 10
30
PRINT " Aufgerundet ! "
Burg = "2"
SLEEP
CLS
GOTO 10 |
So , könntest du deine Art nochmal Einbauen ? Also der Gegner greift zufällig in einem Zeitabspann von 1 -5 Minuten an (Bitte entsprächende Stelle kenzeichnen) und zieht sagen wir ... 1-10 ab O.K ? ( Bitte auch kenzeichnen)
Bin dir sehr dankbar wenn du mir Hilfst
Grüße JET X _________________ Courage ist gut, aber Ausdauer ist besser. |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 19.04.2005, 20:40 Titel: |
|
|
So ich liefere dir keinen Fertigen Code sondern n paar Hinweise (dann lernste das auch viel besser):
--> Zufallszahlen sind sehr einfach mit RANDOMIZE TIMER zu erzeugen
--> Zeiten etc. kannste mit Sleep oder TIMER machen (siehe MonFAQ) aber es wäre auch möglich mit FOR/NEXT zu arbeiten _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Exp-Soft

Anmeldungsdatum: 10.09.2004 Beiträge: 79
|
Verfasst am: 19.04.2005, 23:38 Titel: |
|
|
Jet X hat Folgendes geschrieben: |
So , könntest du deine Art nochmal Einbauen ? Also der Gegner greift zufällig in einem Zeitabspann von 1 -5 Minuten an (Bitte entsprächende Stelle kenzeichnen) und zieht sagen wir ... 1-10 ab O.K ? ( Bitte auch kenzeichnen)
Bin dir sehr dankbar wenn du mir Hilfst
Grüße JET X |
hm Jet X selber proggen ist in progen lassen ist out
und man kann hinterher wenningstens stolz auf sich sein, ohne zu wissen, das der größte Teil der Arbeit eigentlich garnicht von einem selber stand
soll nun keine anmache oder sowas sein, nur lediglich ein kleiner hinweis
auch sollte mal drauf hingewiesen werden, wie gut es die Neueinsteiger in Basic ect.. eigentlich haben, sie haben heute die Möglichkeit nicht nur aus Büchern zu lernen, sondern auch aus Tutorials, von freunden ect.. bei Problemen, gibts mitlerweile die möglichkeit der FOREN, Chats ect..
Wenn ich daran denke wie ich früher Basic angefangen habe, und auch einiege andere hier (denke ich mal), wir mussten aus Büchern lernen, und hatten meist bei Problemem keine anlaufstelle um nach Rat / hilfe zu fragen
sollte man sich ggf auch mal vor Augen halten
naja auch das soll nun nicht Diskriminierend wirken, wollt es nur mal loswerden  |
|
Nach oben |
|
 |
|