Zahlen 1 - 9 zeichnen

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

 

Takashi Kenshin

Betreff: Zahlen 1 - 9 zeichnen

BeitragDi, Okt 16, 2007 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hi leute ich probier mal wieder rum und zwar möcht ich dieses mal in einer for, next schlefe die zahlen 1 - 9 auf 9 felder verteilen. Das wollt ich so machen:

Code: [AUSKLAPPEN]

Function ZAHLENFELD()
For b = 480 To 612 Step 44
   For c = 270 To 402 Step 44
      For a = 1 To 9 Step 1
      SetFont Arial
      Color 0, 0, 0
      Text b, c, a
      Next
   Next
Next
End Function


Wieso sind auf den Feldern jetzt so dicke schwarze balken?
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

X-Calibur

BeitragDi, Okt 16, 2007 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
weil du durch die 3. verschachtelte schleife immer alle zahlen also 1-9 an dieselbe position zeichnest. Probiers mal so :
Code: [AUSKLAPPEN]
a=1
For b = 480 To 612 Step 44
   For c = 270 To 402 Step 44
      Color 255, 0, 0
      Text b, c, a
      a=a+1
   Next
Next


mfg X-Calibur
 

HyDr0x

BeitragDi, Okt 16, 2007 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach weil bei deinem Code auf eine Koordinate 9 verschiedene Zahlen geschrieben werden und sich diese folglich überschreiben.

PS: ok du warst schneller Very Happy
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hm was hast du da gemacht? es kommen zwar mehr zahlen als vorher aber auch die zahl 10 und 11 statt 4 und 8. und sie kommen auch nicht in der reihenfolge
123
456
789

sondern
159
2610
3711
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

X-Calibur

BeitragDi, Okt 16, 2007 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Na dann vertausche mal c und b in deinem text Befehl da Wink Also text c,b,a. Desweiteren empfehle ich dir für Positionsangaben eher x und y zu verwenden als c und b dann wirds deutlicher^^

EDIT :
Oder noch besser vertausche die Schleifen. Wenn du ein Raster von links oben nach rechts unten aufbauen möchtest so musst du mit der Y Koordinate anfangen.

mfg Calibur
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das mit c und b war richtig und damit die 10 und 11 nicht kommen sondern die 4 und 8 musste man das so machen:

Code: [AUSKLAPPEN]

a = 1
For c = 270 To 358 Step 44
   For b = 480 To 568 Step 44
         SetFont Arial
         Color 0, 0, 0
         Text b, c, a
      a = a + 1
      Next
Next


das heißt ich hab einfach den zweiten parameter von c und b um 44 verringert.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
kann ich eigentlich eine kollisionsabfrage durchführen, wenn ich mit loadanimimage mein feld geladen und dann in frames unterteilt habe und die normale windows Maus verwende. (also keine eigens erstellte Maus)
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

Noobody

BeitragDi, Okt 16, 2007 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würd noch das Color und SetFont aus der Schleife nehmen, dann frissts nicht unnötige Leistung Wink
Und ich persönlich würds ja so machen
Code: [AUSKLAPPEN]
a = 1
For c = 0 To 2
   For b = 0 To 2
      Text 480 + b*44, 270 + c*44, a
      a = a + 1
   Next
Next

Aber das bleibt Geschmackssache.

EDIT: Warum Kollisionsabfrage, MouseX() und MouseY() genügen ja völlig.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja hast recht ist geschmackssache. ehm woran merk ich denn ob etwas Leistung frisst?

und post ich jetzt nochmal weil man es vllt. übersehen hat weil gleich darauf ein post kam:

kann ich eigentlich eine kollisionsabfrage durchführen, wenn ich mit loadanimimage mein feld geladen und dann in frames unterteilt habe und die normale windows Maus verwende. (also keine eigens erstellte Maus)
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Okt 16, 2007 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Um das zu realisieren sind mehrere Functionen nötig!

einnmal braucht man ein Feld in dem die 9 Zahlen gespeichert werden, damit diese auch gemischt werden können
dann natürlich eine Mischfuction und zum zeichenn eine Anzeige Function
Und die MainLoop darf nicht fehlen, in der die Functionen abgearbeitet werden.
Code: [AUSKLAPPEN]
Graphics 640 ,480
SetBuffer BackBuffer ()


Dim Zahlen (8)
For t = 0 To 8 ; = 9 Zahlen
    Zahlen (t) = t + 1; damit es 1-9 ist
Next
;MainLoop
Repeat
    Cls
    If KeyHit (57) Then mischen () ; mit Space wird neu gemischt
    anzeigen ()
    Flip
Until KeyHit (1)
End

Function Mischen ()
    For t = 0 To 8
        Pos = Rand (0 ,8)
        temp = Zahlen (t)
        Zahlen (t) = Zahlen (Pos)
        Zahlen (Pos) = temp
    Next
End Function

Function Anzeigen ()
    For x = 0 To 2
        For y = 0 To 2
            Text x * 50 ,y * 50 ,Zahlen (t) ; *50 damit die Zahlen nicht übereinander gezeichnet werden
            t = t + 1 ; hier wird das Feld weitergezählt
        Next
    Next
End Function
[BB2D | BB3D | BB+]
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ehmm... danke aber ich glaube das wollt ich nicht wissen.
ich wollte wissen ob ich mit der ganz normalen maus (kein loadimage "Maus") bzw. Cursor eine kollisionsabfrage mit meinen frames machen kann also den einzelnen feldern die ich gezeichnet habe. Ich kann ja mal meinen ganzen code schicken den ich bis jetzt habe:

Code: [AUSKLAPPEN]

AppTitle "Takashi Sudoku"


Graphics 600, 400, 32, 2
ClsColor 130, 0, 0
Cls
SetBuffer BackBuffer()


Global Arial = LoadFont ("Arial", 38, 1, 0, 0)
Global Ms = MouseHit(1)
Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81)
Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9)


Repeat
Cls


FELDER()
ZAHLENFELD()


Flip


Until KeyHit(1)
WaitKey


Function FELDER()
j = 0
For i = 0 To 352 Step 44
   For i2 = 0 To 352 Step 44
      DrawImage Spielfeld, i2, i, j
      j = j + 1
   Next
Next


g = 0
For h = 267 To 355 Step 44
   For h2 = 467 To 555 Step 44
      DrawImage Zahlenfeld, h2, h, g
      g = g + 1
   Next
Next
End Function


Function ZAHLENFELD()
SetFont Arial
Color 0, 0, 0
a = 1
For c = 270 To 358 Step 44
   For b = 481 To 569 Step 44
         Text b, c, a
      a = a + 1
      Next
Next
End Function
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.
 

Takashi Kenshin

BeitragDi, Okt 16, 2007 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ah da hab ich ja glatt den edit von Noobody übersehen.
du meinst also ich soll abfragen ob mouseX, mouseY, innerhalb bestimmter koordinaten sind.
da hat ich schon mal mehrere stunden dran getüftelt weil ich sowas noch nie gemacht habe. da hab ichs dann als letztes mit sowas versucht.

If MouseX, MouseY = Spielfeld, i2, i, j Then Color 128, 128, 128 DrawImage Spielfeld, i2, i, j

Hab dann an den verschiedensten stellen rumprobiert aber es kamen immer fehler über fehler.
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln.

D2006

Administrator

BeitragMi, Okt 17, 2007 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, letzte Warnung. Wenn ich noch einen Doppelpost von dir sehe, übergebe ich dir feierlich eine Verwarnung.

~GESCHLOSSEN~

Man möge mir nicht vorwerfen, er sei nicht gewarnt worden. Das ist der zweite Thread, den ich schließe. Mit vorheriger Warnung.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group