Advertisement
massacring

Card

Jun 21st, 2025 (edited)
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.18 KB | None | 0 0
  1. local Images = require("Images")
  2.  
  3. local Card = {}
  4. Card.__index = Card
  5. Card.suits = {
  6.     "spade",
  7.     "heart",
  8.     "club",
  9.     "diamond"
  10. }
  11. Card.numbers = {
  12.     Images.num1,
  13.     Images.num2,
  14.     Images.num3,
  15.     Images.num4,
  16.     Images.num5,
  17.     Images.num6,
  18.     Images.num7,
  19.     Images.num8,
  20.     Images.num9
  21. }
  22. Card.courts = {
  23.     Images.jack,
  24.     Images.queen,
  25.     Images.king,
  26.     Images.ace,
  27. }
  28.  
  29. function Card.new(value, suit)
  30.     local card = setmetatable({}, Card)
  31.     if value == 14 then
  32.         card.isJoker = true
  33.         return card
  34.     elseif value < 10 and value > 0 then
  35.         card.num = Card.numbers[value]
  36.         card.isCourt = true
  37.         card.value = value
  38.     elseif value < 13 and value > 9 then
  39.         card.num = Card.courts[value-9]
  40.         card.isNumber = true
  41.         card.value = 10
  42.     else
  43.         card.num = Images.ace
  44.         card.isAce = true
  45.         card.value = 11
  46.     end
  47.     card.suit = suit
  48.     return card
  49. end
  50.  
  51. function Card.newRandom(includeJoker)
  52.     local card = setmetatable({}, Card)
  53.     local joker = false
  54.     if includeJoker then
  55.         joker = math.random(1,27) == 1
  56.     end
  57.     if joker then
  58.         card.isJoker = true
  59.         return card
  60.     end
  61.     card.suit = Card.suits[math.random(1,4)]
  62.     local value = math.random(2,13)
  63.     if value < 10 then
  64.         card.num = Card.numbers[value]
  65.         card.isNumber = true
  66.         card.value = value
  67.     elseif value < 13 then
  68.         card.num = Card.courts[value-9]
  69.         card.isCourt = true
  70.         card.value = 10
  71.     else
  72.         card.num = Images.ace
  73.         card.isAce = true
  74.         card.value = 11
  75.     end
  76.     return card
  77. end
  78.  
  79. function Card.drawWin(window, x, y)
  80.     Images:drawWin(window, x, y)
  81. end
  82.  
  83. function Card.drawBust(window, x, y)
  84.     Images:drawBust(window, x, y)
  85. end
  86.  
  87. function Card.drawDraw(window, x, y)
  88.     Images:drawDraw(window, x, y)
  89. end
  90.  
  91. function Card:draw(window, x, y)
  92.     if self.isJoker then
  93.         Images:drawJoker(window, x,y)
  94.         return
  95.     end
  96.     Images:drawCard(window, x,y, self.num, self.suit)
  97. end
  98.  
  99. function Card:drawFaceDown(window, x, y)
  100.     Images:drawFaceDown(window, x, y)
  101. end
  102.  
  103. return Card
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement