# Untitled

unknown
python
2 years ago
3.0 kB
2
Indexable
Never
```import random

def create_deck():
""" Takes no parameter
Creates and returns a 2D-list """

# an intially empty deck
deck = []
suits = ["RED", "BLK"]
values = []

# creates a list of all face values
for x in range(2,10):
values.append(x)

# creates cards [s,f] and inserting them to the deck
for s in suits:
for f in values:
deck.append([s, f])
return deck

def shuffle(deck):
"""Takes a 2-D list
Returns a shuffled 2-D list"""

# copies the deck to a new list, so the original deck remains same
shdeck = deck[:]
random.shuffle(shdeck)
return shdeck

def deal(deck):
board = []
for row in range(3):
board.append([])
for col in range(3):
board[row].append(deck.pop(0))

return board

def show_board(board):
for row in board:
for card in row:
print(f"| {card[0]}, {card[1]} ", end = "")
print("|")

# def horizontal(board):
#   score = 0
#   for i in range(len(board)):
#     if board[i][0][0]== board[i][1][0]== board[i][2][0]:
#       score += 10
#       print(f"Congrats! You've got a Simple Set on the board, Score: {score}")
#     else:
#       print(f"Sorry, no match on the board. Score: {score}")

#   return board

# def vertical(board):
#   score = 0
#   for i in range(len(board)):
#     if board[0][i][0]== board[1][i] [0]== board[2][i][0]:
#       score += 10
#       print(f"Congrats! You've got a Simple Set on the board, Score: {score}")
#     else:
#       print(f"Sorry, no match on the board. Score: {score}")

#   return board

def check_triplet_for_set(triplet):
return triplet[0][0] == triplet[1][0] == triplet[2][0]

def check_board_for_row(board):
for row in board:
if check_triplet_for_set(row):
return True
return False

def check_board_for_column(board):

for column in range(len(board)):
coloumn_list = board[0][i], board[1][i], board[2][i]
if check_triplet_for_set(coloumn_list):
return True
return False

def check_board_for_diagonal(board):

diagnoal_list_1 = board[0][0], board[1][1], board[2][2]
diagnoal_list_2 =  board[0][2], board[1][1], board[2][0]

return check_triplet_for_set(diagnoal_list_1) or check_triplet_for_set(diagnoal_list_2)

def check_board_for_sets(board):

if check_board_for_column(board) or check_board_for_row(board) or check_board_for_diagonal(board):
return True

# main() function that calls all other functions in the appropriate order to run the game
def main():
print("Welcome to the game!")

#create and print the deck of cards
deck = create_deck()

# print(f"\nDeck: {deck}")
#create and print the shuffled deck of cards
shdeck = shuffle(deck)

# print(f"\nShuffled deck: {shdeck}")

testOutput_0 = deal(shdeck)
# print(f"\n{testOutput_0}")
# print()
show_board(testOutput_0)

if check_board_for_sets(testOutput_0):
score += 10
print("You got a set or w/e")

# main guard
if __name__ == "__main__":
main()

```