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

Graphviz: write result to file
Debug behavior differ from normal execution in python
nodejs unable to pass more than one arguments to the script with spawn
Setting indents while writing to an xml. Python.
Python Numpy's argsort duplicate issue [duplicate]
How to write Python script like shell script for UNIX?
Why does pythons slice indexing give counter intuitive results? [duplicate]
How to solve “Insufficient Permission” for userUsageReport with Google API?
Python: TypeError: 'list' object is not callable on global variable
sudo/suid non-root nesting fails
Difference between a list & a stack in python?
Python continue Not Working Properly
list where multiple values have to be found and replaced with two new values
Tornado add delay between HTTP requests
Tensorflow: Convert Tensor to numpy array then pass into a feed_dict
How do I convert all python operations involving None to None values?

Categories

HOME
rotation
visual-studio-2013
jasmine
label
zend-framework2
wampserver
phaser-framework
rebol
quill
bro
xcode8.3
height
android-viewpager
iso
opera-mini
grub2
off-canvas-menu
jsonserializer
apple-tv
memsql
fabric
badge
auditing
maximo
weinre
datadog
positioning
invoke-command
roundcube
vegan
getjson
pdflatex
idl
receipt
fabric-digits
npm-shrinkwrap
openpgp
css-counter
lego
pace
fltk
visualstudio.testtools
stdclass
nsexception
powermta
email-parsing
ajp
timesten
nsjsonserialization
taskmanager
webdatagrid
shutdown
openh264
nuget-server
sqlexception
polar-coordinates
project-template
angularjs-ng-pattern
freetype2
soda
spring-lemon
gmsmapview
faraday
dac
license-key
direct3d12
coldfusion-7
textkit
apigee-baas
mptcp
integral
harp
type-mismatch
findcontrol
coypu
lines-of-code
callstack
musl
hana-xs
cpan
omnifocus
livechat
dmp
snmp4j
ember-addon
io.js
crystal-reports-10
winrt-httpclient
roxygen
chrome-for-android
fortran77
graph-coloring
htmltextwriter
template-haskell
osi
qsqltablemodel
cadisplaylink
datarepeater
objective-c-protocol
driving-directions
flash-cs5.5
hashalgorithm
webkit-transform
dashcode
search-path
hibernate3-maven-plugin
sitemappath
gwt-2.2-celltable
plinq
interface-design
dotproject





Mobile Apps Dev
Database Users
javascript
java
csharp
php
android


MS Developer
developer works
python
ios
c
html
jquery


RDBMS discuss