From 7a2ac64e458b738f3abcbaa5cf34312436630865 Mon Sep 17 00:00:00 2001 From: ravik9 Date: Tue, 1 Jan 2019 15:24:54 -0500 Subject: [PATCH 1/2] Initial Commit for Tic Toe --- Tic_Tac_Toe.py | 107 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 Tic_Tac_Toe.py diff --git a/Tic_Tac_Toe.py b/Tic_Tac_Toe.py new file mode 100644 index 0000000..37beb15 --- /dev/null +++ b/Tic_Tac_Toe.py @@ -0,0 +1,107 @@ +#first create a list of 10 spaces and show +print('GET ready to Play TIC-TAC-TOE Dual player') +value = ['']*10 +value[0] = 1 + +class Player: + def __init__(self, marker, wins): + self.marker = marker + self.wins = wins + def win(self): + self.wins += 1 + +def display(): + print('Tic-Tac-Toe') + print(value[1] + ' | ' + value[2] + ' | ' + value[3] ) + print('------') + print(value[4] + ' | ' + value[5] + ' | ' + value[6] ) + print('------') + print(value[7] + ' | ' + value[8] + ' | ' + value[9] ) + +marker_validation = True +winner_validation = True +Playing = True +while marker_validation: + marker = input('Player1 please choose X or O to play') + if marker == 'X' or 'x' or 'o' or 'O': + if marker == 'X' or 'x': + Player1 = Player('X', 0) + Player2 = Player('O', 0) + else: + Player1 = Player('O', 0) + Player2 = Player('X', 0) + marker_validation = False + else: + print('Please enter a valid marker "X" or "O" to continue') +#check for win after every entry +def win_check(play): + if ((value[1] == value[2] == value[3] == play.marker) or (value[4] == value[5] == value[6] == play.marker) or (value[7] == value[8] == value[9] == play.marker)): + return True + elif ((value[1] == value[4] == value[7] == play.marker) or (value[2] == value[5] == value[8] == play.marker) or (value[3] == value[6] == value[9] == play.marker)): + play.win() + return True + elif ((value[1] == value[5] == value[9] == play.marker) or (value[3] == value[5] == value[7] == play.marker)): + play.win() + return True + else: + return False + +def ContPlaying(): + while True: + cont = input('Do u want to continue playing [y]/n') + if cont == 'y' or 'y' or 'n' or 'N': + if cont == 'Y' or 'y': + value[1:10] = ['']*9 + print('Scores of Player1 is ' + str(Player1.wins) + ' and Player2 is '+ str(Player2.wins)) + break + else: + print('Final scores of Player1 is ' + str(Player1.wins) + ' and Player2 is '+ str(Player2.wins)) + Playing = False + else: + print('Enter a valid option y/n') +#take inputs from the players till some one wins or draws +while Playing: + display() + if '' in value: + position_validation1 = True + while position_validation1: + position = int(input('Player1 please choose a value from 1 to 9 to play')) + if position in range(1,10): + #write some logic + if value[position] == '': + value[position] = Player1.marker + position_validation1 = False + display() + win_c = win_check(Player1) + if win_c: + print('Player1 has won the game') + ContPlaying() + else: + print('Please choose a position which is free') + else: + print('PLease enter only values from 1 to 9') + position_validation2 = True + while position_validation2: + position = int(input('Player2 please choose a value from 1 to 9 to play')) + if position in range(1,10): + #write some logic + if value[position] == '': + value[position] = Player2.marker + position_validation2 = False + win_c = win_check(Player2) + if win_c: + print('Player2 has won the game') + ContPlaying() + display() + else: + print('Please choose a position which is free') + else: + print('PLease enter only values from 1 to 9') + else: + print('Match draws') + ContPlaying() + + + + + From 7d73d5b40c78a8602c55add6f688c2b9ef79474f Mon Sep 17 00:00:00 2001 From: ravik9 Date: Tue, 8 Jan 2019 16:17:36 -0500 Subject: [PATCH 2/2] Added Blackjack game and added validations in Tic-Tac-Toe --- .idea/vcs.xml | 6 ++ Blackjack.py | 220 +++++++++++++++++++++++++++++++++++++++++++++++++ Tic_Tac_Toe.py | 195 +++++++++++++++++++++++-------------------- 3 files changed, 330 insertions(+), 91 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 Blackjack.py diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Blackjack.py b/Blackjack.py new file mode 100644 index 0000000..59fb18c --- /dev/null +++ b/Blackjack.py @@ -0,0 +1,220 @@ +import random + +suits = ('Hearts', 'Spades', 'Diamonds', 'Clubs') +ranks = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace') +values = {'Two': 2, 'Three': 3, 'Four': 4, 'Five': 5, 'Six': 6, 'Seven': 7, 'Eight': 8, 'Nine': 9, 'Ten': 10, + 'Jack': 10, + 'Queen': 10, 'King': 10, 'Ace': 11} + +playing = True + + +class Card: + + def __init__(self, suit, rank): + self.suit = suit + self.rank = rank + + def __str__(self): + return self.rank + ' of ' + self.suit + +class Deck: + + def __init__(self): + self.deck = [] # start with an empty list + for suit in suits: + for rank in ranks: + self.deck.append(Card(suit, rank)) # build Card objects and add them to the list + + def __str__(self): + deck_comp = '' # start with an empty string + for card in self.deck: + deck_comp += '\n ' + card.__str__() # add each Card object's print string + return 'The deck has:' + deck_comp + + def shuffle(self): + random.shuffle(self.deck) + + def deal(self): + single_card = self.deck.pop() + return single_card + +class Hand: + + def __init__(self): + self.cards = [] # start with an empty list as we did in the Deck class + self.value = 0 # start with zero value + self.aces = 0 # add an attribute to keep track of aces + + def add_card(self, card): + self.cards.append(card) + self.value += values[card.rank] + if card.rank == 'Ace': + self.aces += 1 # add to self.aces + + def adjust_for_ace(self): + while self.value > 21 and self.aces: + self.value -= 10 + self.aces -= 1 + + +class Chips: + + def __init__(self): + self.total = 100 # This can be set to a default value or supplied by a user input + self.bet = 0 + + def win_bet(self): + self.total += self.bet + + def lose_bet(self): + self.total -= self.bet + + +def take_bet(chips): + while True: + try: + chips.bet = int(input('How many chips would you like to bet? ')) + except ValueError: + print('Sorry, a bet must be an integer!') + else: + if chips.bet > chips.total: + print("Sorry, your bet can't exceed", chips.total) + else: + break + + +def hit(deck, hand): + hand.add_card(deck.deal()) + hand.adjust_for_ace() + + +def hit_or_stand(deck, hand): + global playing # to control an upcoming while loop + + while True: + x = input("Would you like to Hit or Stand? Enter 'h' or 's' ") + + if x[0].lower() == 'h': + hit(deck, hand) # hit() function defined above + + elif x[0].lower() == 's': + print("Player stands. Dealer is playing.") + playing = False + + else: + print("Sorry, please try again.") + continue + break + + +def show_some(player, dealer): + print("\nDealer's Hand:") + print("