Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions OneCardWar.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import itertools
import random

class Cards:
def __init__(self):
self.suits = ['Spades', 'Hearts', 'Diamonds', 'Clubs']
self.values = range(1,14)
self.RealCards = []
for Card in itertools.product(self.suits,self.values):
self.RealCards,append(Card)
def GetRandomCard(self):
RandomNumber = random.randint(0,51)
ReturnedCard = self.RealCards[RandomNumber]
return(ReturnedCard)

class Player:
def __init__(self, ID, Card):
self.name = NameofGame

class War(Game):
def __init__(self, NumberofPlayers):
self.NumberofPlayers = NumberofPlayers
self.PlayerList = []
def GameStart(self):
CarDeck = Cards()
for playerID in range(0, self.NumberofPlayers):
PlayersCard = CarDeck.GetRandomCard()
NewPlayer = Player(playerID, PlayersCard)
self.PlayerList.append(NewPlayer)
self.Winner()
def Winner(self):
WinningID = self.PlayerList[0]
for playerID in self.PlayerList:
if(playerID.PlayersCard[1] > WinningID.PlayersCard[1]):
WinningID = playerID
print("And the winner is... " + str(WinningID.playerID)
print("The winning card was... " + str(WinningID.PlayersCard[1]) + " of " + str(WinningID.PlayersCard[0])

if __name__=="__main__":
NewGame = SimpleWar(2)
NewGame.StartGame()


Binary file added __pycache__/cards.cpython-32.pyc
Binary file not shown.
Binary file added __pycache__/games.cpython-32.pyc
Binary file not shown.
38 changes: 38 additions & 0 deletions adventure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
hp = 50

print("You enter a creepy, dark, underground pathway. You look in front of you, to see two alternative pathways. Do you choose into the left pathway for the right one?")
pathway = input('> ')

if pathway == "Left" or "L":
print("Down the left pathway, you start seeing creepy hallucinations of red eyes staring at you.")
print("You see an evil witch casting a hallucenation spell on you. Do you #1. try to kill the witch or #2. get away from the witch?")

witch = input('> ')

if witch == "1":
print("You approach the witch quietly with a stake to slay it. However, the witch senses your prescence and casts a ball spell which turns you into a ball, and then she throws you into her brew. Poor you....")

elif witch == "2":
print("You try to sneak past the witch, but her hallucinations take a toll on your body, which makes you fall down in unconsiousness. You don't know what happens to you after that.")

else:
print("The witch gets bored of you,and flies away on her magic broomstick. Great Job!")

elif pathway == "Right" or "R":
print("You enter a big, wet room and a huge man-eating slug is seen approaching you. This slug also happens to be faster than a normal slug is. What do you do?")
print("#1. Try to mount it to use it to escape.")
print("#2. Trick it into charging towards you, into a wall.")
print("#3. You attempt to become friends with it.")
slug = input('> ')

if slug == "1" or "2":
print("You successfully slayed the slug, and now, you can escape.")

else:
print("Being friends with a man-eating slug? Yeah, no. It gobbles you up with one slurp and now, you're stuck in its digestive track.")

else:
print("You took too long of a descicion and you find yourself being bitten by a bunch of poisonous spiders. What an anticlimatic ending.")



216 changes: 216 additions & 0 deletions blackjack(edited).py
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
# Blackjack
# From 1 to 7 players compete against a dealer

import cards, games

class BJ_Card(cards.Card):
""" A Blackjack Card. """
ACE_VALUE = 1

@property
def value(self):
if self.is_face_up:
value = BJ_Card.RANKS.index(self.rank) + 1
if value > 10:
value = 10
else:
value = None
return value

class BJ_Deck(cards.Deck):
""" A Blackjack Deck. """
def populate(self):
for suit in BJ_Card.SUITS:
for rank in BJ_Card.RANKS:
self.cards.append(BJ_Card(rank, suit))

class BJ_Hand(cards.Hand):
""" A Blackjack Hand. """
def __init__(self, name):
super(BJ_Hand, self).__init__()
self.name = name

def __str__(self):
rep = self.name + ":\t" + super(BJ_Hand, self).__str__()
if self.total:
rep += "(" + str(self.total) + ")"
return rep

def deal(self, hands, per_hand=1):
for rounds in range(per_hand):
if len(self.cards) <= 7 * len(hands):
print("Reshuffling the deck...")
self.cards = []
self.populate()
self.shuffle()
for hand in hands:
top_card = self.cards[0]
self.give(top_card, hand)

@property
def total(self):
# if a card in the hand has value of None, then total is None
for card in self.cards:
if not card.value:
return None

# add up card values, treat each Ace as 1
t = 0
for card in self.cards:
t += card.value

# determine if hand contains an Ace
contains_ace = False
for card in self.cards:
if card.value == BJ_Card.ACE_VALUE:
contains_ace = True

# if hand contains Ace and total is low enough, treat Ace as 11
if contains_ace and t <= 11:
# add only 10 since we've already added 1 for the Ace
t += 10

return t

def is_busted(self):
return self.total > 21


class BJ_Player(BJ_Hand):
""" A Blackjack Player. """
def betting(stash):
try:
if stash > 0:
wager = int(input("\nHow much would you like to wager?: "))
if wager > bet.stash:
int(input("\n You can only wager what you have at hand. How much?: "))
elif wager < 0:
int(input("You can only wager what you have at hand. How much?: "))
except ValueError:
int(input("\n Entered an invalid amount. Choose a number: "))

def is_hitting(self):
response = games.ask_yes_no("\n" + self.name + ", do you want a hit? (Y/N): ")
return response == "y"

def bust(self):
print(self.name, "busts.")
self.lose()

def lose(self):
print(self.name, "loses.")

def win(self):
print(self.name, "wins.")

def push(self):
print(self.name, "pushes.")


class BJ_Dealer(BJ_Hand):
""" A Blackjack Dealer. """
def is_hitting(self):
return self.total < 17

def bust(self):
print(self.name, "busts.")

def flip_first_card(self):
first_card = self.cards[0]
first_card.flip()


class BJ_Game(object):
""" A Blackjack Game. """
def __init__(self, names):
self.players = []
for name in names:
player = BJ_Player(name)
self.players.append(player)

self.dealer = BJ_Dealer("Dealer")

self.deck = BJ_Deck()
self.deck.populate()
self.deck.shuffle()

@property
def still_playing(self):
sp = []
for player in self.players:
if not player.is_busted():
sp.append(player)
return sp

def __additional_cards(self, player):
while not player.is_busted() and player.is_hitting():
self.deck.deal([player])
print(player)
if player.is_busted():
player.bust()

def play(self):
# deal initial 2 cards to everyone
self.deck.deal(self.players + [self.dealer], per_hand = 2)
self.dealer.flip_first_card() # hide dealer's first card
for player in self.players:
print(player)
print(self.dealer)

# deal additional cards to players
for player in self.players:
self.__additional_cards(player)

self.dealer.flip_first_card() # reveal dealer's first

if not self.still_playing:
# since all players have busted, just show the dealer's hand
print(self.dealer)
else:
# deal additional cards to dealer
print(self.dealer)
self.__additional_cards(self.dealer)

if self.dealer.is_busted():
# everyone still playing wins
for player in self.still_playing:
player.win()
else:
# compare each player still playing to dealer
for player in self.still_playing:
if player.total > self.dealer.total:
player.win()
elif player.total < self.dealer.total:
player.lose()
else:
player.push()

# remove everyone's cards
for player in self.players:
player.clear()
self.dealer.clear()


def main():
print("\t\tWelcome to Blackjack!\n")

names = []
number = games.ask_number("How many players? (1 - 7): ", low = 1, high = 8)
for i in range(number):
name = input("Enter player name: ")
names.append(name)
print()

game = BJ_Game(names)

again = None
while again != "n":
game.play()
again = games.ask_yes_no("\nDo you want to play again?: ")


main()
input("\n\nPress the enter key to exit.")