es soll net immer passieren ....

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Kado

Betreff: es soll net immer passieren ....

BeitragFr, Nov 26, 2004 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn man z.b in den wald geht , und ein monster greift an, aber es soll nicht immer angreifen wenn man in den wald geht , sondern nur abund zu , wie mach ich das . Bitte erklären ^^
 

Apocalyptic

BeitragSa, Nov 27, 2004 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit:

Code: [AUSKLAPPEN]
if Rand(0,100)=50 then Angreifen()


und ganz am Anfang von deinem Code noch Code: [AUSKLAPPEN]
SeedRnd Millisecs()
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

Kado

BeitragSa, Nov 27, 2004 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked , ich mache als übung ein simples textadventure ^^ . könntest du das bitte nochmal erklären ?? ^^
 

Apocalyptic

BeitragSa, Nov 27, 2004 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Also: Rand(x,y) gibt eine Zufallszahl zwischen x und y aus. Die If abfrage führt die Funktion Angreifen aus, wenn diese Zufallszahl 50 ist (nur als Beispiel). Je weiter x und y voneinander entfernt sind, desto seltener wird die Funktion ausgeführt. Seedrnd Millisecs() sorgt dafür, das die Zufallszahlen einigermaßen zufällig sind, da sonst immer die gleiche Reihenfolge erscheint.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

Kado

BeitragSa, Nov 27, 2004 0:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Rand (0,1)
SeedRnd MilliSecs()
Repeat
Print "1"
menu=Input$(" ")
Cls
If menu = 1
   If Rand = 1
      Print "Du wurdest angegriffen"
   EndIf
   Print "du bist im wald"
EndIf

Until KeyHit(1)
WaitKey


geht irgendwie net :S
 

Apocalyptic

BeitragSa, Nov 27, 2004 0:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
SeedRnd MilliSecs()
Repeat
   Print "1"
   menu=Input$(" ")
   Cls
   If menu = 1
      If Rand(0,1) = 1
         Print "Du wurdest angegriffen"
      EndIf
      Print "du bist im wald"
   EndIf

Until KeyHit(1)
WaitKey
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

Kado

BeitragSa, Nov 27, 2004 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
wie mach ich jetzt das kampsystem ?? also das die keule 5-7 hp der ratte zieht und die rattte hat 30 hp :S , kein plan hilft mir mal . Also ich habe nur das es 5-7 hp zeiht da hab ich kein plan

simi

BeitragSa, Nov 27, 2004 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du auch normales deutsch?? Rolling Eyes

Wie wärs, wenn du von der Rattehp's einfach 5-7 hp abziehst, wenn sie getroffen wurde, oder ist das zu kompliziert?!?

Ctuchik

BeitragSa, Nov 27, 2004 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Lebenspunktederratte = Lebenspunktederratte - Rand(5,7)

Aber wenn dir das schon zu kompliziert ist Rolling Eyes
Naja ich sag nix, aber vielleicht solltest du erstmal die grundlegenden Befehle lernen!
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
 

feider

ehemals "Decelion"

BeitragSo, Nov 28, 2004 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieser Spaghetti-Code stammt aus meiner Anfängerzeit in BB. Er ist eigendlich komplett sch... aber zrotzdem sollte man sehen, wie soetwas funzt.
Code: [AUSKLAPPEN]

Graphics 800, 600
Global Textx = 0
Global Texty = 0
Dim Gegner(5,2)
Dim Gegner2(5,1)
Dim Selbst(2,2)
Dim GegnerAttack(5)
Dim GegnerAttack2(5)
Dim SelbstAttack(6)
Global level=1

Data 100, 100, 100, 750, 750
For I = 1 To 5
   Read Gegner2(I,1)
Next


Data 20, 20, 20, 100, 100
For I = 1 To 5
   Read Gegner(I,2)
Next

Data 2500, 3250
For I = 1 To 2
   Read Selbst(I,1)
Next
Data 1000, 1500
For I = 1 To 2
   Read Selbst(I,2)
Next

Data 50, 250, 75, 750
For I = 1 To 4
   Read GegnerAttack(I)
Next
Data 50, 250, 75, 750
For I = 1 To 4
   Read GegnerAttack2(I)
Next

Data 1400, 1500, 1750, 1500, 1600, 11000
For I = 1 To 6
   Read SelbstAttack(I)
Next

SeedRnd MilliSecs()
Global a=0
Repeat




   ;//////////Meine\\\\\\\\\\
   Win()

   If Selbst(1, 1)>0
   Cls
   
   TextLocate(1, 10)
   
   textprint("1.Kampfdroide:" + Gegner(1, 1) + " " + "2.Kampfdroide:" + Gegner(2, 1) + " " + "3.Kampfdroide:" + Gegner(3, 1))
   
   textprint("4.Zerstörerdroide:" + Gegner(4, 1) + " " + "5.Zerstörerdroide:" + Gegner(5, 1) + "  ")

   TextLocate(1, 550)
   
   
   textprint("Obi-Wan: " + Selbst(1,1) + "  " + "Qui-Gon: " + Selbst(2,1) + "  ")
   
   Gegn = textinput("Den wievielten Gegner mit Obi-Wan angreifen? . . . ")
   
   Attack = textinput("Mit welcher Attacke? (1=Laserschwert, 2=1.Macht, 3=2.Macht) . . . ")
   
   textlocate(350, 294)
   
   textprint("Obi-Wan greift an")
   
   Gegner(Gegn, 1) = Gegner(Gegn, 1) - SelbstAttack(Attack)
   
   Delay 1000
   EndIf
   Win()
   If Selbst(2,1)>0
   Cls
   
   TextLocate(1, 10)
   
   textprint("1.Kampfdroide:" + Gegner(1, 1) + " " + "2.Kampfdroide:" + Gegner(2, 1) + " " + "3.Kampfdroide:" + Gegner(3, 1))
   
   textprint("4.Zerstörerdroide:" + Gegner(4, 1) + " " + "5.Zerstörerdroide:" + Gegner(5, 1) + "  ")

   
   TextLocate(1, 550)
   
   
   textprint("Obi-Wan: " + Selbst(1,1) + "  " + "Qui-Gon: " + Selbst(2,1) + "  ")
   
   Gegn = textinput("Den wievielten Gegner mit Qui-Gon angreifen? . . . ")
   
   Attack = textinput("Mit welcher Attacke? (1=Laserschwert, 2=1.Macht, 3=2.Macht) . . . ")
   
   textlocate(350, 294)
   
   textprint("Qui-Gon greift an")
   
   
   Gegner(Gegn, 1) = Gegner(Gegn, 1) - SelbstAttack((Attack+3))
   EndIf
   Win()

   ;//////////Gegner\\\\\\\\\\
   
   Cls
   
   For I = 1 To 3
      If Gegner(I,1)>0
      Gegn=Rand(1,2)
      Selbst(Gegn,1)=Selbst(Gegn,1) - GegnerAttack(Rand(1,2))
      Cls
      TextLocate(1, 10)
      
      
      textlocate(350, 294)
   
      textprint("Der Gegner greift an")
      
      TextLocate(1, 10)
      

   
      textprint("1.Kampfdroide:" + Gegner(1, 1) + " " + "2.Kampfdroide:" + Gegner(2, 1) + " " + "3.Kampfdroide:" + Gegner(3, 1) )
      textprint("4.Zerstörerdroide:" + Gegner(4, 1) + " " + "5.Zerstörerdroide:" + Gegner(5, 1) + "  ")

      TextLocate(1, 550)
      
   
      textprint("Obi-Wan: " + Selbst(1,1) + "  " + "Qui-Gon: " + Selbst(2,1) + "  ")
      Delay 1000
      EndIf
      Win()
   Next
   
   For I = 4 To 5
      If Gegner(I,1)>0
      Gegn=Rand(1,2)
      Selbst(Gegn,1)=Selbst(Gegn,1) - GegnerAttack(Rand(3,4))
      Cls
      
      
      textlocate(350, 294)
   
      textprint("Der Gegner greift an")
      


      
      TextLocate(1, 10)
   
      textprint("1.Kampfdroide:" + Gegner(1, 1) + " " + "2.Kampfdroide:" + Gegner(2, 1) + " " + "3.Kampfdroide:" + Gegner(3, 1) )
      textprint("4.Zerstörerdroide:" + Gegner(4, 1) + " " + "5.Zerstörerdroide:" + Gegner(5, 1) + "  ")
   
      TextLocate(1, 550)
   
   
      textprint("Obi-Wan: " + Selbst(1,1) + "  " + "Qui-Gon: " + Selbst(2,1) + "  ")
      Delay 1000
      EndIf
      Win()
   Next
   
Forever


   
   
      




















;//////////////////////Funktionen\\\\\\\\\\\\\\\\\\\\\





Function TextLocate(Tx, Ty)
   Textx = Tx
   Texty = Ty
End Function

Function TextPrint(Bla$)
   Text Textx, Texty, Bla$
   Texty = Texty + 15
End Function

Function TextPrintSchrift(Bla$, Schrift2$, Grosse)
   Schrift =LoadFont(Schrift2$,Grosse,False,False,False)
   SetFont Schrift
   Text Textx, Texty, Bla$
   Texty = Texty + 15
   FreeFont Schrift
End Function

Function TextInput$(Bla$)
   Locate Textx, Texty
   Bla2$=Input(Bla$)
   Texty = Texty + 15
   Return Bla2$
End Function

Function Win()
   For I = 1 To 5
      If Gegner(I,1)<0 Then Gegner(I,1)=0
   Next
   If Gegner(1,1)=0 Then If Gegner(2,1)=0 Then If Gegner(3,1)=0 Then If Gegner(4,1)=0 Then If Gegner(5,1)=0 Then Goto Win
   Goto Endn
   .Win
   Cls
   textlocate(1,10)
   textprint("Du hast diesen Level gewonnen!")
   WaitKey
   level=level+1
   For I = 1 To 5
      Gegner(I,1)=level*Gegner2(I,1)
   Next
   For I = 1 To 2
      Selbst(I,1) = Selbst(I,1) + 1100
   Next
   If level>5
      For I = 1 To 2
         Selbst(I,1) = Selbst(I,1) + 1100
      Next
   EndIf
   If level>4
      For I = 1 To 5
         GegnerAttack(I)=GegnerAttack(I)+(GegnerAttack(I)*0.4)
      Next
   EndIf
   .Endn


PS: Bitte nicht meckern, der Code ist Mist! Das weiss ich! Da war ich Anfänger! (Kannte BB ca 1-2 Wochen)

PPS: Wie man unschwer erkennen kann, war ich damals noch Star Wars-Fanatiker Laughing !

ciao
wammerl
 

noir

BeitragSo, Nov 28, 2004 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Kado bei deiner letzten frage, haben wir dir doch den getkey() befehl erklärt, jetzt nimmst du doch wieder input, nur ma so nebenbei.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group