Skip to content

Commit

Permalink
Commiting the projects
Browse files Browse the repository at this point in the history
  • Loading branch information
Mukul Arora authored and Mukul Arora committed Dec 30, 2015
0 parents commit fdb677b
Show file tree
Hide file tree
Showing 4 changed files with 431 additions and 0 deletions.
106 changes: 106 additions & 0 deletions GuessTheNumber.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@

import random
import simplegui

number_of_guesses = 0
max_number = 100


# helper function to start and restart the game
def new_game():
# initialize global variables used in your code here
frame = simplegui.create_frame("guess_number", 200, 200)
frame.add_button("Range is [0,100)", range100, 200)
frame.add_button("Range is [0,1000)", range1000, 200)
frame.add_input("Enter a guess", input_guess, 100)

global secret_number
global max_number

secret_number = random.randrange(0,max_number)

global number_of_guesses
print "Number of remaining guesses is", number_of_guesses


# define event handlers for control panel
def range100():
# button that changes the range to [0,100) and starts a new game
print "New game. Range is from 0 to 100"
global max_number
max_number = 100
global number_of_guesses
number_of_guesses = 7

def range1000():
# button that changes the range to [0,1000) and starts a new game
print "New game. Range is from 0 to 1000"
global max_number
max_number = 1000
global number_of_guesses
number_of_guesses = 10


def input_guess(guess):
global secret_number
global number_of_guesses


# main game logic goes here
guess_number = int(guess)
print "Guess was", guess_number

number_of_guesses -= 1
print "Number of remaining guesses is", number_of_guesses

if(guess_number > secret_number):
print "Lower!"

elif(guess_number < secret_number):
print "Higher!"

else:
print "Correct!"
new_game()
return

if(number_of_guesses <= 0):
print "You ran out of guesses. The number was", secret_number
new_game()
return




# create frame


# register event handlers for control elements and start frame


# call new_game
#new_game()


# always remember to check your completed program against the grading rubric

#input_guess(5)

# template for "Guess the number" mini-project
# input will come from buttons and an input field
# all output for the game will be printed in the console



secret_number = 74
range100()
new_game()
input_guess("50")
input_guess("75")
input_guess("62")
input_guess("68")
input_guess("71")
input_guess("73")
input_guess("74")


151 changes: 151 additions & 0 deletions pong.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Implementation of classic arcade game Pong

import simplegui
import random

# initialize globals - pos and vel encode vertical info for paddles
WIDTH = 600
HEIGHT = 400
BALL_RADIUS = 20
PAD_WIDTH = 8
PAD_HEIGHT = 80
HALF_PAD_WIDTH = PAD_WIDTH / 2
HALF_PAD_HEIGHT = PAD_HEIGHT / 2
LEFT = False
RIGHT = True
right_score = 0
left_score = 0
ball_pos = [1,2]
paddle2_pos = HEIGHT/2 - HALF_PAD_HEIGHT
paddle1_pos = HEIGHT/2 - HALF_PAD_HEIGHT
paddle1_vel = 1
paddle2_vel = 1

# initialize ball_pos and ball_vel for new bal in middle of table
# if direction is RIGHT, the ball's velocity is upper right, else upper left
def spawn_ball(direction):
global ball_pos, ball_vel # these are vectors stored as lists
ball_pos[0] = WIDTH/2
ball_pos[1] = HEIGHT/2
if direction == "RIGHT":
ball_vel = [random.randrange(120, 240)/60.0, -random.randrange(60, 180)/60.0]
else:
ball_vel = [-random.randrange(120, 240)/60.0, -random.randrange(60, 180)/60.0]

# define event handlers
def new_game():
global paddle1_pos, paddle2_pos, paddle1_vel, paddle2_vel # these are numbers
global score1, score2 # these are ints
spawn_ball("RIG")


def draw(canvas):
global score1, score2, paddle1_pos, paddle2_pos, ball_pos, ball_vel, paddle1_vel, paddle2_vel


# draw mid line and gutters
canvas.draw_line([WIDTH / 2, 0],[WIDTH / 2, HEIGHT], 1, "White")
canvas.draw_line([PAD_WIDTH, 0],[PAD_WIDTH, HEIGHT], 1, "White")
canvas.draw_line([WIDTH - PAD_WIDTH, 0],[WIDTH - PAD_WIDTH, HEIGHT], 1, "White")

# update ball
ball_pos[0] += ball_vel[0]
ball_pos[1] += ball_vel[1]

if ball_pos[1] <= BALL_RADIUS:
ball_vel[1] = -ball_vel[1]

if ball_pos[1] >= (HEIGHT-1)- BALL_RADIUS:
ball_vel[1] = -ball_vel[1]

# draw ball
canvas.draw_circle(ball_pos, BALL_RADIUS, 2, "Red", "White")

# update paddle's vertical position, keep paddle on the screen
if paddle1_pos >= HEIGHT - PAD_HEIGHT:
if paddle1_pos >= HEIGHT - PAD_HEIGHT:
if paddle1_vel > 0:
paddle1_vel = 0

elif paddle1_pos <= 0:
if paddle1_vel < 0:
paddle1_vel = 0

if paddle2_pos >= HEIGHT - PAD_HEIGHT:
if paddle2_pos >= HEIGHT - PAD_HEIGHT:
if paddle2_vel > 0:
paddle2_vel = 0

elif paddle2_pos <= 0:
if paddle2_vel < 0:
paddle2_vel = 0

paddle1_pos += paddle1_vel
paddle2_pos += paddle2_vel

# draw paddles

canvas.draw_line([WIDTH-PAD_WIDTH +HALF_PAD_WIDTH, paddle2_pos ]
,[WIDTH-PAD_WIDTH +HALF_PAD_WIDTH, paddle2_pos+PAD_HEIGHT ]
,PAD_WIDTH , "White")
canvas.draw_line([0+PAD_WIDTH -HALF_PAD_WIDTH, paddle1_pos ]
,[0+PAD_WIDTH -HALF_PAD_WIDTH, paddle1_pos+PAD_HEIGHT ]
,PAD_WIDTH , "White")

# determine whether paddle and ball collide
global right_score ,left_score
if ball_pos[0] <= BALL_RADIUS + PAD_WIDTH:
if (ball_pos[1] >= paddle1_pos and ball_pos[1] <= paddle1_pos + PAD_HEIGHT):
ball_vel[0] = -1.1 * ball_vel[0]
else:
spawn_ball("RIGHT")
right_score += 1


if ball_pos[0] >= (WIDTH -1) - BALL_RADIUS - PAD_WIDTH:
if (ball_pos[1] >= paddle2_pos and ball_pos[1] <= paddle2_pos + PAD_HEIGHT):
ball_vel[0] = -1.1 * ball_vel[0]
else:
spawn_ball("LEFT")
left_score += 1

# draw scores
canvas.draw_text(str(left_score) , (100, 200), 50, 'Blue')
canvas.draw_text(str(right_score), (500, 200), 50, 'Blue')

def keydown(key):
global paddle1_vel, paddle2_vel
if key == simplegui.KEY_MAP['down']:
paddle2_vel = 6
elif key == simplegui.KEY_MAP['up']:
paddle2_vel = -6

if key == simplegui.KEY_MAP['s']:
paddle1_vel = 6
elif key == simplegui.KEY_MAP['w']:
paddle1_vel = -6


def keyup(key):
global paddle1_vel, paddle2_vel

def reset_button():
global right_score, left_score
right_score = 0
left_score = 0
new_game()

# create frame
frame = simplegui.create_frame("Pong", WIDTH, HEIGHT)
frame.set_draw_handler(draw)
frame.set_keydown_handler(keydown)
frame.set_keyup_handler(keyup)
frame.add_button('Reset', reset_button)


# start frame

new_game()
frame.start()


95 changes: 95 additions & 0 deletions rockPaperScissors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Rock-paper-scissors-lizard-Spock template
import random

# The key idea of this program is to equate the strings
# "rock", "paper", "scissors", "lizard", "Spock" to numbers
# as follows:
#
# 0 - rock
# 1 - Spock
# 2 - paper
# 3 - lizard
# 4 - scissors

# helper functions

def name_to_number(name):
# delete the following pass statement and fill in your code below
if(name == "rock"):
return 0
if(name == "Spock"):
return 1
if(name == "paper"):
return 2
if(name == "lizard"):
return 3
if(name == "scissors"):
return 4


# convert name to number using if/elif/else
# don't forget to return the result!


def number_to_name(number):
# delete the following pass statement and fill in your code below

if(number == 0):
return "rock"
if(number == 1):
return "Spock"
if(number == 2):
return "paper"
if(number == 3):
return "lizard"
if(number == 4):
return "scissors"
# convert number to a name using if/elif/else
# don't forget to return the result!


def rpsls(player_choice):
# delete the following pass statement and fill in your code below

# print a blank line to separate consecutive games
print " "

# print out the message for the player's choice
print "Player chooses", player_choice

# convert the player's choice to player_number using the function name_to_number()
player_number = name_to_number(player_choice)

# compute random guess for comp_number using random.randrange()
comp_number = random.randrange(0,5)

# convert comp_number to comp_choice using the function number_to_name()
comp_choice = number_to_name(comp_number)

# print out the message for computer's choice
print "Computer chooses", comp_choice

# compute difference of comp_number and player_number modulo five
diff = (comp_number - player_number )%5

# use if/elif/else to determine winner, print winner message
if(diff == 2 or diff == 1 ):
print "Player wins!"
elif(diff == 3 or diff == 4):
print "Computer wins!"
elif(diff == 0):
print "Player and computer tie!"


# test your code - THESE CALLS MUST BE PRESENT IN YOUR SUBMITTED CODE
rpsls("rock")
rpsls("Spock")
rpsls("paper")
rpsls("lizard")
rpsls("scissors")

# always remember to check your completed program against the grading rubric




Loading

0 comments on commit fdb677b

Please sign in to comment.