Compare commits

..

2 Commits

13 changed files with 193 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
{
"diagnostics.globals": [
"currentScreen",
"drawMenu"
"drawMenu",
"spielerHand"
]
}

View File

@@ -1,38 +1,42 @@
local love = require "love"
require "karten"
spielerHand = {}
dealerHand = {}
deck = {}
DealerHand = {}
Deck = {}
function loadBlackjack()
deck = createDeck()
shuffleDeck(deck)
dealInitialCards()
function LoadBlackjack()
Deck = Karten:createDeck()
Karten:shuffleDeck(Deck)
DealInitialCards()
Cards = love.graphics.newImage("/cards_asset_pack/CuteCards.png")
end
function updateBlackjack(dt)
function UpdateBlackjack(dt)
-- Hier können zukünftige Updates für Blackjack hinzugefügt werden
end
function drawBlackjack()
love.graphics.print("Spieler Hand: " .. handValue(spielerHand), 50, 50)
love.graphics.print("Dealer Hand: " .. handValue(dealerHand), 50, 100)
love.graphics.print("Drücke 'H' für Hit oder 'S' für Stand", 50, 150)
function DrawBlackjack()
print(love.graphics:getWidth())
love.graphics.draw(Cards, love.graphics.getWidth() / 2 - 90 , 50, 0, 0.2)
-- love.graphics.print("Spieler Hand: " .. Karten:handValue(spielerHand), 50, 50)
-- love.graphics.print("Dealer Hand: " .. Karten:handValue(DealerHand), 50, 100)
-- love.graphics.print("Drücke 'H' für Hit oder 'S' für Stand", 50, 150)
end
function handleBlackjackInput(key)
function HandleBlackjackInput(key)
if key == 'h' then
hit(spielerHand)
if handValue(spielerHand) > 21 then
Karten:hit(spielerHand)
if Karten:handValue(spielerHand) > 21 then
love.graphics.print("Spieler hat verloren!", 50, 200)
end
elseif key == 's' then
while handValue(dealerHand) < 17 do
hit(dealerHand)
while Karten:handValue(DealerHand) < 17 do
Karten:hit(DealerHand)
end
if handValue(dealerHand) > 21 then
if Karten:handValue(DealerHand) > 21 then
love.graphics.print("Dealer hat verloren!", 50, 200)
elseif handValue(spielerHand) > handValue(dealerHand) then
elseif Karten:handValue(spielerHand) > Karten:handValue(DealerHand) then
love.graphics.print("Spieler gewinnt!", 50, 200)
else
love.graphics.print("Dealer gewinnt!", 50, 200)
@@ -40,10 +44,10 @@ function handleBlackjackInput(key)
end
end
function dealInitialCards()
function DealInitialCards()
for i = 1, 2 do
hit(spielerHand)
hit(dealerHand)
Karten:hit(spielerHand)
Karten:hit(DealerHand)
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://508ltkqucq7a"
path="res://.godot/imported/CuteCards.png-a691dafeb8615d7c1003502272afbc35.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/CuteCards - asset pack/CuteCards.png"
dest_files=["res://.godot/imported/CuteCards.png-a691dafeb8615d7c1003502272afbc35.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqm1cu22dfech"
path="res://.godot/imported/CuteCards_outline.png-37c08f2c7da86fe4b37b1043f010f835.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/CuteCards - asset pack/CuteCards_outline.png"
dest_files=["res://.godot/imported/CuteCards_outline.png-37c08f2c7da86fe4b37b1043f010f835.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://buyp5s1dgho3y"
path="res://.godot/imported/PokerChips.png-48cfeaecb5166f271837eaba1eefc640.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/CuteCards - asset pack/PokerChips.png"
dest_files=["res://.godot/imported/PokerChips.png-48cfeaecb5166f271837eaba1eefc640.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,34 @@
--- THANK U -----------------
Thank you for downloading this Cute Card Set :) hope you like it and find it usefull
This project it's idependent. But was originaly made as part of a Super Pixel Card Set, comming in the future,
follow me on itch.io to see the updates. @danimaccari -> https://dani-maccari.itch.io/
--- HOW TO USE --------------
The pack contains 60 diferent cards 15 in each row
Each Card is 100x144 pixels
Each row contains one color
Clubs
Diamonds
Spades
Hearts
Contains two joker designs, two fade down cards and two blank cards
There are 15 POKER CHIPS each one 76x76 pixels
--- PIXEL ASSETS -----------
Each Card is 25x36 pixels
Each Chip is 19x19 pixels
--- LICENSE ----------------
This pack is free for personal or comercial use as long as it's atributed to DANI MACCARI.
You are free to edit the sprites as much as you want.
You may not repackage, redistribute or resell the assets, no matter how much they are modified. - This includes NFTs.

View File

@@ -1,3 +1,4 @@
local love = require "love"
function love.conf(t)
t.window.width = 350
end

View File

@@ -9,6 +9,7 @@
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
{

View File

@@ -1,30 +1,28 @@
karten = {}
local love = require "love"
Karten = {}
function createDeck()
function Karten:createDeck()
local deck = {}
local suits = {"Herz", "Karo", "Pik", "Kreuz"}
local suits = {"Clubs", "Diamonds", "Spades", "Hearts"}
local values = {2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11} -- 10, J, Q, K sind alle 10, A ist 11
for _, suit in ipairs(suits) do
for _, value in ipairs(values) do
table.insert(deck, {suit = suit, value = value})
end
end
TileMap = love.graphics.newImage("/cards_asset_pack/CuteCards.png")
return deck
end
function shuffleDeck(deck)
function Karten:shuffleDeck(deck)
for i = #deck, 2, -1 do
local j = love.math.random(i)
deck[i], deck[j] = deck[j], deck[i]
end
end
function hit(hand)
local card = table.remove(deck)
table.insert(hand, card)
end
function handValue(hand)
function Karten:handValue(hand)
local value = 0
local aces = 0
for _, card in ipairs(hand) do
@@ -40,5 +38,19 @@ function handValue(hand)
return value
end
return karten
function Karten:hit(x, y, hand)
if #Deck > 0 then
local card = table.remove(Deck)
table.insert(hand, card)
local suits = {["Clubs"] = 0, ["Diamonds"] = 1, ["Spades"] = 2, ["Hearts"] = 3}
local tileWidth = TileMap:getWidth() / 4
local tileHeight = TileMap:getHeight() / 13
local tileX = suits[card.suit]
local tileY = math.min(card.value - 2, 9)
love.graphics.draw(TileMap, love.graphics.newQuad(tileX * tileWidth, tileY * tileHeight, tileWidth, tileHeight, TileMap:getDimensions()), x, y)
end
end
return Karten

View File

@@ -6,11 +6,12 @@ require "blackjack"
function love.load()
love.window.setTitle("Spiele Auswahl")
currentScreen = "menu"
love.graphics.setBackgroundColor(0.30 ,0.30 ,0.46, 1)
end
function love.update(dt)
if currentScreen == "blackjack" then
updateBlackjack(dt)
UpdateBlackjack(dt)
end
end
@@ -18,7 +19,7 @@ function love.draw()
if currentScreen == "menu" then
drawMenu()
elseif currentScreen == "blackjack" then
drawBlackjack()
DrawBlackjack()
end
end
@@ -26,10 +27,10 @@ function love.keypressed(key)
if currentScreen == "menu" then
if key == '1' then
currentScreen = "blackjack"
loadBlackjack()
LoadBlackjack()
end
elseif currentScreen == "blackjack" then
handleBlackjackInput(key)
HandleBlackjackInput(key)
end
end