Jan-16-2020, 04:34 PM
Hi guys,
Homework Help
I want to put the numbers 0 - 3 around my game board to represent the row and column indexes like so:
0 1 2 3
0 * * * *
1 * * * *
2 * * * *
3 * * * *
But I’m drawing a blank. Can I get a hint as to how might be best to solve this problem please?
Code Review
I’m hoping I could get some feedback on my attempt at a game called pairs. A detailed brief for the task can be found here:pairs google doc
Anyways, thanks for taking the time to read my post
hey,
I solved homework help by modifying the display_board function to this:
Homework Help
I want to put the numbers 0 - 3 around my game board to represent the row and column indexes like so:
0 1 2 3
0 * * * *
1 * * * *
2 * * * *
3 * * * *
But I’m drawing a blank. Can I get a hint as to how might be best to solve this problem please?
Code Review
I’m hoping I could get some feedback on my attempt at a game called pairs. A detailed brief for the task can be found here:pairs google doc
Anyways, thanks for taking the time to read my post
import random import sys import time import pyautogui def cls(): pyautogui.hotkey('ctrl', 'l') def create_answer_board(cards, row=4, col=4): return [cards[table_row * col:(table_row + 1) * col] for table_row in range(0, row)] def create_concealed_board(): return [['X' for col in range(4)] for row in range(4)] def display_board(board): cards_in_row = '' for row in board: for card in row: cards_in_row += card + ' ' print(cards_in_row) cards_in_row = '' print('') def select_card(concealed_board): try: row, col = [int(x) for x in input( "Please enter the row and column number (separated by a space and in that order) for the card you want to flip over:").split()] if row > 3 or col > 3 or row < 0 or col < 0: print("Input is outside the given range.") return select_card(concealed_board) if is_hidden_card(concealed_board, row, col): return [row, col] else: print("That card has been revealed... Please try again.") return select_card(concealed_board) except ValueError: print("Please try again:") return select_card(concealed_board) def reveal_selected_card(selected_card_location, concealed_board): concealed_board[selected_card_location[0]][selected_card_location[1]] = cards[selected_card_location[0]][ selected_card_location[1]] display_board(concealed_board) def check_for_match(selected_card_location_1, selected_card_location_2, cards): card_1 = cards[selected_card_location_1[0]][selected_card_location_1[1]] card_2 = cards[selected_card_location_2[0]][selected_card_location_2[1]] return card_1 == card_2 def is_hidden_card(concealed_board, row, col): return concealed_board[row][col] == '_' def insert_X(selected_card_location_1, selected_card_location_2, concealed_board): concealed_board[selected_card_location_1[0]][selected_card_location_1[1]] = "X" concealed_board[selected_card_location_2[0]][selected_card_location_2[1]] = "X" return concealed_board def is_complete(concealed_board): it = iter(concealed_board) for first in it: break else: return True # empty case, note all([]) == True return all(x == first for x in it) cards = ["J", "J", "J", "J", "Q", "Q", "Q", "Q", "K", "K", "K", "K", "A", "A", "A", "A"] random.shuffle(cards) cards = create_answer_board(cards) concealed_board = create_concealed_board() while True: display_board(cards) # just here for testing display_board(concealed_board) selected_card_location_1 = select_card(concealed_board) reveal_selected_card(selected_card_location_1, concealed_board) selected_card_location_2 = select_card(concealed_board) reveal_selected_card(selected_card_location_2, concealed_board) if check_for_match(selected_card_location_1, selected_card_location_2, cards): print("Congrats, they matched") print("Clearing the screen in 3 seconds") time.sleep(3) concealed_board = insert_X(selected_card_location_1, selected_card_location_2, concealed_board) cls() if is_complete(concealed_board): print("Congrats you found all 8 pairs and have won the game!!!") sys.exit()
hey,
I solved homework help by modifying the display_board function to this:
def display_board(board): cards_in_row = '' number = 0 print(" 0 1 2 3") for row in board: print(number, end=' ') number += 1 for card in row: cards_in_row += card + ' ' print(cards_in_row) cards_in_row = '' print('')