Difference between revisions of "Item collection w/ list walk-through"
From WLCS
(Created page with "=== Item Collection without Lists === <syntaxhighlight lang="Python"> from gasp import * def distance(x1, y1, x2, y2): return ((x2-x1)**2 + (y2-y1)**2)**0.5 begin_graphics(...") |
|||
Line 13: | Line 13: | ||
player_y = 150 | player_y = 150 | ||
player = Circle((player_x, player_y), 20) | player = Circle((player_x, player_y), 20) | ||
+ | |||
+ | numItems = 3 | ||
+ | numCollected = 0 | ||
item_x0 = random_between(0,400) | item_x0 = random_between(0,400) | ||
Line 43: | Line 46: | ||
item_y0 = 1000 | item_y0 = 1000 | ||
remove_from_screen(item_shape0) | remove_from_screen(item_shape0) | ||
+ | numCollected += 1 | ||
if distance(player_x, player_y, item_x1, item_y1) < 25: | if distance(player_x, player_y, item_x1, item_y1) < 25: | ||
Line 48: | Line 52: | ||
item_y1 = 1000 | item_y1 = 1000 | ||
remove_from_screen(item_shape1) | remove_from_screen(item_shape1) | ||
− | + | numCollected += 1 | |
+ | |||
if distance(player_x, player_y, item_x2, item_y2) < 25: | if distance(player_x, player_y, item_x2, item_y2) < 25: | ||
item_x2 = 1000 | item_x2 = 1000 | ||
item_y2 = 1000 | item_y2 = 1000 | ||
remove_from_screen(item_shape2) | remove_from_screen(item_shape2) | ||
+ | numCollected += 1 | ||
+ | |||
+ | #check if you've collected all the items | ||
+ | if numCollected == numItems: | ||
+ | print "You win!" | ||
+ | break | ||
move_to(player, (player_x, player_y)) | move_to(player, (player_x, player_y)) | ||
Line 58: | Line 69: | ||
end_graphics() | end_graphics() | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 74: | Line 86: | ||
player_y = 150 | player_y = 150 | ||
player = Circle((player_x, player_y), 20) | player = Circle((player_x, player_y), 20) | ||
+ | |||
+ | numItems = 3 | ||
+ | numCollected = 0 | ||
item_x = [] #stores all x-coordinates | item_x = [] #stores all x-coordinates | ||
Line 82: | Line 97: | ||
#shapes to the lists | #shapes to the lists | ||
i = 0 | i = 0 | ||
− | while i < | + | while i < numItems: |
item_x.append(random_between(0,400)) | item_x.append(random_between(0,400)) | ||
item_y.append(random_between(0,300)) | item_y.append(random_between(0,300)) | ||
Line 109: | Line 124: | ||
item_y[i] = 1000 | item_y[i] = 1000 | ||
remove_from_screen(item_shape[i]) | remove_from_screen(item_shape[i]) | ||
+ | numCollected += 1 | ||
i = i + 1 | i = i + 1 | ||
+ | |||
+ | #check if you've collected all the items | ||
+ | if numCollected == numItems: | ||
+ | print "You win!" | ||
+ | break | ||
move_to(player, (player_x, player_y)) | move_to(player, (player_x, player_y)) |
Latest revision as of 08:29, 4 May 2011
Item Collection without Lists
from gasp import *
def distance(x1, y1, x2, y2):
return ((x2-x1)**2 + (y2-y1)**2)**0.5
begin_graphics(400, 300, title="Item Collection", background=color.WHITE)
set_speed(120)
#creates player
player_x = 200
player_y = 150
player = Circle((player_x, player_y), 20)
numItems = 3
numCollected = 0
item_x0 = random_between(0,400)
item_y0 = random_between(0,300)
item_shape0= Circle((item_x0, item_y0), 5, filled=True)
item_x1 = random_between(0,400)
item_y1 = random_between(0,300)
item_shape1= Circle((item_x1, item_y1), 5, filled=True)
item_x2 = random_between(0,400)
item_y2 = random_between(0,300)
item_shape2= Circle((item_x2, item_y2), 5, filled=True)
while True:
if key_pressed('up'):
player_y += 5
if key_pressed('down'):
player_y -= 5
if key_pressed('right'):
player_x += 5
if key_pressed('left'):
player_x -= 5
if key_pressed('escape'):
break
if distance(player_x, player_y, item_x0, item_y0) < 25:
item_x0 = 1000
item_y0 = 1000
remove_from_screen(item_shape0)
numCollected += 1
if distance(player_x, player_y, item_x1, item_y1) < 25:
item_x1 = 1000
item_y1 = 1000
remove_from_screen(item_shape1)
numCollected += 1
if distance(player_x, player_y, item_x2, item_y2) < 25:
item_x2 = 1000
item_y2 = 1000
remove_from_screen(item_shape2)
numCollected += 1
#check if you've collected all the items
if numCollected == numItems:
print "You win!"
break
move_to(player, (player_x, player_y))
update_when('next_tick')
end_graphics()
Item Collection with Lists
from gasp import *
def distance(x1, y1, x2, y2):
return ((x2-x1)**2 + (y2-y1)**2)**0.5
begin_graphics(400, 300, title="Item Collection", background=color.WHITE)
set_speed(120)
player_x = 200
player_y = 150
player = Circle((player_x, player_y), 20)
numItems = 3
numCollected = 0
item_x = [] #stores all x-coordinates
item_y = [] #stores all y-coordinates
item_shape = [] #stores all shapes
#loops through 3 times and appends numbers and
#shapes to the lists
i = 0
while i < numItems:
item_x.append(random_between(0,400))
item_y.append(random_between(0,300))
item_shape.append(Circle((item_x[i], item_y[i]), 5, filled=True))
i = i + 1
while True:
if key_pressed('up'):
player_y += 5
if key_pressed('down'):
player_y -= 5
if key_pressed('right'):
player_x += 5
if key_pressed('left'):
player_x -= 5
if key_pressed('escape'):
break
#loop through multiple times to test collision
#of each of the items
i = 0
while i < len(item_shape):
if distance(player_x, player_y, item_x[i], item_y[i]) < 25:
item_x[i] = 1000
item_y[i] = 1000
remove_from_screen(item_shape[i])
numCollected += 1
i = i + 1
#check if you've collected all the items
if numCollected == numItems:
print "You win!"
break
move_to(player, (player_x, player_y))
update_when('next_tick')
end_graphics()