 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Domso
Anmeldungsdatum: 02.02.2011 Beiträge: 109
|
Verfasst am: 31.03.2011, 10:59 Titel: Sinnfreie Programme |
|
|
Hi
im laufe der Zeit sammeln sich so eine reihe an komplett sinnfreien Programmen an, die rein gar keinen Sinn bzw Nutzen haben
1. Kurvenzeichner
Er zeichnet einen Graphen auf basis der Mausbewegung
Code: | DIM AS INTEGER mx, my, mb, mx2, my2, mb2, wertx, werty, wertx2, werty2, imba
DIM AS INTEGER wert_achsex, wert_achsey, wert_achsey_vorher, wert_achsex_vorher
SCREENRES 1024, 768
wert_achsex = 10
Do
mx2=mx
my2=my
mb2=mb
GETMOUSE mx,my,,mb
wertx = mx - mx2
werty = my - my2
IF wertx <= 0 THEN
wertx *=(-1)
ELSEIF werty <= 0 THEN
werty *=(-1)
ENDIF
wert_achsey = wertx + werty
If imba=5 Then
LINE (wert_achsex, wert_achsey + 400) - (wert_achsex_vorher, wert_achsey_vorher + 400)
wert_achsex = wert_achsex + 1
wert_achsey_vorher = wert_achsey
wert_achsex_vorher = wert_achsex
EndIf
If imba>5 Then
imba=1
EndIf
imba+=1
SLEEP 10,1
LOOP UNTIL MultiKey(1) |
2. Hintergrundfarbprogramm
4 button zum Hintergrundfarbe ändern
Code: | DIM AS INTEGER mx, my, mb
SCREEN 18
Do
LINE (200, 200)-(290, 220),, B
LINE (201, 201)-(289, 219),, B
DRAW STRING (205, 204), "Gelb"
LINE (200, 240)-(290, 220),, B
LINE (201, 241)-(289, 219),, B
DRAW STRING (205, 224), "Gruen"
LINE (200, 260)-(290, 220),, B
LINE (201, 261)-(289, 219),, B
DRAW STRING (205, 244), "Lila"
LINE (200, 280)-(290, 220),, B
LINE (201, 281)-(289, 219),, B
DRAW STRING (205, 264), "Rot"
Do
GETMOUSE mx, my,, mb
SLEEP 1
if mx>200 AND mx<290 AND my>200 AND my<220 AND mb=1 then
cls
PAINT (0, 0), 14, 14
elseif mx>200 AND mx<290 AND my>220 AND my<240 AND mb=1 then
cls
PAINT (0, 0), 10, 10
elseif mx>200 AND mx<290 AND my>240 AND my<260 AND mb=1 then
cls
PAINT (0, 0), 5, 5
elseif mx>200 AND mx<290 AND my>260 AND my<280 AND mb=1 then
cls
PAINT (0, 0), 12, 12
endif
loop until mx>200 AND mx<290 AND my>200 AND my<220 AND mb=1 OR mx>200 AND mx<290 AND my>220 AND my<240 AND mb=1 or mx>200 AND mx<290 AND my>240 AND my<260 AND mb=1 or mx>200 AND mx<290 AND my>260 AND my<280 AND mb=1
loop |
3. Konsole (WIN)
eine kleine Konsole für alle PC, auf denen die normale Winkonsole gesperrt ist
Code: | print "Windows-Befehlskonsole"
Dim as string befehl
Do
shell "ver"
befehl = ""
shell "cd"
input "", befehl
shell befehl
loop |
4. Taskmanager
für alle Rechner wo der Taskmanager gesperrt ist
Code: | Dim as string befehl
Do
shell "tasklist"
print ""
print ""
print "Welcher task soll beendet werden?"
input "", befehl
if befehl = "cls" then
shell "cls"
end if
shell "taskkill /im "+befehl+" /f"
'shell "cls"
loop |
5. ein Strichmännchen das mit der Leertaste hüpft
(total mies programmiert )
Code: | Dim shared as integer mx, my, mb ,Rad
Dim shared as integer FL ,FL1, FR, FR1, K, K1, KO, WA, WA1, WB, WB1, WC, WC1, WD,WD1,M, M2, M3, M4, M5, M6, M7, schuss12, schuss11, i
Declare sub schuss
Dim shared as string taste
Dim shared as integer y200, y190, y170, y160, y175
y200 = 200
y190 = 190
y170 = 170
y175 = 175
y160 = 160
Declare sub me
Declare sub la
screenres 420, 320
FL = 50
FL1 = 60
FR = 60
FR1 = 70
K = 60
K1 = 60
KO = 60
WA = 60
WA1 = 70
WB = 60
WB1 = 70
WC = 70
WC1 = 70
WD = 70
WD1 = 90
M = 100
M2 = 150
M3 = 200
M4 = 250
M5 = 300
M6 = 350
M7 = 400
sub me
line (0 ,200)- (420, 200)
line (FL,y200)-(FL1,y190)
LINE (FR,y190)-(FR1,y200)
line (K,y190)-(K1,y170)
CIRCLE (KO, y160), 10
line (WA,y170) - (WA1,y170)
line (WB,y170) - (WB1,y175)
line (WC,y170) - (WC1,y175)
line (WD,y170) - (WD1,y170)
end sub
schuss12= 170
sub schuss
GETMOUSE mx, my,, mb
if mb = 1 then
circle (M,schuss12),2,
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,
sleep 10
circle (M7,schuss12),2,0
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,
sleep 10
circle (M,schuss12),2,0
sleep 10
circle (M2,schuss12),2,0
sleep 10
circle (M3,schuss12),2,0
sleep 10
circle (M4,schuss12),2,0
sleep 10
circle (M5,schuss12),2,0
sleep 10
circle (M6,schuss12),2,0
sleep 10
circle (M7,schuss12),2,0
sleep 10
else
endif
end sub
sub la
Do
'if
taste = inkey
if taste=CHR (255, 77) then
cls
FL +=10
FL1 +=10
FR +=10
FR1 +=10
K +=10
K1 +=10
KO +=10
WA +=10
WA1 +=10
WB +=10
WB1 +=10
WC +=10
WC1 +=10
WD +=10
WD1 +=10
M +=10
M2 +=10
M3 +=10
M4 +=10
M5 +=10
M6 +=10
M7 +=10
me
schuss
elseif taste=CHR (255, 75) then
cls
FL -=10
FL1 -=10
FR -=10
FR1 -=10
K -=10
K1 -=10
KO -=10
WA -=10
WA1 -=10
WB -=10
WB1 -=10
WC -=10
WC1 -=10
WD -=10
WD1 -=10
M -=10
M2 -=10
M3 -=10
M4 -=10
M5 -=10
M6 -=10
M7 -=10
me
schuss
elseif taste=CHR (255, 72) then
cls
schuss11 = 0
do
cls
schuss11 += 1
y200 -= 10
y190 -= 10
y170 -= 10
y175 -= 10
y160 -= 10
schuss12 -= 10
me
for i = 10 TO 1 STEP -1
SCHUSS
sleep 1
next
loop until schuss11 = 3
schuss11 = 0
do
cls
schuss11 += 1
y200 += 10
y190 += 10
y170 += 10
y175 += 10
y160 += 10
schuss12 += 100
me
for i = 10 TO 1 STEP -1
SCHUSS
sleep 1
next
loop until schuss11 = 3
me
else
me
schuss
endif
loop
end sub
la
|
6. Ein mini funktionsplotter ohne input
Code: | screenres 500,500
Dim as integer x=-250, y=-250, xx=-250, yy=-250
line (250,500)-(250,1)
line (500,250)-(1,250)
Do
y=1000/x
x+=1
y=y*(-1)
line(x+249, y+249)-(xx+249, yy+249)
xx=x
yy=y
'sleep 100,1
loop |
7. Ein Programm das zufällig auf ein 32x32 Feld mit weißen Punkten macht
Code: |
Dim as integer hoehe, breite, zahl
screenres 100, 100
randomize timer
color 15, 13
Do
hoehe = int(rnd*32)
breite = int(rnd*32)
line (hoehe,breite)-(hoehe,breite)
zahl +=1
loop until zahl = 200
sleep |
Würde mich über mehr sinnloses freuen |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 31.03.2011, 15:43 Titel: |
|
|
habe noch tonnenweise sinloses in meinem "test" ordner .. aber, da kann ich ncithmal mehr sagen, wozu ich das geschrieben habe.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 31.03.2011, 17:02 Titel: |
|
|
Ich hab auch noch Haufenweise Programme, wobei das von den sinnlosen noch das interessanteste ist. In dem Beispiel ist jetzt eine Partikelquelle die nur ein paar Sekunden Partikel aussendet, die andere nur bei Mausklick und die andere immer (jeweils andere Geschwindigkeiten, etc.).
Hab ich mal irgendwann ein Sylvesterprogramm draus gemacht (zufallsfarben und nur kurz Partikel aussenden, sieht super aus).
Code: | #include "fbgfx.bi"
#if __FB_LANG__ = "fb"
Using FB
#endif
Randomize Timer
Dim Shared As Single tsin(1 To 4500)
For i As Integer = 1 To 4500
tsin(i) = sin(i / 3600 * 2 * 3.141592654)
Next i
Function decr (col As Integer, lt As Double, at As Double) As Integer 'lt = Lebensdauer, at = aktuelle Lebenszeit
Dim As UByte Ptr tmp
tmp = @col
For i As Integer = 0 To 3
tmp[i] = abs(tmp[i] * ((lt-at)/lt))
if inkey <> "" then end
Next i
'Print hex(col)
Return col
End Function
Function testdecr (col As Integer, lt As Double, at As Double) As Integer 'lt = Lebensdauer, at = aktuelle Lebenszeit
Dim As Ubyte ptr tmp
tmp = @col
Return rgba(tmp[2], tmp[1], tmp[0], abs(200*((lt-at)/lt)))
End Function
Function fire (col As Integer, lt As Double, at As Double) As Integer 'lt = Lebensdauer, at = aktuelle Lebenszeit
Dim As Ubyte ptr tmp
tmp = @col
Return rgba(tmp[2]*sqr((lt-at)/lt), tmp[1]*((lt-at)/lt), tmp[0], 255)
End Function
Type tpixel
x As Single
y As Single
sx As Single
sy As Single
t As Double
col As Integer
End Type
Type tpixel_source
Private:
grav_x As Single
grav_y As Single
speed As Single
col As Integer
x As Integer
y As Integer
amount As Integer 'pixel pro sek
lifetime As Single 'lebensdauer pro pixel
halttime As Double 'Stopzeit der quelle
lastcycle As Double
pixel As tpixel Ptr
max As Integer
colfunc As Function(a As Integer, b As Double, c As Double) As Integer
Public:
Declare Constructor (x As Integer, y As Integer, gx As Single, gy As Single, speed As Single, amount As Integer, col As Integer, lifetime As Single, halttime As Single, f As Function(a As Integer, b As Double, c As Double) As Integer =@decr)
Declare Destructor
Declare Sub cycle(emit As Integer = 1)
Declare Sub move(x As Integer, y As Integer)
End Type
Sub tpixel_source.move(x As Integer, y As Integer)
this.x = x
this.y = y
End Sub
Sub tpixel_source.cycle(emit As Integer = 1)
Dim As Double dtime
Dim As Double diff, pow
Dim As Integer counter, ang, m
diff = Timer - this.lastcycle
this.lastcycle = Timer
If this.halttime <> -1 AndAlso this.lastcycle > this.halttime Then this.amount = 0
counter = Int(this.amount*diff)
If emit = 0 Then counter = 0
m = counter
'If diff > 0.1 Then counter *= 0.5
For i As Integer = 0 To this.max-1
If this.pixel[i].col <> 0 Then
With this.pixel[i]
dtime = this.lastcycle - .t
'.sx += this.grav_x * diff
'.sy += this.grav_y * diff
'.y += .sy * diff * 25
If dtime > this.lifetime Then .col = 0
PSet (Int(.x + 15 * (this.grav_x * dtime^2 + .sx * dtime)), Int(.y + 15 * (this.grav_y * dtime^2 + .sy * dtime))), colfunc(.col, this.lifetime, dtime)
End With
End If
If this.pixel[i].col = 0 Then
counter -= 1
If counter >= 0 Then
With this.pixel[i]
.x = this.x
.y = this.y
.col = this.col
ang = Int(Rnd*3600 + 1)
pow = sqr(Rnd) '*0.8 + 0.2
.sx = this.speed * tsin(ang) * pow 'this.speed * (Rnd - 0.5)/2
.sy = this.speed * tsin(ang+900) * pow 'this.speed * (Rnd - 0.5)/2
'.sy = this.speed * (Rnd*2-1)
.t = this.lastcycle + 2*diff/m * (counter)
Pset(.x, .y), .col
End With
End If
End If
Next i
End Sub
Constructor tpixel_source (x As Integer, y As Integer, gx As Single, gy As Single, speed As Single, amount As Integer, col As Integer, lifetime As Single, halttime As Single, f As Function(a As Integer, b As Double, c As Double) As Integer =@decr)
this.x = x
this.y = y
this.grav_x = gx
this.grav_y = gy
this.speed = speed
this.col = col
this.amount = amount
this.lifetime = lifetime
If halttime = -1 Then this.halttime = -1 Else this.halttime = Timer + halttime
this.colfunc = f
this.max = amount * lifetime * 1
this.pixel = Callocate(this.max*SizeOf(tpixel))
this.lastcycle = Timer
End Constructor
Destructor tpixel_source()
DeAllocate(this.pixel)
End Destructor
ScreenRes 640, 480, 32, , GFX_ALPHA_PRIMITIVES
' x, y, gravity x, gravity y, speed, amount, color, lifetime, halttime, function
Dim As tpixel_source test = tpixel_source(300, 140, 0, 6, 10, 10000, rgba(255, 190, 0, 255), 2, -1, @fire)
Dim As tpixel_source test2 = tpixel_source(320, 240, 5, 0, 10, 100, rgba(255, 255, 255, 255), 8, -1)
Dim As tpixel_source test3 = tpixel_source(305, 130, -10, 0, 2, 10000, rgba(255, 0, 0, 255), 3, 5)
Dim as integer x, y, t
Do
getmouse x, y,,t
ScreenLock
Line (0,0) - (639, 479), rgba(0,0,0,255), bf
if t = 1 Then
test.move(x, y)
end if
test.cycle(t = 1)
test2.cycle
test3.cycle
ScreenUnLock
sleep 10,1
Loop Until InKey <> ""
|
_________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Domso
Anmeldungsdatum: 02.02.2011 Beiträge: 109
|
Verfasst am: 01.04.2011, 11:47 Titel: |
|
|
ein kleines Programm, dass einen 3d-körper erstellt und darstellt.
Komplett in FB und daher extrem langsam
Code: | Dim shared as integer achse(1 to 500, 1 to 500, 1 to 500), xverschiebung=10, yverschiebung=10, verschiebungslaenge, zachse
screenres 500, 500
for i as integer = 1 to 50
for k as integer = 1 to 100
achse(150+i, 100, 150+k)=1
achse(150, 100+i, 150+k)=2
achse(200, 100+i, 150+k)=2
achse(150+i, 150, 150+k)=1
'ache(125, 125, 175)=1
achse(150+i, 100, 10+k)=3
achse(150, 100+i, 10+k)=4
achse(200, 100+i, 10+k)=4
achse(150+i, 150, 10+k)=3
'achse(120-i, 120, 120)=1
'achse(120, 120-i, 120)=2
'achse(120, 120, 120-i)=3
achse(150+i, 100, 300+k)=5
achse(150, 100+i, 300+k)=6
achse(200, 100+i, 300+k)=6
achse(150+i, 150, 300+k)=5
next
next
achse(300, 300, 300)=1
achse(301, 301, 300)=1
achse(300, 300, 300)=1
achse(301, 300, 300)=1
achse(300, 300, 302)=1
achse(301, 301, 302)=1
achse(300, 300, 302)=1
achse(301, 300, 302)=1
achse(300, 300, 303)=1
achse(301, 301, 303)=1
achse(300, 300, 303)=1
achse(301, 300, 303)=1
achse(300, 300, 100)=1
Do
verschiebungslaenge=((xverschiebung^2)+(yverschiebung^2))^0.5
zachse=verschiebungslaenge/500
cls
if multikey(&h50) then yverschiebung+=50
if multikey(&h48) then yverschiebung-=50
if multikey(&h4D) then xverschiebung+=50
if multikey(&h4B) then xverschiebung-=50
for i as integer = 1 to 500
for k as integer = 1 to 500
for j as integer= 1 to 500
if achse(i, k, j)=1 then
'line(i, k)-(i, k),4
'if (((((xverschiebung^2)+(yverschiebung^2))^0.5)/500)*j)
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 4
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 4
end if
end if
if achse(i, k, j)=2 then
'line(i, k)-(i, k),4
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 5
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 5
end if
end if
if achse(i, k, j)=3 then
'line(i, k)-(i, k),4
'if (((((xverschiebung^2)+(yverschiebung^2))^0.5)/500)*j)
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 6
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 6
end if
end if
if achse(i, k, j)=4 then
'line(i, k)-(i, k),4
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 7
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 7
end if
end if
if achse(i, k, j)=5 then
'line(i, k)-(i, k),4
'if (((((xverschiebung^2)+(yverschiebung^2))^0.5)/500)*j)
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 8
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 8
end if
end if
if achse(i, k, j)=6 then
'line(i, k)-(i, k),4
if j>=175 then
line (i-((xverschiebung/500)*j), k-((yverschiebung/500)*j))-(i-((xverschiebung/500)*j), k-((yverschiebung/500)*j)), 9
end if
if j<175 then
line (i+((xverschiebung/500)*j), k+((yverschiebung/500)*j))-(i+((xverschiebung/500)*j), k+((yverschiebung/500)*j)), 9
end if
end if
next
next
next
loop
|
|
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 06.04.2011, 10:49 Titel: |
|
|
Ein System,auf dem die Konsole gesperrt ist !
Und du bist dir sicher, das der SHELL Kommando auch ohne CMD Funktioniert,
da dieser doch intern die Windows Konsole (CMD) aufruft. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 07.04.2011, 17:46 Titel: |
|
|
Stephan hat Folgendes geschrieben: | Ein System,auf dem die Konsole gesperrt ist !
Und du bist dir sicher, das der SHELL Kommando auch ohne CMD Funktioniert,
da dieser doch intern die Windows Konsole (CMD) aufruft. |
Seltenst ist die cmd.exe/command.com entfernt worden, meistens geht nur Win+R nicht (Startmenüeinträge meistens auch nicht vorhanden).
Da ist aber ne Batchdatei mit der einzigen Zeile "cmd" wesentlich handlicher als irgendein Programm.
SHELL dürfte übrigens unter Windows CreateProcess() benutzen  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 01.07.2011, 10:49 Titel: |
|
|
Manchmal sieht man die Bäume vor lauter Wald nicht mehr. Ohne Kommentar(zeilen)
Code: | SCREENRES 800, 600, 32
DIM AS ANY PTR speicher
DIM AS INTEGER x, y, rot=0, gruen=0, blau=0
DIM AS INTEGER rplus=0, gplus=0, bplus=0
speicher = IMAGECREATE(50, 50, &hff00ff)
LINE speicher, (25, 0)-step(17, 17), &hffffff
LINE speicher, step(0, 0)-step(-10, 0), &hffffff
LINE speicher, step(0, 0)-step(17, 17), &hffffff
LINE speicher, step(0, 0)-step(-50, 0), &hffffff
LINE speicher, step(0, 0)-step(18, -18), &hffffff
LINE speicher, step(0, 0)-step(-10, 0), &hffffff
LINE speicher, step(0, 0)-step(17, -17), &hffffff
PAINT speicher, (24, 10), &hffffff, &hffffff
LINE speicher, (20, 36)-(30, 49), &h804000, bf
RANDOMIZE
DO
x = INT(RND*749)
y = INT(RND*549)
IF INT(RND*1000) = 0 THEN rplus = 1 - rplus
IF INT(RND*1000) = 0 THEN gplus = 1 - gplus
IF INT(RND*1000) = 0 THEN bplus = 1 - bplus
rot = INT(RND*127) + 1 + rplus*128
gruen = INT(RND*127) + 1 + gplus*128
blau = INT(RND*127) + 1 + bplus*128
PAINT speicher, (25, 20), RGB(rot, gruen, blau), &hff00ff
PUT (x, y), speicher, TRANS
SLEEP 1
LOOP UNTIL INKEY <> ""
IMAGEDESTROY speicher |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 22.07.2011, 16:36 Titel: |
|
|
Hier ein Programm zum "Fenstergucken"
Erste versuche mit get und put...ist schon ein bisschen her
Erzeugt ein Bild aus mehreren verschiedenfarben Kugeln. Nach dem Tastendruck wird der Bildschirm gelöscht und es erscheint ein Fenster, das man mit der Maus bewegen kann, um das alte Bild teilweise anzuzeigen....
Code: | dim shared g1(90000) as string
dim shared h(90000) as string
dim as integer x,y,i,i2
screen 20,32,3,1
screenset 1, 0
randomize timer
dim as integer r, g, b,ri, ab
ab =0
ri = 3
r = 100
g = 10
b = 10
for y = 16 to 0 step-1
circle (16, 16), y, RGB(r,g,b),,,,F
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for y = 16 to 0 step-1
circle (16, 216), y, RGB(r,g,b),,,,F
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for y = 16 to 0 step-1
circle (216, 16), y, RGB(r,g,b),,,,F
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for y = 16 to 0 step-1
circle (216, 216), y, RGB(r,g,b),,,,F
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for y = 0 to 16
line (16, y)-(216, y), rgb(r, g, b)
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for y = 232 to 216 step-1
line (16, y)-(216, y), rgb(r, g, b)
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next y
r = 100
g = 10
b = 10
for x = 0 to 16
line (x, 16)-(x, 216), rgb(r, g, b)
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next x
r = 100
g = 10
b = 10
for x = 232 to 216 step-1
line (x, 16)-(x-ab, 216), rgb(r, g, b)
r = r + 20
if r > 255 then
b = b + ri
g = g + ri
r = 255
end if
next x
line (17,17)-(215, 215),RGB(r,g,b),BF
'line (0,0)-(220,220),rgb(100,0,0),bf
get (0,0)-(232,232),h
cls
dim as integer t, c,c2,c3,an,ps,pz
for t = 1 to 50
an = rnd*255
c = rnd*(255-an)
c2 = rnd*(255-an)
c3 = rnd*(255-an)
ps = rnd*1024
pz = rnd*768
for i = an to 0 step-1
circle (ps, pz), i,RGB(c,c2,c3),,,,F
c = c+1
c2 = c2+1
c3 = c3+1
next
next
pcopy 1, 0
sleep
i = 1
i2 = 1
x = 256
y = 192
setmouse ,,0,1
do
getmouse x,y
if x > 823 then setmouse 823,y,0,1: x = 823
if y > 567 then setmouse x,567,0,1: y = 567
screenset 1, 0
get (x,y)-(x+200,y+200),g1
screenset 0, 2
cls
put (x-16,y-16),h
line (x,y)-(x+200,y+200),rgb(0,0,0),bf
line (x-1,y-1)-(x+201,y+201),rgb(100,0,0),b
put (x,y),g1
'x = x +i
'y = y+i2
'if x = 412 or x = 0 then i = i*-1
'if y = 284 or y = 0 then i2 = i2*-1
pcopy 0, 2
loop until inkey$ =CHR(27)
end |
_________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Sannaj
Anmeldungsdatum: 19.12.2010 Beiträge: 35
|
Verfasst am: 29.09.2011, 21:30 Titel: |
|
|
Das mit der Umgehungskonsole klappt nicht. hab ich schon mal versucht. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 29.09.2011, 22:14 Titel: |
|
|
28398 hat Folgendes geschrieben: | Stephan hat Folgendes geschrieben: | Ein System,auf dem die Konsole gesperrt ist !
Und du bist dir sicher, das der SHELL Kommando auch ohne CMD Funktioniert,
da dieser doch intern die Windows Konsole (CMD) aufruft. |
Seltenst ist die cmd.exe/command.com entfernt worden, meistens geht nur Win+R nicht (Startmenüeinträge meistens auch nicht vorhanden).
Da ist aber ne Batchdatei mit der einzigen Zeile "cmd" wesentlich handlicher als irgendein Programm.
SHELL dürfte übrigens unter Windows CreateProcess() benutzen  | Selfquote, Jippy-Yeah |
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 06.11.2011, 22:09 Titel: |
|
|
Liest die Headerdaten einer GBA-Datei aus(Spielname, Version, Serial ...):
Code: | 'GBA Header Viewer
'Offset 0xA0 - 0xAB = Game title
'Offset 0x108 - 0x11E = Alternative game title
'Offset 0xBC = Game version(always 1.0)
'Offset 0xAC - 0xAF = Game serial(starts alway with "AGB")
#Include "file.bi"
Type THeader
As String nam,shortnam
As Byte snamoffset(12),namoffset(23)
As String Serial
As Byte serialoffset(4)
As Integer nambit
End Type
Dim Shared As THeader Header
Dim Shared As String file
Dim As Integer ff = Freefile
Input "File: ",file
If Fileexists(file)=0 Then Print "File not found!":End
Print "Size: "+Str(Filelen(file))+" Bytes ("+Str(Filelen(file)/1024/1024)+"Mb)"
Open file For Binary As #ff
For i As Integer=1 To 12
Get #ff,&hA0+i,Header.snamoffset(i)
Header.shortnam+=Chr(Header.snamoffset(i))
Next
For i As Integer=1 To 23
Get #ff,&h108+i,Header.namoffset(i)
Header.nam+=Chr(Header.namoffset(i))
Next
If Header.namoffset(1)=112 Then Header.nambit=1
For i As Integer=1 To 4
Get #ff,&hAC+i,Header.Serialoffset(i)
Header.Serial+=Chr(Header.Serialoffset(i))
Next
Print "---------------------------------------"
Print "Shortname(Offset A0-AB): "+Header.shortnam
If Header.nambit=1 Then
Print "Longname(Offset 108-11E): "+Header.nam
Else
Print "Longname(Offset 108-11E): not found"
End If
Print "Version(Offset BC): 1.0"
Print ""
Print "Serial(Offset AC-AF): AGB-"+Header.Serial
Close #ff |
|
|
Nach oben |
|
 |
Sannaj
Anmeldungsdatum: 19.12.2010 Beiträge: 35
|
Verfasst am: 06.11.2011, 23:11 Titel: |
|
|
Addiert zwei Zahlen (aber besonders langsam)
Code: |
'Slow adder.
function add_uiui (a as uinteger, b as uinteger) as uinteger
while b > 0
a += 1
b -= 1
wend
return a
end function |
Zuletzt bearbeitet von Sannaj am 07.11.2011, 22:25, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 06.11.2011, 23:14 Titel: |
|
|
Müsste das nicht "while b>0" sein? (Funktioniert dann natürlich nur für positive b ) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sannaj
Anmeldungsdatum: 19.12.2010 Beiträge: 35
|
Verfasst am: 07.11.2011, 22:29 Titel: |
|
|
Och manno, wiso hab ich das nicht selbst bemerkt.
Zu der Sache mit Prositiv. Ich hab nicht umsonst uinteger als Datentype gewählt. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 08.11.2011, 00:19 Titel: |
|
|
Code: | 'Slow adder.
function add_ii (a as integer, b as integer) as integer
while b <> 0
a += 1
b -= 1
wend
return a
end function
|
Mit Integer als Datantyp und "b<>0" statt "b>0" klappts auch ohne weiteres, was allerdings an der Speicherart (Zweierkomplement) der Zahlen liegt:
Code: | dim as integer c
c=2147483647
print c
c += 1
print c |
Bei add_ii(4, -1) kommt dann auch 3 raus, das dauert allerdings relativ lange. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 08.11.2011, 00:20 Titel: |
|
|
Ansonsten noch eine Variation:
Code: | 'Slow adder.
function add_ii (a as integer, b as integer) as integer
do until b = 0
a += sgn(b)
b -= sgn(b)
loop
return a
end function |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|