Add Shuffle and Deal
parent
6093d19d75
commit
679b205d02
5
cards.py
5
cards.py
|
@ -177,6 +177,7 @@ class Deck():
|
||||||
|
|
||||||
|
|
||||||
class PlayerDeck(Deck):
|
class PlayerDeck(Deck):
|
||||||
|
# TODO: Maybe merge with Regular Deck
|
||||||
def get_selected_card(self, pos):
|
def get_selected_card(self, pos):
|
||||||
# TODO: convert pos to card num, deselect if no card is clicked or out of range
|
# TODO: convert pos to card num, deselect if no card is clicked or out of range
|
||||||
|
|
||||||
|
@ -197,7 +198,9 @@ def prepare_playing_cards(width, height):
|
||||||
|
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
for j in range(13):
|
for j in range(13):
|
||||||
all_cards.append(Card(0, 0, width, height, i*100 + j+1, image_data=card_img))
|
all_cards.append(Card(0, 0, width, height, (i+1)*100 + j+1, image_data=card_img))
|
||||||
|
|
||||||
|
return all_cards
|
||||||
|
|
||||||
class test_screen(view.PygView):
|
class test_screen(view.PygView):
|
||||||
|
|
||||||
|
|
3
main.py
3
main.py
|
@ -37,6 +37,9 @@ class GameScreen(view.PygView):
|
||||||
if event.key == pygame.K_p:
|
if event.key == pygame.K_p:
|
||||||
print('add cards')
|
print('add cards')
|
||||||
pass
|
pass
|
||||||
|
if event.key == pygame.K_l:
|
||||||
|
self.table.start_game()
|
||||||
|
pass
|
||||||
|
|
||||||
milliseconds = self.clock.tick(self.fps)
|
milliseconds = self.clock.tick(self.fps)
|
||||||
#self.playtime += milliseconds / 1000.0
|
#self.playtime += milliseconds / 1000.0
|
||||||
|
|
27
players.py
27
players.py
|
@ -1,10 +1,13 @@
|
||||||
import pygame
|
import pygame
|
||||||
import cards
|
import cards
|
||||||
import view
|
import view
|
||||||
|
import random
|
||||||
from signalslot import Signal
|
from signalslot import Signal
|
||||||
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
NUM_OF_PLAYERS = 4
|
||||||
|
STARTING_HAND = 13
|
||||||
|
|
||||||
class GameState(Enum):
|
class GameState(Enum):
|
||||||
DEALING = 0
|
DEALING = 0
|
||||||
|
@ -67,10 +70,10 @@ class Table:
|
||||||
self.background.fill(clear_colour)
|
self.background.fill(clear_colour)
|
||||||
self.background = self.background.convert()
|
self.background = self.background.convert()
|
||||||
|
|
||||||
self.discard_deck = [] # This is not a deck as it will never be drawn
|
self.discard_deck = cards.prepare_playing_cards(50, 50) # This is not a deck as it will never be drawn
|
||||||
|
|
||||||
w_deck = min(self.height, self.width) * 0.15
|
w_deck = min(self.height, self.width) * 0.15
|
||||||
l_deck = min(self.width, self.height) * 0.6
|
l_deck = min(self.width, self.height) * 0.7
|
||||||
|
|
||||||
playerx = ((self.width - l_deck)//2,
|
playerx = ((self.width - l_deck)//2,
|
||||||
0,
|
0,
|
||||||
|
@ -84,11 +87,11 @@ class Table:
|
||||||
spacing = 20
|
spacing = 20
|
||||||
|
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
if i == 0:
|
#if i == 0:
|
||||||
self.players.append(MainPlayer(playerx[i], playery[i],
|
# self.players.append(MainPlayer(playerx[i], playery[i],
|
||||||
l_deck, w_deck,
|
# l_deck, w_deck,
|
||||||
spacing))
|
# spacing))
|
||||||
else:
|
#else:
|
||||||
vert = i % 2 == 1
|
vert = i % 2 == 1
|
||||||
self.players.append(Player(playerx[i], playery[i],
|
self.players.append(Player(playerx[i], playery[i],
|
||||||
l_deck, w_deck,
|
l_deck, w_deck,
|
||||||
|
@ -133,9 +136,15 @@ class Table:
|
||||||
return self.x, self.y
|
return self.x, self.y
|
||||||
|
|
||||||
def start_game(self):
|
def start_game(self):
|
||||||
while(True):
|
#while(True):
|
||||||
if self.game_state == GameState.DEALING:
|
if self.game_state == GameState.DEALING:
|
||||||
pass
|
if self.discard_deck:
|
||||||
|
random.shuffle(self.discard_deck)
|
||||||
|
for i in range(NUM_OF_PLAYERS):
|
||||||
|
for j in range(STARTING_HAND):
|
||||||
|
self.players[i].add_card(self.discard_deck.pop())
|
||||||
|
self.update_table.emit()
|
||||||
|
|
||||||
elif self.game_state == GameState.POINT_CHECK:
|
elif self.game_state == GameState.POINT_CHECK:
|
||||||
pass
|
pass
|
||||||
elif self.game_state == GameState.BIDDING:
|
elif self.game_state == GameState.BIDDING:
|
||||||
|
|
Loading…
Reference in New Issue