python


higher or lower card game in python


I need to write some code which shows a random single number/card from 1-12, the player then guesses whether the next card will be higher or lower than the first card/number. (play your cards right british game) if they guess right they get another go, if they guess wrong (they say higher or lower and it's the opposite) they lose and the game ends. if they guess four in a row right they win.
I have a very rough idea of how to go about this.
Could you please lend a hand?
import random
guessesTaken = 0
print('Hello! I am going to show you a card, guess whether the next card is higher or lower, get four in a row to win!')
number = random.randint(1, 12)
number1 = random.randint(1, 12)
number2 = random.randint(1, 12)
number3 = random.randint(1, 12)
number4 = random.randint(1, 12)
#five variables for five cards, all random cards between 1 and 12
print('Well I am thinking of a card between 1 and 12, the first number is:')
print (number) #shows them first card
while guessesTaken < 5: #limit number of guesses to make game less than 4 to win?
print('Take a guess, is the next card higher or lower? Please enter a number from 1 to 12.')
guess = input()
guess = str(guess) # limit input to "h" or "l"?
guessesTaken = guessesTaken + 1 #increment guesses taken
if guess = h and guess !> number1:
print ("you lose")
break
if guess =l and guess !< number1:
print('you lose')
if guess = h and guess !< number1:
print ("well done")
#ask about next card
if guess =l and guess !> number1:
print('well done')
#ask about next card
if guess == number1:
print ('you lose it was neither higher nor lower')
break
#basically I know the middle comparison for values higher or lower for the four cards can be done with a loop, just not sure how, very new to this.

Well, lets make your code a little more pythonic...
import random
DECK_SIZE = 5
# See that it generates 5 unique random number from 1 to 12
# (not including 13) thus simulating a deck of cards,
# where cards cannot repeat. We add a None in the end to
# indicate end of deck
deck = random.sample(range(1, 13), DECK_SIZE) + [None]
# use of the zip method to create pairs of cards to compare
# (the final card will be a None, so we can see when cards ended)
for card,next_card in zip(deck[:-1],deck[1:]):
if next_card == None: # End of deck, user won the game
print("You won")
break
# we calculate the expected correct guess
# based on the pair of cards
correct_guess = "h" if next_card > card else "l"
# We get the user input
guess = input("card is {card} is next h or l? ".format(card=card))
# We verify if user input is the expected correct guess
if guess != correct_guess:
print("You lost, card was {next_card}".format(next_card=next_card))
break
I hope you can improve your python skills by studying this code and making changes to fulfill your needs. It uses a few python idiosyncrasies that may help you get some knowledge.


Related Links

Randomness algorithm in python that integrates a demi-Gaussian curve?
How to resolve “NameError: global name 'x' is not defined” error while running Robot Framework testcase using custom Library?
Removing first character from string
Python: how can I override a complicated function during unittest?
subprocess stdin buffer not flushing on newline with bufsize=1
urllib3 download a file using specified user agent
AttributeError - QThread and Win32com
Python error when trying to use multiple functions in a class. Tkinter
Find min value in a CSV and print every row that includes it in Python
Django form showing as hidden
Defining custom HTML5 boolean attributes in Django widgets
Python selenium explicit wait error
Does this shuffling algorithm produce each permutation with uniform probability?
How to load jar file and support files placed at different location
Missing menu item when creating an app bundle on mac using cx-freeze
Pandas: how to broadcast values by specific column rather than index when doing arithmetic operation?

Categories

HOME
udp
project-management
wms
amazon-product-api
parse-server
urlencode
proguard
google-plus
outlook-web-addins
ndis
nixos
rhapsody
sql-update
servicemix
jquery-waypoints
data-cleansing
excel-2013
solidworks
configure
superagent
expand
graph-databases
m2e
ios-ui-automation
precedence
google-guava-cache
bigcartel
liquid-xml
xamarin.uitest
duktape
jquery-multidatespicker
brute-force
dart-pub
lirc
production-environment
cgcontext
jexl
pycurl
vici
coremidi
tuxedo
foxit
date-format
interactive-brokers
approval-tests
spservices
cctray
insert-into
mirrorlink
lmfit
jericho-html-parser
uialertview
android-snackbar
prezto
c++-actor-framework
google-admin-audit-api
ember-components
suffix-array
sgml
zipalign
json-patch
pyjade
sim900
iconv
reporting-tools
domain-calculus
trailing-slash
lync-server-2010
sequelpro
osi
xmlslurper
windows-phone-7-emulator
signals2
hobo
msgbox
hashalgorithm
easygui
cookieless
loadui
yajl
soft-keyboard
data-entry





Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm