Seite 1 von 2

Spielkarten

Verfasst: 18.01.2008 00:26
von HeX0R
Da mich neotoma erfolgreich ignoriert hat, musste ich meine angestaubten Mathekenntnisse mit meinen nicht vorhandenen Grafikfähigkeiten kombinieren und heraus ist das hier gekommen.
Da die Karten alle berechnet werden, sehen sie in sehr kleiner Kartengrösse nicht mehr wirklich gut aus, aber wer will schon mit Pygmäen Skat spielen ?

Code: Alles auswählen

Enumeration
	#CC_Karo
	#CC_Herz
	#CC_Pik
	#CC_Kreuz
EndEnumeration

Procedure.l CreateBezier(s.l, x1.l, y1.l, x2.l, y2.l, x3.l, y3.l, x4.l, y4.l, Color.l, F.d, a.d)
	Protected Result.l, cx.d, bx.d, ax.d, cy.d, by.d, ay.d, i.d, x.l, y.l

	cx = 3 * (x2 - x1)
	bx = 3 * (x3 - x2) - cx
	ax = x4 - x1 - cx - bx
	cy = 3 * (y2 - y1)
	by = 3 * (y3 - y2) - cy
	ay = y4 - y1 - cy - by
	While i < 1
		i + a
		x = (((ax * i + bx) * i + cx) * i + x1) * F
		y = (((ay * i + by) * i + cy) * i + y1) * F
		If i > 0
			If x >= 0 And x < s And y > 0 And y < s
				Plot(x, y, Color)
			EndIf
		EndIf
	Wend

EndProcedure

Procedure.l CreateCardColor(Card.l, p.l)
	Protected ID.l, F.d, w.l = 128

	ID = CreateSprite(#PB_Any, p, p)
	If ID
		If StartDrawing(SpriteOutput(ID)) = 0
			FreeSprite(ID)
			ID = 0
		Else
			F = p / 128
			Select Card
				Case #CC_Karo
					CreateBezier(p, 0, w / 2, w / 4, w / 8 * 3, w / 8 * 3, w / 4, w / 2, 0, $0000FF, F, 0.005)
					CreateBezier(p, 0, w / 2, w / 4, w / 8 * 5, w / 8 * 3, w / 4 * 3, w / 2, w - 1, $0000FF, F, 0.005)
					CreateBezier(p, w - 1, w / 2, w / 4 * 3, w / 8 * 3, w / 8 * 5, w / 4, w / 2, 0, $0000FF, F, 0.005)
					CreateBezier(p, w - 1, w / 2, w / 4 * 3, w / 8 * 5, w / 8 * 5, w / 4 * 3, w / 2, w - 1, $0000FF, F, 0.005)
					FillArea(p / 2, p / 2, -1, $0000FF)

				Case #CC_Herz
					CreateBezier(p, w / 2, w - 1, -0.5 * w, 2, w / 2, -0.12 * w, w / 2, w / 3 + 2, $0000FF, F, 0.001)
					CreateBezier(p, w / 2, w - 1, 1.5 * w, 2, w / 2, -0.12 * w, w / 2, w / 3 + 2, $0000FF, F, 0.001)
					FillArea(p / 2, p / 2, -1, $0000FF)

				Case #CC_Pik
					CreateBezier(p, w / 2 + 1, 0, -0.6 * w, w - 1, w / 2, w, w / 2 - w / 24, w / 3 * 2 - 10, 1, F, 0.001)
					CreateBezier(p, w / 2, 0, 1.6 * w, w - 1, w / 2, w, w / 2 + w / 24, w / 3 * 2 - 10, 1, F, 0.001)
					CreateBezier(p, w / 2 - w / 24, w / 3 * 2 - 10, w / 2 - w / 24, w / 16 * 12, w / 2 - w / 24, w / 16 * 14, w / 2 - w / 12, w - 1, 1, F, 0.001)
					CreateBezier(p, w / 2 + w / 24, w / 3 * 2 - 10, w / 2 + w / 24, w / 16 * 12, w / 2 + w / 24, w / 16 * 14, w / 2 + w / 12, w - 1, 1, F, 0.001)
					FillArea(p / 2, p / 2, -1, 1)
					FillArea(p / 2, p - 1, -1, 1)

				Case #CC_Kreuz
					CreateBezier(p, w / 3, w / 3, 0.1 * w, -0.05 * w, 0.9 * w, -0.05 * w, w / 3 * 2, w / 3, 1, F, 0.001)
					CreateBezier(p, w / 3, w / 3, -0.23 * w, 0.16 * w, 0.08 * w, w + 10, 11 * w / 26, w / 3 * 2, 1, F, 0.001)
					CreateBezier(p, w / 3 * 2, w / 3, w * 1.23, 0.16 * w, 0.92 * w, w + 10, 15 * w / 26, w / 3 * 2, 1, F, 0.001)
					CreateBezier(p, 11 * w / 26, w / 3 * 2, w / 2 - w / 14, w / 16 * 12, w / 2 - w / 24, w / 16 * 14, w / 8 * 3, w - 1, 1, F, 0.001)
					CreateBezier(p, 15 * w / 26, w / 3 * 2, w / 2 + w / 14, w / 16 * 12, w / 2 + w / 24, w / 16 * 14, w / 8 * 5, w - 1, 1, F, 0.001)
					FillArea(p / 2, p / 2, -1, 1)
					FillArea(p / 2, p - 1, -1, 1)

			EndSelect
			StopDrawing()
		EndIf
	EndIf

	ProcedureReturn ID
EndProcedure

Procedure.l CreateCards(w.l, h.l)
	Protected i.l, j.l, Result.l = #True, Color.l, N.l, FID.l, Tw.l, Th.l, Sw.l, Sh.l

	FID                 = LoadFont(#PB_Any, "Cataneo BT", w / 9, #PB_Font_Bold | #PB_Font_HighQuality)
	Dim K.l(4 * #CC_KREUZ)
	K(#CC_Karo)         = CreateCardColor(#CC_Karo,  w * 0.2)
	K(#CC_Herz)         = CreateCardColor(#CC_Herz,  w * 0.2)
	K(#CC_Pik)          = CreateCardColor(#CC_Pik,   w * 0.2)
	K(#CC_Kreuz)        = CreateCardColor(#CC_Kreuz, w * 0.2)
	K(#CC_Karo  + 4)    = CreateCardColor(#CC_Karo,  w * 0.35)
	K(#CC_Herz  + 4)    = CreateCardColor(#CC_Herz,  w * 0.35)
	K(#CC_Pik   + 4)    = CreateCardColor(#CC_Pik,   w * 0.35)
	K(#CC_Kreuz + 4)    = CreateCardColor(#CC_Kreuz, w * 0.35)
	K(#CC_Karo  + 8)    = CreateCardColor(#CC_Karo,  w * 0.6)
	K(#CC_Herz  + 8)    = CreateCardColor(#CC_Herz,  w * 0.6)
	K(#CC_Pik   + 8)    = CreateCardColor(#CC_Pik,   w * 0.6)
	K(#CC_Kreuz + 8)    = CreateCardColor(#CC_Kreuz, w * 0.6)
	Dim C.l(#CC_KREUZ)
	C(#CC_Karo)   = $0000FF
	C(#CC_Herz)   = $0000FF
	C(#CC_Pik)    = 0
	C(#CC_Kreuz)  = 0
	Dim T.s(13)
	For i = 0 To 12
		If i < 8
			T(i) = Str(i + 2)
		ElseIf i = 8
			T(i) = "J"
		ElseIf i = 9
			T(i) = "Q"
		ElseIf i = 10
			T(i) = "K"
		ElseIf i = 11
			T(i) = "10"
		ElseIf i = 12
			T(i) = "A"
		EndIf
	Next i
	Sw = SpriteWidth(K(0))
	Sh = SpriteHeight(K(0))

	For i = 0 To 52
		If CreateSprite(i, w, h) = 0
			Result = #False
			Break
		EndIf
		If StartDrawing(SpriteOutput(i))
			FillArea(0, 0, -1, $FF80FF)
			Circle(5, 5, 5, 0)
			Circle(5, 5, 4, $FFFFFF)
			Circle(5, h - 5, 5, 0)
			Circle(5, h - 5, 4, $FFFFFF)
			Circle(w - 5, 5, 5, 0)
			Circle(w - 5, 5, 4, $FFFFFF)
			Circle(w - 5, h - 5, 5, 0)
			Circle(w - 5, h - 5, 4, $FFFFFF)
			Box(6, 0, 5, 10, $FFFFFF)
			Box(0, 6, 10, 5, $FFFFFF)
			;
			Box(w - 11, 0, 5, 10, $FFFFFF)
			Box(w - 11, 6, 10, 5, $FFFFFF)
			;
			Box(6, h - 11, 5, 10, $FFFFFF)
			Box(0, h - 11, 10, 5, $FFFFFF)
; 			;
			Box(w - 11, h - 11, 5, 10, $FFFFFF)
			Box(w - 11, h - 11, 10, 5, $FFFFFF)
			LineXY(0, 5, 0, h - 5, 0)
			LineXY(w - 1, 5, w - 1, h - 5, 0)
			LineXY(5, 0, w - 5, 0, 0)
			LineXY(5, h - 1, w - 5, h - 1, 0)
			FillArea(w / 2, h / 2, -1, $FFFFFF)
			DrawingFont(FontID(FID))
			If i = 0
				DrawingMode(#PB_2DDrawing_Outlined)
				A     = 5
				B     = 5
				Color = 0
				For j = 1 To 8
					Box(A, B, w - 2 * A, h - 2 * B, RGB(Color, 20, $FF))
					A + w / 16
					B + h / 16
					Color + $18
				Next j
				
				StopDrawing()
				Color = 0
			Else

				; 				G\Cards[i]\ID    = i
				; 				G\Cards[i]\Color = Color
				; 				G\Cards[i]\Num   = N
				Tw = TextWidth(T(N))
				Th = TextHeight(T(N))

				Select N
					Case 0
						;2er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, 11)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h - Sh - 11)
					Case 1
						;3er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, 11)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h - Sh - 11)
					Case 2
						;4er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, 11)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, 11)
						DisplayTransparentSprite(K(Color), 6 + Tw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h - 11 - Sh)
					Case 3
						;5er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, 11)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, 11)
						DisplayTransparentSprite(K(Color), 6 + Tw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h / 2 - Sh / 2)
					Case 4
						;6er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, 11)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, 11)
						DisplayTransparentSprite(K(Color), 6 + Tw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 2 - Sh / 2)
					Case 5
						;7er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, 11)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, 11)
						DisplayTransparentSprite(K(Color), 6 + Tw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, (h / 2 - 11 + Sh / 2) / 2 + 11 - Sh / 2)
					Case 6
						;8er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, 11)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, 11)
						DisplayTransparentSprite(K(Color), 6 + Tw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h - 11 - Sh)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, (h / 2 - 11 + Sh / 2) / 2 + 11 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, (h - 11 - Sh / 2 - h / 2) / 2 + h / 2 - Sh / 2)
					Case 7
						;9er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 - Sh /2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 3 - Sh / 2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 4 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 - Sh /2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 3 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 4 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h / 2 - Sh / 2)
					Case 8
						;Jungs
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						DrawingMode(#PB_2DDrawing_Outlined)
						Box(10 + Tw, 10, w - 20 - Tw * 2, h - 20)
						DrawingMode(#PB_2DDrawing_Default)
						Box(11 + Tw, 11, w - 22 - Tw * 2, h - 22, $B0B0B0)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color + 4), w - 11 - Tw - SpriteWidth(K(Color + 4)), 11)
						DisplayTransparentSprite(K(Color + 4), 11 + Tw, h - 11 - SpriteHeight(K(Color + 4)))
					Case 9
						;Mädels
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						DrawingMode(#PB_2DDrawing_Outlined)
						Box(10 + Tw, 10, w - 20 - Tw * 2, h - 20)
						DrawingMode(#PB_2DDrawing_Default)
						Box(11 + Tw, 11, w - 22 - Tw * 2, h - 22, $B0B0B0)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color + 4), w - 11 - Tw - SpriteWidth(K(Color + 4)), 11)
						DisplayTransparentSprite(K(Color + 4), 11 + Tw, h - 11 - SpriteHeight(K(Color + 4)))
					Case 10
						;Wichtigtuer
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						DrawingMode(#PB_2DDrawing_Outlined)
						Box(10 + Tw, 10, w - 20 - Tw * 2, h - 20)
						DrawingMode(#PB_2DDrawing_Default)
						Box(11 + Tw, 11, w - 22 - Tw * 2, h - 22, $B0B0B0)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color + 4), w - 11 - Tw - SpriteWidth(K(Color + 4)), 11)
						DisplayTransparentSprite(K(Color + 4), 11 + Tw, h - 11 - SpriteHeight(K(Color + 4)))
					Case 11
						;10er
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 - Sh /2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 3 - Sh / 2)
						DisplayTransparentSprite(K(Color), 6 + Tw, h / 5 * 4 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 - Sh /2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 2 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 3 - Sh / 2)
						DisplayTransparentSprite(K(Color), w - 7 - Tw - Sw, h / 5 * 4 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h / 5 + h / 10 - Sh / 2)
						DisplayTransparentSprite(K(Color), w / 2 - Sw / 2, h / 5 * 3 + h / 10 - Sh / 2)
					Case 12
						;Asse
						DrawText(5 , 5, T(N), C(Color), $FFFFFF)
						DrawText(w - 5 - Tw , h - 5 - Th, T(N), C(Color), $FFFFFF)
						StopDrawing()
						UseBuffer(i)
						DisplayTransparentSprite(K(Color + 8), w / 2 - SpriteWidth(K(Color + 8)) / 2, h / 2 - SpriteHeight(K(Color + 8)) /2)
					Default
						;Hä ? Wie komm ich denn hierhin ?
						StopDrawing()
						Break

				EndSelect
				Color = (Color + 1) & $03
				If Color = 0
					N + 1
				EndIf
				UseBuffer(#PB_Default)
			EndIf
			TransparentSpriteColor(i, $FF80FF)
		EndIf
	Next i
	For i = 0 To 11
		FreeSprite(K(i))
	Next i
	FreeFont(FID)

	ProcedureReturn Result
EndProcedure

;-Example
Define.l A, B, S, M, i
Define.f X, Y
Define.s Text
InitSprite() : InitKeyboard()
OpenWindowedScreen(OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Test", #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget), 0, 0, 640, 480, 0, 0, 0)
CreateCards(96, 120)
A = 1
S = 0
M = WindowWidth(0) / 2
Text = "Use UP / DOWN to change seen cards. Resize Screen to recreate cards"
Repeat
	Repeat
		Select WindowEvent()
			Case #WM_CLOSE
				Break 2
			Case #WM_SIZE
				S = 1
				X = (WindowWidth(0) / 640) * 96
				Y = (WindowWidth(0) / 640) * 120
				M = WindowWidth(0) / 2
			Case 0
				If S
					If OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)
						CreateCards(X, Y)
						B = M - SpriteWidth(0) * 2 - 15
					EndIf
					S = 0
				EndIf
				Delay(5)
				Break
		EndSelect
	ForEver
	If ExamineKeyboard()
		If KeyboardReleased(#PB_Key_Down)
			A + 8
			If A > 45
				A = 45
			EndIf
		ElseIf KeyboardReleased(#PB_Key_Up)
			A - 8
			If A < 1
				A = 1
			EndIf
		EndIf
	EndIf
	ClearScreen($8F8F8F)
	DisplayTransparentSprite(0, M - SpriteWidth(0) / 2, 20)
	For i = 0 To 3
		DisplayTransparentSprite(i + A, B + (i) * (SpriteWidth(i + A) + 10), 30 + SpriteHeight(i + A))
		DisplayTransparentSprite(i + 4 + A, B + (i) * (SpriteWidth(i + 4 + A) + 10), 40 + 2 * SpriteHeight(i + 4 + A))
	Next i
	If StartDrawing(ScreenOutput())
		DrawText(WindowWidth(0) - TextWidth(Text), WindowHeight(0) - TextHeight(Text), Text, #White, $8F8F8F)
		StopDrawing()
	EndIf
	FlipBuffers()
ForEver

Verfasst: 18.01.2008 01:23
von #NULL
für hardcoded sieht's ziemlich gut aus :allright:

Verfasst: 03.02.2008 13:46
von Hoto
Wirklich nicht schlecht, nur die Reihenfolge in der Demo ist etwas merkwürdig: 8 9 B D K 10 A ? ;)

Verfasst: 03.02.2008 22:24
von HeX0R
Das ist die Reihenfolge beim 20ab. Hatte keine Lust das hierfür noch zu ändern, wird ja jeder selbst hinkriegen.

Verfasst: 04.02.2008 02:43
von Hoto
Aso, kenne nicht alle Kartenspiele, ist auf jeden Fall eine ungewöhnliche Reihenfolge.

Verfasst: 04.02.2008 09:21
von hardfalcon
Zumindest unter Windows dürfte der Code hier wesentlich einfacher zu handhaben sein: :wink:
http://purearea.net/pb/CodeArchiv/Windo ... g_Cards.pb

Verfasst: 04.02.2008 14:12
von KeyKon
Aber die Karten sind beim resizen pixelig...

Verfasst: 04.02.2008 14:54
von hardfalcon
In der aktuellen Fassung sind sie das auch bei Hexors Code. Allerdings könnte man bei Hexors Code sehr einfach Antialasing implementieren (einfach die Karten mit der doppelten Größe rendern, und dann das Image wieder auf die gewünschte Größe verkleinern mit ResizeImage()).

Verfasst: 04.02.2008 15:14
von DarkDragon
Das Kreuzsymbol sieht komisch aus. Eher wie ein Baum als ein Kreuz. Der obere Tropfen muss mehr in die Länge nach oben gezogen werden.

Verfasst: 04.02.2008 21:10
von HeX0R
Na denn, hau rein.