Spielkarten

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Spielkarten

Beitrag 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
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

für hardcoded sieht's ziemlich gut aus :allright:
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Beitrag von Hoto »

Wirklich nicht schlecht, nur die Reihenfolge in der Demo ist etwas merkwürdig: 8 9 B D K 10 A ? ;)
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Das ist die Reihenfolge beim 20ab. Hatte keine Lust das hierfür noch zu ändern, wird ja jeder selbst hinkriegen.
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Beitrag von Hoto »

Aso, kenne nicht alle Kartenspiele, ist auf jeden Fall eine ungewöhnliche Reihenfolge.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Aber die Karten sind beim resizen pixelig...
(\/) (°,,,°) (\/)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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()).
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Na denn, hau rein.
Antworten