50 50 Joker

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: 50 50 Joker

BeitragMi, Sep 13, 2006 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

AppTitle "Quizz"
Graphics 540,426,16,2
SetBuffer BackBuffer()
Global game=LoadImage("gfx/game.png")
Global FrageNr = Rand(1,10)
Global Eingabe$
Global Richtig=0,Falsch=0


menü()
End

Function game()
SeedRnd MilliSecs()

Repeat
  ClsColor 127,127,127
  Cls

  DrawImage game,0,0

  Fragen()
  InputRoutine()

  Color 0,0,128
  Text 20,282,"Richtig: "+Richtig
  Text 140,282,"Falsch: "+Falsch

  Flip
Until KeyHit(1)
End Function


Function Fragen()

  If FrageNr = 1 Then
    Color 255,255,20   
    Text 120,344,"Wie nennt man das hölzerne Flugobjekt,"
    Text 120,366,"das beim Werfen wieder zurückkommt?"
    Color 255,255,0
    Text 35,333,"Frisbee"
    Text 35,390,"Bummerang"
    Text 440,333,"Holzaxt"
    Text 440,390,"UFO"
    Text 20,20,"Antwort: "+Eingabe$
    If KeyHit(28) Then
      If Eingabe$="Bummerang" Or Eingabe$="bummerang" Then
        Richtig = Richtig + 1
        Eingabe$=""
        FrageNr = Rand(1,10)
      Else
        Falsch = Falsch + 1
        Eingabe$=""
        FrageNr = Rand(1,10)
      EndIf
    EndIf
  EndIf


Habt ihr ne idee wie ich hier am besten ein 50 50 joker einbauen kann??

Hagbard

BeitragMi, Sep 13, 2006 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich versuche nur das Prinzip zu beschreiben:

Du weißt ja sicher wie das bei Wer wird Millionär ist?
Du könntest ein Dim Feld erstellen, dass für 4 antworten speichert, ob sie angezeigt werden oder nicht!
Sollte jm. den 50:50 Joker benutzen, kannst du ganz leicht zwei von 4 Werten zufällig auf 0 setzen.

Zu deinem Spiel würde ich noch empfehlen, die antworten generell in Dims zu speichern. (Types gehen auch falls du sie schon kennst)
D.h. Du erstellst ein Dim Feld, das die Frage, die vier Antworten und die Nummer der Lösung enthält.
Du kannst die Nummern dann allerdings nicht in Berechnungen verwenden, d.h. als Variablentype Integer sondern nur als String, was aber nicht so problematisch ist.

Schaue dich mal in der Online Hilfe oder Tutorials um, falls dir hier einiges fremd ist.
Wenn das jetzt gar nicht deinen Vorstellungen entspricht, kannst du ja auch noch mal diesbezüglich antworten bzw. dir diesen oder zumindest einen ähnlichen Weg erklären lassen.

darth

BeitragMi, Sep 13, 2006 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
joa... in deinem code wärs schwer :O
ich wär für sowas hier:
Code: [AUSKLAPPEN]
dim lbl$(4)
 lbl$(1)="a)"
 lbl$(2)="b)"
 lbl$(3)="c)"
 lbl$(4)="d)" ; nicht unbedingt nötig, aber schön :)
type frage
 field fragetext$
 field antworten$[4]
 field korrekt
end type

f.frage=new frage
 f\fragetext$="wie war die frage nochma?"
 f\antworten$[1]="weissdochnet"
 f\antworten$[2]="ismirauchegal"
 f\antworten$[3]="sachdasnichnochmal"
 f\antworten$[4]="haltsmaul"
 f\korrekt=1

soviel zur fragenengine,
hier kannst du sooooviele fragen eintragen wie du willst...
dann kommts ans anzeigen
Code: [AUSKLAPPEN]
f.frage=first frage ;den hier vor der hauptschleife...

 text 10,10,f\fragetext$
 for x=1 to 4
  text 20,10+x*10,lbl$(x)+"   "+f\antworten$[x]
 next

gut soweit (falls ich keine fehler gemacht hab :O)
als nächstes wäre da ja der joker (um den es ursprünglich ja ging... sry fürs weite ausholen :/)
Code: [AUSKLAPPEN]
if joker then ;hier irgend n keyhit auf jokerbutton wasweissich
 for x=1 to 2
  .nochmal
  k=rand(1,4)
  if k<>f\korrekt then
   f\antwort$[k]=""
  else
   goto nochmal ;n bisschen unschön, sollte aber gehn
  endif
 next

so werden hübsch zwei antwortmöglichkeiten gelöscht, sofern sie nicht richtig sind.
nun brauchst du noch n kleinen zusatz für die antwortemöglichkeiten
Code: [AUSKLAPPEN]
for x=1 to 4
 if mousehit(1) then
  if rectsoverlap(mousex(),mousey(),1,1,20,10+x*10,20,10) ;rechteck um lbl
   if f\antwort$[x]<>"" then
    if x=f\korrekt then f=after f
   endif
  endif
 endif
next

so... das sollte es eigentlich sein,
irgendwas vergessen?
nö, glaube nicht...
hoffentlich hilfts Smile
Diese Signatur ist leer.
  • Zuletzt bearbeitet von darth am Mi, Sep 13, 2006 15:24, insgesamt einmal bearbeitet

mas93

BeitragMi, Sep 13, 2006 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Es würde eigentlich reichen wenn man zwie rote kasten über die angezeigten Antworten malt, weil man die antwort Ja am schluss sowieso von hand eingeben muss.Hast du ne idee wie ich das machen soll?

darth

BeitragMi, Sep 13, 2006 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
och... wenn du meine methode nich magst dann kannst du auch kreise malen,
aber eine andere methode als in ungefähr die oben (von mir) erwähnte fällt mir da auch nicht dazu ein...
Diese Signatur ist leer.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group