Wednesday, May 15, 2019

How Can We Do My Python Assignment for You?


My very first assignment at University was to program a game of 21, although it was a cut down version. The assignment was in Pascal, so I have converted the code into Python to demonstrate a simple assignment. The basic rules of BlackJack (21, Pontoon) are that you have a deck of cards, and face cards count as 10 (Jack, Queen, King), and the Ace can count as 1 or 11. You see your cards, but not the dealers (you see one of the dealers cards) and you decide whether to stop where you are or to draw a new card. Once you have finished, the dealer takes their turn, and will draw if the value of the hand is less than 17. I’ve not included comments in the code, but I would do if it was a real assignment.
# Blackjack (21 or Pontoon)

import random

class Card:

    deck = []

    def __init__(self, rank, suit):
        if rank == "1":
            rank = "10"
        self.rank = rank
        self.suit = suit
        if rank in "JQK":
            self.val = 10
        elif rank == "A":
            self.val = 11
        else:
            self.val = int(rank)

    def __str__(self):
        return "%s%s" % (self.rank, self.suit)

    def __repr__(self):
        return str(self)

class Deck:

    def __init__(self):
        self.__deck = [Card(rank, suit) for suit in "CDHS" for rank in "234567891JQKA"]
        self.shuffle()

    def draw(self):
        card = self.__deck[self.__index]
        self.__index += 1
        return card

    def shuffle(self):
        random.shuffle(self.__deck)
        self.__index = 0

    def show_hand(self, hand):
        return "%s (%d)" % (",".join(str(card) for card in hand), self.score(hand))

    def score(self, hand):
        total = 0
        aces = 0
        for card in hand:
            total += card.val
            if card.val == 11:
                aces += 1
        while total > 21 and aces:
            total -= 10
            aces -= 1
        return total


def main():
    pot = 20
    while pot > 0:
        bet = int(input("You have %d available, how much do you want to bet? (0 to end) " % pot))
        if not bet:
            break
        if bet < 1:
            bet = 1
        if bet > pot:
            bet = pot
        deck = Deck()
        player = [deck.draw(), deck.draw()]
        dealer = [deck.draw(), deck.draw()]
        pot -= bet
        while True:
            print("You have:", deck.show_hand(player))
            print("Dealer shows:", dealer[0])
            move = input("(s)tick, (d)raw: ")
            if move in "sS":
                break
            if move in "dD":
                player.append(deck.draw())
            player_score = deck.score(player)
            if player_score > 21:
                break

        player_score = deck.score(player)
        if player_score > 21:
            print("Player bust")
            continue

        dealer_score = deck.score(dealer)
        print("Dealer has:", deck.show_hand(dealer))
        while dealer_score < 17:
            dealer.append(deck.draw())
            dealer_score = deck.score(dealer)
            print("Dealer has:", deck.show_hand(dealer))

        if dealer_score > 21:
            print("Dealer bust")
            pot += bet * 2
        elif player_score == dealer_score:
            print("Draw")
            pot += bet
        elif dealer_score > player_score:
            print("Dealer wins")
        else:
            print("You win")
            pot += bet * 2

    print("\n\nYou ended up with $%d" % pot)


main()


We can work on assignments far more complex than this, and in multiple programming languages. I’ve used Python to write GUI programs, web servers, games (using Pygame) and even a simple compiler.

You can rely on Programming Assignment Helper if you need someone to do my Python homework.

0 comments:

Post a Comment