Preliminary Python Game

Below is the code for a Python game I have almost finished, entitled “Heap Of Beans”; in which a user competes against the computer to draw the final “bean” in the pile of sixteen. This program is still under development, and will be complete shortly.

# Problem 1
#
# Program Explanation: This program is the "Easy" function for the "Heap of Beans" program, and makes the computer player predictable to the user by
# only allowing the computer to deduct one bean each turn.
#
# Test Case 1:
# Please enter the difficulty you would like to utilize.  Easy
# There are 16 beans in the pile.
# The amount of beans subtracted by the computer player is: 1.
# There are 15 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 1.
# There are 11 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 1.
# There are 8 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 1.
# There are 4 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 1.
# There are 1 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# You won!!
#
#
# Test Case 2:
# Please enter the difficulty you would like to utilize.  Easy
# There are 16 beans in the pile.
# The amount of beans subtracted by the computer player is: 1.
# There are 15 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 1.
# There are 12 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 1.
# There are 8 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 1.
# There are 4 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# The amount of beans subtracted by the computer player is: 1.
# There are 2 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# You lost!!
# The amount of beans subtracted by the computer player is: 1.
import random
def Easy(beans):
  print "There are 16 beans in the pile. "
  computerSubtract = 1
  while beans >= 0:
    beans -= computerSubtract
    if beans >0:
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."
    if beans >0:
      print "There are "+str(beans)+" beans remaining."
    if beans >0:
      playerSubtract = input("Please enter the number of beans you would like to remove from the heap. ")
      beans-=playerSubtract
      if beans == 0:
        print "You won!!"
    if beans ==1:
      print "You lost!!"
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."

  return beans
# Problem 2
#
# Program Explanation: This function expands upon Problem 1, allowing the computer player to choose any random (integer) number of beans, between 1 and 3.
#
#
# Test Case 1:
# Please enter the difficulty you would like to utilize.  Medium
# There are 16 beans in the pile.
# The amount of beans subtracted by the computer player is: 2.
# There are 14 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 3.
# There are 8 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 1.
# There are 5 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 1.
# There are 1 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# You won!!
#
#
# Test Case 2:
# Please enter the difficulty you would like to utilize.  Medium
# There are 16 beans in the pile.
# The amount of beans subtracted by the computer player is: 1.
# There are 15 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 2.
# There are 11 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 3.
# There are 5 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 3.
# You lost!
def Medium(beans):
  print "There are 16 beans in the pile. "
  while beans > 0:
    computerSubtract = random.randint(1,3)
    while computerSubtract > beans:
      computerSubtract = random.randint(1,3)
    beans-=computerSubtract
    if beans >0:
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."
    if beans ==0:
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."
      print "You lost!"
    if beans > 0:
      print "There are "+str(beans)+" beans remaining."
      playerSubtract = input("Please enter the number of beans you would like to remove from the heap. ")
      beans -= playerSubtract
      if beans == 0:
        print "You won!!"
    if beans <0:
      print "You lost!"

  return beans
# Problem 3
#
# Program Explanation: This function further expands upon the "Medium" difficulty, through the use of cascading "if-statements" to attempt to "guess" the user's input on the next turn,
# and a means of winning the game for the Computer player.
#
# Test Case 1:
# Please enter the difficulty you would like to utilize.  Hard
# There are 16 beans in the pile.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 3.
# There are 10 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 3.
# There are 5 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 2.
# You lost!
#
#
# Test Case 2:
# Please enter the difficulty you would like to utilize.  Hard
# There are 16 beans in the pile.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 3.
# There are 10 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 2
# The amount of beans subtracted by the computer player is: 3.
# There are 5 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# The amount of beans subtracted by the computer player is: 3.
# There are 1 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 1
# You won!!
#
#
# Test Case 3:
# Please enter the difficulty you would like to utilize.  Hard
# There are 16 beans in the pile.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 3.
# There are 10 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 2.
# There are 5 beans remaining.
# Please enter the number of beans you would like to remove from the heap. 3
# The amount of beans subtracted by the computer player is: 2.
# You lost!
def Hard(beans):
  print "There are 16 beans in the pile. "
  while beans > 0:
    playerSubtract = input("Please enter the number of beans you would like to remove from the heap. ")
    beans -= playerSubtract
    if beans == 0:
        print "You won!!"
    if beans <0:
      print "You lost!"
    if beans==3:
      computerSubtract=3
    if beans == 2:
      computerSubtract = 2
    if beans == 1:
      computerSubtract = 1
    if beans >=8 and beans <=14:
      computerSubtract = 3
    elif beans >=7 and beans >=2:
      computerSubtract = 2
    beans-=computerSubtract
    if beans >0:
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."
    if beans > 0:
      print "There are "+str(beans)+" beans remaining."
    if beans ==0:
      print "The amount of beans subtracted by the computer player is: "+str(computerSubtract)+"."
      print "You lost!"

  return beans


if __name__ == "__main__":
  beans = 16
  difficultySelect = raw_input("Please enter the difficulty you would like to utilize.  ")
  if str(difficultySelect)=="Easy":  
    beans = Easy(beans)
  elif str(difficultySelect)=="Medium":  
    beans = Medium(beans)
  elif str(difficultySelect)=="Hard":
    beans = Hard(beans)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s