SZI2019SmieciarzWmi/sprites/hud.py
2019-03-27 08:37:51 +01:00

64 lines
2.9 KiB
Python

import pygame
from sprites.house import House
from sprites.garbage_collector import Garbage_collector
from config import HUD_HEIGHT
import csv
HUD_COLOR = (51,21,4)
WHITE = (255,255,255)
class Hud():
texts = []
def __init__(self,house_amount,WINDOW_WIDTH, WINDOW_HEIGHT,GAMEWINDOW):
pygame.init()
hud_upper = WINDOW_WIDTH - HUD_HEIGHT
hud_lower = WINDOW_WIDTH
height = hud_upper - hud_lower
font_type = 'fonts/Bazgroly.ttf'
font_size = house_amount * 2
GAMEWINDOW.fill(HUD_COLOR)
font = pygame.font.Font(font_type, font_size)
gc_plastic_text = font.render("Plastic: 0/0",True,WHITE)
gc_metal_text = font.render("Metal: 0/0",True,WHITE)
gc_glass_text = font.render("Glass: 0/0",True,WHITE)
map_plastic_text = font.render("Plastic: 0",True,WHITE)
map_metal_text = font.render("Metal: 0",True,WHITE)
map_glass_text = font.render("Glass: 0",True,WHITE)
overall_text = font.render("Garbage thrown away: 0",True,WHITE)
GAMEWINDOW.blit(overall_text,(20, 20))
def get_statistics(self, all_sprites, csv_name):
###Garbage collector stats###
gc_taken_space_plastic = 0
gc_taken_space_metal = 0
gc_taken_space_glass = 0
gc_trash_space = 10
###Board stats###############
plastic_left = 0
metal_left = 0
glass_left = 0
total_gathered = 0
for item in all_sprites:
if(type(item) == House):
rubbish = item.get_rubbish_data()
plastic_left += rubbish[0]
glass_left += rubbish[1]
metal_left += rubbish[2]
if(type(item) == Garbage_collector):
space_taken = item.get_space_data()
gc_taken_space_plastic += space_taken.get("plastic")
gc_taken_space_glass += space_taken.get("glass")
gc_taken_space_metal += space_taken.get("metal")
total_gathered += item.get_collect_data()
print("plastic left: "+str(plastic_left)+" | glass left: "+str(glass_left)+" | metal left: "+str(metal_left))
print(" plastic: "+str(gc_taken_space_plastic)+"/"+str(gc_trash_space)+" | glass: "+str(gc_taken_space_glass)+"/"+str(gc_trash_space)+" | metal: "+str(gc_taken_space_metal)+"/"+str(gc_trash_space))
print("### TOTAL COLLECTED: "+str(total_gathered)+" ###")
with open(csv_name, 'a', newline='') as csvfile:
filewriter = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
row = [str(plastic_left), str(glass_left), str(metal_left), str(gc_taken_space_plastic)+"/"+str(gc_trash_space), str(gc_taken_space_glass)+"/"+str(gc_trash_space), str(gc_taken_space_metal)+"/"+str(gc_trash_space), str(total_gathered)]
filewriter.writerow(row)
csvfile.close()