Taschenrechner

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Scretchy

Betreff: Taschenrechner

BeitragDi, Okt 26, 2004 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ist mein eigenes Kleines Wunderwerk!
Und wenn ihr verbesserungsvorschläge habt lasst sie mich bitte hören!
Code: [AUSKLAPPEN]

Graphics 640,480,16,2
SetBuffer BackBuffer()
AppTitle "taschenrechner"
Global zahl1$
Global zahl2$
Global d_temp$
Cls
Graphics 640, 480
 For x = 0 To 180
        Color Rand(0,255),Rand(0,255),Rand(0,255)
      Text 155,0, "******************************************"
      Text 155,10, "*Willkommen bei Scretchys Taschenrechner!*"
      Text 155,20, "******************************************"
             fntArial =LoadFont("Arial",32,False,False,True)
           SetFont fntArial
            Text 240,100, "Bitte Warten!"
      FreeFont fntArial
      Flip
 Next
Repeat

.start
Cls

numblock()
Color 255,255,255
fntArial =LoadFont("Arial",20,False,False,False)
SetFont fntArial
Text 180,20, "Bitte geben sie die Rechenaufgabe ein: " + d_temp$
fntArial =LoadFont("Arial",32,False,False,True)
SetFont fntArial
Text 240,180, "Ergebnis: " + ergebnis
Color 255,0,0
Text 165,360, "Zum Beenden Esc drücken!"
FreeFont fntArial
If KeyHit(156) Then ergebnis = ausrechnen()
If KeyHit(28) Then ergebnis = ausrechnen()
If KeyHit(14) Then loeschen()
Flip
Until KeyDown(1)
Function numblock()
If KeyHit(82) Then d_temp$ = c_temp$ + "0"
If KeyHit(79) Then d_temp$ = d_temp$ + "1"
If KeyHit(80) Then d_temp$ = d_temp$ + "2"
If KeyHit(81) Then d_temp$ = d_temp$ + "3"
If KeyHit(75) Then d_temp$ = d_temp$ + "4"
If KeyHit(76) Then d_temp$ = d_temp$ + "5"
If KeyHit(77) Then d_temp$ = d_temp$ + "6"
If KeyHit(71) Then d_temp$ = d_temp$ + "7"
If KeyHit(72) Then d_temp$ = d_temp$ + "8"
If KeyHit(73) Then d_temp$ = d_temp$ + "9"
If KeyHit(78) Then d_temp$ = d_temp$ + "+"
If KeyHit(74) Then d_temp$ = d_temp$ + "-"
If KeyHit(55) Then d_temp$ = d_temp$ + "*"
If KeyHit(181) Then d_temp$ = d_temp$ + "/"
End Function

Function ausrechnen()
pos1 =  Instr(d_temp$,"+")
pos2 =  Instr(d_temp$,"-")
pos3 =  Instr(d_temp$,"*")
pos4 =  Instr(d_temp$,"/")
;zuerst wird der string nach den rechen-zeichen dursucht
If pos1 <> 0 Then
   zahl1$ = Left$(d_temp$,pos1-1)
   zahl2$ = Mid$(d_temp$,pos1+1)
   d_temp$ = ""   ;leeren der variable c_temp$, da die rechnung sonst dort immer stehen bleiben würde
   Return (Int(zahl1$)+Int(zahl2$))
Else If pos2 <> 0 Then
   zahl1$ = Left$(d_temp$,pos2-1)
   zahl2$ = Mid$(d_temp$,pos2+1)
   d_temp$ = ""
   Return (Int(zahl1$)-Int(zahl2$))
Else If pos3 <> 0 Then
   zahl1$ = Left$(d_temp$,pos3-1)
   zahl2$ = Mid$(d_temp$,pos3+1)
   d_temp$ = ""
   Return (Int(zahl1$)*Int(zahl2$))
Else If pos4 <> 0 Then
   zahl1$ = Left$(d_temp$,pos4-1)
   zahl2$ = Mid$(d_temp$,pos4+1)
   d_temp$ = ""
   Return (Int(zahl1$)/Int(zahl2$))
   End If
End Function

Function loeschen()
d_temp$ = Left$(d_temp$,Len(d_temp$)-1)
End Function
.beenden
Cls
Color 255,255,255
Locate 150,0
fntArial =LoadFont("Arial",20,False,False,True)
SetFont fntArial
Beenden$ = Input$("Wollen sie noch eine Aufgabe eingeben?")
Select Beenden
 Case "JA" Goto start
 Case "ja" Goto start
 Case "Ja" Goto start
 Case "NEIN" End
 Case "nein" End
 Case "Nein" End
 Default Cls
FreeFont fntArial         
Color 255,0,0
         Text 140,10, "* Eingabe ungültig, versuchen sie es nochmal! *"
         Text 140,0 , "***********************************************"
         Text 140,34, "***********************************************"
         Text 140,22, "*        Möglichkeiten: Ja oder Nein!         *"
         WaitKey
         Goto beenden
         Flip
End Select

Bms

BeitragDi, Okt 26, 2004 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
tja, in blitzplus geht das nicht...........
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download

Kabelbinder

Sieger des WM-Contest 2006

BeitragDi, Okt 26, 2004 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Verdammt, ich empfehle echt niemandem, dieses Programm zu starten!

Scretchy, weshalb bitte, lädst du in ner For-Schleife 180 gleichgroße und gleich Ausgelegte Fonts ein? Das überläd doch voll den Speicher. Mein Computer hat nachher erstmal ne Verschnaufpause gebraucht, bis er wieder wieder funktioniert hat. Also ich würde dir dringend empfehlen, diesem Code nochmal zu überarbeiten.

Und Verbesserungsvorschläge Very Happy :

-Hast du in dem Taschenrechner schon Punktrechnung vor Strichrechnung drin?
-Kann man auch mehrere Operatoren benutzen, z.B. 32/4*7+5?
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Wild-Storm

BeitragDi, Okt 26, 2004 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
und sowas landet hier.....
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875
 

Scretchy

BeitragDi, Okt 26, 2004 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Scretchy, weshalb bitte, lädst du in ner For-Schleife 180 gleichgroße und gleich Ausgelegte Fonts ein? Das überläd doch voll den Speicher.


Weil der dann am anfang die Farben abwechselt!
 

Scretchy

BeitragDi, Okt 26, 2004 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 640,480,16,2
SetBuffer BackBuffer()
AppTitle "taschenrechner"
Global zahl1$
Global zahl2$
Global d_temp$
Cls
Graphics 640, 480
 Repeat
        Color Rand(0,255),Rand(0,255),Rand(0,255)
      Text 155,0, "******************************************"
      Text 155,10, "*Willkommen bei Scretchys Taschenrechner!*"
      Text 155,20, "******************************************"
      fntArial =LoadFont("Arial",32,False,False,True)
      SetFont fntArial
      Text 80,180, "Zum starten eine Enter Taste drücken!"
      FreeFont fntArial
      Flip
      If KeyHit(28) Then Goto start
      If KeyHit(156) Then Goto start
Forever


.start
Repeat
Cls
numblock()
Color 255,255,255
fntArial =LoadFont("Arial",20,False,False,False)
SetFont fntArial
Text 180,20, "Bitte geben sie die Rechenaufgabe ein: " + d_temp$
fntArial =LoadFont("Arial",32,False,False,True)
SetFont fntArial
Text 240,180, "Ergebnis: " + ergebnis
Color 255,0,0
Text 165,360, "Zum Beenden Esc drücken!"
FreeFont fntArial
If KeyHit(156) Then ergebnis = ausrechnen()
If KeyHit(28) Then ergebnis = ausrechnen()
If KeyHit(14) Then loeschen()
Flip
Until KeyDown(1)

Function numblock()
If KeyHit(82) Then d_temp$ = c_temp$ + "0"
If KeyHit(79) Then d_temp$ = d_temp$ + "1"
If KeyHit(80) Then d_temp$ = d_temp$ + "2"
If KeyHit(81) Then d_temp$ = d_temp$ + "3"
If KeyHit(75) Then d_temp$ = d_temp$ + "4"
If KeyHit(76) Then d_temp$ = d_temp$ + "5"
If KeyHit(77) Then d_temp$ = d_temp$ + "6"
If KeyHit(71) Then d_temp$ = d_temp$ + "7"
If KeyHit(72) Then d_temp$ = d_temp$ + "8"
If KeyHit(73) Then d_temp$ = d_temp$ + "9"
If KeyHit(78) Then d_temp$ = d_temp$ + "+"
If KeyHit(74) Then d_temp$ = d_temp$ + "-"
If KeyHit(55) Then d_temp$ = d_temp$ + "*"
If KeyHit(181) Then d_temp$ = d_temp$ + "/"
End Function

Function ausrechnen()
pos1 =  Instr(d_temp$,"+")
pos2 =  Instr(d_temp$,"-")
pos3 =  Instr(d_temp$,"*")
pos4 =  Instr(d_temp$,"/")
;zuerst wird der string nach den rechen-zeichen dursucht
If pos1 <> 0 Then
   zahl1$ = Left$(d_temp$,pos1-1)
   zahl2$ = Mid$(d_temp$,pos1+1)
   d_temp$ = ""   ;leeren der variable c_temp$, da die rechnung sonst dort immer stehen bleiben würde
   Return (Int(zahl1$)+Int(zahl2$))
Else If pos2 <> 0 Then
   zahl1$ = Left$(d_temp$,pos2-1)
   zahl2$ = Mid$(d_temp$,pos2+1)
   d_temp$ = ""
   Return (Int(zahl1$)-Int(zahl2$))
Else If pos3 <> 0 Then
   zahl1$ = Left$(d_temp$,pos3-1)
   zahl2$ = Mid$(d_temp$,pos3+1)
   d_temp$ = ""
   Return (Int(zahl1$)*Int(zahl2$))
Else If pos4 <> 0 Then
   zahl1$ = Left$(d_temp$,pos4-1)
   zahl2$ = Mid$(d_temp$,pos4+1)
   d_temp$ = ""
   Return (Int(zahl1$)/Int(zahl2$))
   End If
End Function

Function loeschen()
d_temp$ = Left$(d_temp$,Len(d_temp$)-1)
End Function
.beenden
Cls
Color 255,255,255
Locate 150,0
fntArial =LoadFont("Arial",20,False,False,True)
SetFont fntArial
Beenden$ = Input$("Wollen sie noch eine Aufgabe eingeben?")
Select Beenden
 Case "JA" Goto start
 Case "ja" Goto start
 Case "Ja" Goto start
 Case "NEIN" End
 Case "nein" End
 Case "Nein" End
 Default Cls
FreeFont fntArial         
Color 255,0,0
         Text 140,10, "* Eingabe ungültig, versuchen sie es nochmal! *"
         Text 140,0 , "***********************************************"
         Text 140,34, "***********************************************"
         Text 140,22, "*        Möglichkeiten: Ja oder Nein!         *"
         WaitKey
         Goto beenden
         Flip
End Select

Jetzt habe ich es umgeändert!
Bei mir ruckelt der nicht!

Wild-Storm

BeitragDi, Okt 26, 2004 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
also wirklich sorry, aber das da ist müll
die auslagerungsdatei steigt von 200 auf 800MB rauf (habs dann beendet weils mir zu viel wurde), deine komischen in der schleife lade routine gibt andere möglichkeiten, erstelle z.b. ein bild mach deinen font und zeichne darein, dann lässt dus mit drawimage auf den screen zeichnen, und schon brauchst du dein font laden in der schleife nimmer.
oder das doppelte graphics ist auch unnötig, ausserdem löscht es wieder den kacbuffer, daher das flimmern.
teste dein prog aus und schau auf alles und dann erst poste es hier


edit: du benutzt ja auch 2mal font laden, löscht aber nur einmal....kein wunder.....


edit2: das farbenwechseln hat keine auswirkung auf den font!
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875
  • Zuletzt bearbeitet von Wild-Storm am Di, Okt 26, 2004 19:24, insgesamt einmal bearbeitet
 

Kekskiller

BeitragDi, Okt 26, 2004 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Sag mal, bist du denn irgendwie vollkommen benebelt o_O ?
Das kostet Zeit, nur Zeit. Lad das Ding vorher rein und setze
es allgemein. Noch besser: Les dir verdammt nochmal die HILFE durch...
 

Timo

BeitragDi, Okt 26, 2004 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
die Farbe von Text ändert man mit dem Befehl Color, nicht indem man ne neue Schrift reinlädt Wink
 

Scretchy

BeitragDi, Okt 26, 2004 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wild-Storm hat Folgendes geschrieben:

edit: du benutzt ja auch 2mal font laden, löscht aber nur einmal....kein wunder.....

ja weil wenn ich das vor die schleife setzte dann findet er den font nicht!

Kabelbinder

Sieger des WM-Contest 2006

BeitragDi, Okt 26, 2004 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Und lass bitte das Goto weg, das verwirrt doch nur, also wenn du das in deinen Spielen auch benutzt, dann Ahoi.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Scretchy

BeitragDi, Okt 26, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Kabelbinder hat Folgendes geschrieben:
Und lass bitte das Goto weg, das verwirrt doch nur, also wenn du das in deinen Spielen auch benutzt, dann Ahoi.

Ja wie denn sonst gosub oder was?

Wild-Storm

BeitragDi, Okt 26, 2004 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
function
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875

DA

BeitragMi, Okt 27, 2004 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Ich will ja nichts sagen, aber irgendwie hackt ihr alle auf ihn ein!
Also ich finde das für einen "Anfänger" klasse!
Es gibt zwar hier und da noch ein paar macken aber die können ja noch behoben werden Wink .

Thx
DarkAngel
Deutscher Blitz Basic Chat

Kabelbinder

Sieger des WM-Contest 2006

BeitragMi, Okt 27, 2004 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, ja, genau. Function oder Gosub. Also wenn man bei längeren Quelltexten Goto benutzt, versteht man irgendwann gar nichts mehr. Durch Goto springt man ja irgendwo in einem Anderen Bereich des Quelltextes. Aber irgendwann weiß man einfach nicht mehr, wo man ist, weil man nicht an den Ausgangspunkt zurückspringen kann.
Du hast da ja z.B. sowas eingebaut:
Goto start
stattsdessen kannst du das ja auch alles in eine Hauptschleife packen, dann brauchst du kein Goto.

Aber vor allem: nicht verzagen, Scretchy mein erster Code, den ich versucht habe, ins Archiv zu setzen wurde auch rausgekickt.

@DarkAngel: Da mussten wir doch alle mal durch Very Happy .
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Scretchy

BeitragMi, Okt 27, 2004 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
DarkAngel hat Folgendes geschrieben:
Moin,

Ich will ja nichts sagen, aber irgendwie hackt ihr alle auf ihn ein!
Also ich finde das für einen "Anfänger" klasse!
Es gibt zwar hier und da noch ein paar macken aber die können ja noch behoben werden Wink .

Thx
DarkAngel

Danke für die Verteidigung Dark Angel

Kabelbinder

Sieger des WM-Contest 2006

BeitragMi, Okt 27, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
@DarkAngel: ich weiß nicht, ob du das wusstest, aber Scretchy hat diesen Taschenrechner anfangs auch ins Code-Archiv gestellt und wer etwas ins Code-Archiv setzt, der muss eben auch kritik ertragen.
Also ich würde sagen, wenn man das in der Beginner's-Corner schreibt, wird man auch nicht kritisiert.
Aber du hast recht, für einen Anfänger ich das ein gutes Programm.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

DA

BeitragDo, Okt 28, 2004 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, das wusste ich nicht.
Aber trodzdem finde ich das nicht gut das fast alle auf ihn einhacken.
Jeder hat mal klein angefangen und jeder macht mal Fehler.

@Scretchy
Nichts zu Danken Wink .

Thx
DarkAngel
Deutscher Blitz Basic Chat

Egon Dragon

BeitragDo, Okt 28, 2004 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
und außerdem kann man goto manchmal auch ganz gut gebrauchen
zum beispiel hir.

Code: [AUSKLAPPEN]

;-->Hauptmenü<--
.hauptmenü
while not keydown(1)
;...fragwasab
wend

;-->Hauptprogramm<--
repeat
;...machwas
;...tudies
;...tudas
   if keydown(1)
   goto hauptmenü
   endif
forever
 

Scretchy

BeitragDo, Okt 28, 2004 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß das man goto manchmal gebruchen kann!
Aber die mekern ja alle über die spaggettis!
Vllt schmeckt den das mit Ketchup und pamesankäse besser!

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group