Das war die Aufgabe
Postet hier eure Ergebnisse, Codes, Gedanken. Lernt von den anderen, seht euch deren Quelltext an und versucht euren eigenen zu verbessern.
Diskussion
Postet zu euren Codes stets eine kurze Erklärung mit euren Gedanken in denen ihr simpel gesagt die Frage "Wieso habe ich XY auf diese Art gelöst?" beantwortet. Beiträge, die nur den Code enthalten werden wir aus dem Thread entfernen.
Nächste Aufgabe
In einer Woche wird die Musterlösung nach editiert und in 2 die nächste Aufgabe eingestellt.
Viel Spaß & viel Erfolg!
Musterlösung:
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN]
SeedRnd MilliSecs()
Const TIME_PER_TURN = 10000
Const MIN_SCORE = 1000
Const TURNS_PER_GAME = 10
Local score Local turn
While Not KeyHit(1) Cls If turn=0 Locate 0,0 Print Color 255,255,0 Print "Willkommen zum Kopfrechnen-Spiel!" Print Color 255,255,255 Print "Anschliessend werden dir "+TURNS_PER_GAME+" Rechenaufgaben" Print "gestellt. Für eine richtige Antwort erhälst du" Print "Punkte, abhängig davon wie schnell du warst. Eine" Print "falsche Antwort führt jedoch zu Punkteabzug." Print Print "Drücke eine Taste, um das Spiel zu starten." WaitKey() turn = 1 ElseIf turn>TURNS_PER_GAME Locate 0,0 Print Color 255,255,0 Print "Das Spiel ist um." Print Color 255,255,255 Print "Du hast "+score+" Punkte erreicht." Print Print "Drücke eine Taste, um nochmal zu spielen." WaitKey() turn = 1 score = 0 Else Locate 0,0 Print Color 255,255,0 Print "Aufgabe "+turn turn = turn +1 Print Color 255,255,255 Local startTime = MilliSecs() Local v1,v2,result Local op=Rand(1,100) If op<=50 v1 = Rand(1,100) v2 = Rand(1,100) result = v1+v2 Print v1+"+"+v2+"=?" ElseIf op<=75 v1 = Rand(1,100) v2 = Rand(1,100) result = v1-v2 Print v1+"-"+v2+"=?" ElseIf op<=90 v1 = Rand(1,10) v2 = Rand(1,20) result = v1*v2 Print v1+"*"+v2+"=?" Else v1 = Rand(1,10) v2 = Rand(1,20) result = v1*v2 Print v1+"*?="+result result = v2 EndIf Print Local in$ = Input("Eingabe:") Print Local endTime = MilliSecs() Local time = endTime-startTime Local inVal = in Local addscore If inVal=result addscore = TIME_PER_TURN-time If addscore<MIN_SCORE Then addscore=MIN_SCORE Color 0,255,0 Print "Richtig!" Print "Du erhälst "+addscore+" Punkte" Print Print Else addscore = -time Color 255,0,0 Print "Falsch." Print "Das gibt "+Abs(addscore)+" Punkte Abzug" Print Color 255,255,255 Print "Richtig wäre: "+result EndIf score = score +addscore Print "Punktestand: "+score Delay 3000 FlushKeys EndIf Wend End
|