Skip to content

Instantly share code, notes, and snippets.

@wibbia
Last active August 29, 2015 14:22
Show Gist options
  • Save wibbia/fbef47299713f01e7ad2 to your computer and use it in GitHub Desktop.
Save wibbia/fbef47299713f01e7ad2 to your computer and use it in GitHub Desktop.
import pygame, sys, random
pygame.init()
size = width, height = 1000,600
screen = pygame.display.set_mode(size)
red = 220, 0, 0
black = 0,0,0
green = 0,200,0
prices = ["10 cent", "20 cent",
"50 cent", "$1", "$5",
"$10", "$20", "$50",
"$100", "$200", "$500",
"$1000", "$2000", "$5000",
"$10000", "$20000", "$50000",
"$100000", "$200000", "$500000",
"$1000000"]
clicked_sprites = pygame.sprite.Group()
selected_price = []
left_over_sprites = pygame.sprite.Group()
steven = ["Not Hey"]
class Box(pygame.sprite.Sprite):
def __init__(self, x, y, width, height, colour, number):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([width, height])
self.image.fill(colour)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.colour = colour
self.number = number
myfont = pygame.font.SysFont("Consolas", 20)
label = myfont.render(str(number), 1, black)
self.image.blit(label, (10, 10))
self.pressed = False
def _redraw(self, width, height, price):
self.image = pygame.Surface([width, height])
self.image.fill(green)
myfont = pygame.font.SysFont("Consolas", 20)
label = myfont.render(str(price), 1, black)
self.image.blit(label, (10, 10))
def set_pressed(self, pressed):
self.pressed = pressed
if sprite.number == "Swap":
left_over_sprites.sprites()
for i in range(0, len(left_over_sprites.sprites())):
if left_over_sprites.sprites()[i].number == 10:
left_over_sprites.remove(left_over_sprites.sprites()[i])
for i in range(0, len(left_over_sprites.sprites())):
print(left_over_sprites.sprites()[i].number)
new_number = user_box.sprites()[0].number
if user_box.sprites()[0].number == left_over_sprites.sprites()[0].number:
chosen_new_number = left_over_sprites.sprites()[1].number
left_over_new_number = new_number
elif chosen.sprites()[0].number == left_over_sprites.sprites()[1].number:
chosen_new_number = left_over_sprites.sprites()[0].number
left_over_new_number = new_number
pygame.display.flip()
return
elif sprite.number == "Not Swap":
steven.append("Hey")
return
expense = random.choice(prices)
self._redraw(self.rect.width, self.rect.height, expense)
prices.remove(expense)
for price in price_box.sprites():
if price.price == expense:
price_box.remove(price)
screen.fill(black)
break
def set_chosen(self, pressed):
self.pressed = pressed
self.rect.x = width / 2
self.rect.y = 500
price = random.choice(prices)
prices.remove(price)
screen.fill(black)
class SelectivePrices(pygame.sprite.Sprite):
def __init__(self, x, y, width, height, price, colour):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([width, height])
self.image.fill(colour)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.colour = colour
self.price = price
myfont = pygame.font.SysFont("Consolas", 20)
label = myfont.render(str(self.price), 1, black)
self.image.blit(label, (10, 10))
price_box = pygame.sprite.Group()
x = 10
y = 200
determine = 0,0,255
for i in range(0,(len(prices))):
new_price_box = SelectivePrices(x, y, 200, 30, prices[i], determine)
if i == 10:
x = 790
y = 200
determine = 255,0,0
y += 32
price_box.add(new_price_box)
box_list = pygame.sprite.Group()
x = 10
y = 10
amount_per_row = int(round(width / 110))
for i in range(0,(len(prices)+1)):
new_box = Box(x, y, 100, 80, red, i+1)
box_list.add(new_box)
left_over_sprites.add(new_box)
x += 110
if i > 0 and i % 9 == 0:
y += 90
x = 10
if i == 18:
x = 340
box_count = 0
user_box = pygame.sprite.Group()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
pos = x,y = pygame.mouse.get_pos()
for sprite in box_list.sprites():
if sprite.rect.collidepoint(pos):
if len(prices) == 0:
continue
if sprite in clicked_sprites.sprites():
continue
if box_count == 0:
user_box.add(sprite)
sprite.set_chosen(event.type == pygame.MOUSEBUTTONDOWN)
box_count+= 1
continue
if len(prices) < 3:
sprite.set_pressed(event.type == pygame.MOUSEBUTTONDOWN)
width_box = 100
height_box = 80
new_box = Box(width/2 - width_box,400 , width_box, height_box, red, "Swap")
box_list.add(new_box)
new_box = Box(width/2 + width_box, 400, width_box, height_box, red, "Not Swap")
box_list.add(new_box)
left_over_sprites.remove(sprite)
continue
if steven[-1] == "Hey":
box_list.remove(box_list.sprites()[-1])
box_list.remove(box_list.sprites()[-1])
screen.fill(black)
sprite.set_pressed(event.type == pygame.MOUSEBUTTONDOWN)
left_over_sprites.remove(sprite)
clicked_sprites.add(sprite)
box_list.draw(screen)
price_box.draw(screen)
pygame.display.update()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment