2024-03-08 20:21:45 +01:00
import pygame
2024-03-10 15:03:56 +01:00
import Slot
import random
import time
2024-03-08 19:58:18 +01:00
2024-03-08 20:21:45 +01:00
pygame . init ( )
2024-03-08 19:58:18 +01:00
2024-03-10 15:03:56 +01:00
BLACK = ( 0 , 0 , 0 )
BROWN = ( 139 , 69 , 19 )
WHITE = ( 255 , 255 , 255 )
RED = ( 255 , 0 , 0 )
GREEN = ( 0 , 255 , 0 )
2024-03-08 20:21:45 +01:00
CUBE_SIZE = 128
NUM_X = 8
NUM_Y = 4
WIDTH = 1024
HEIGHT = 512
screen = pygame . display . set_mode ( ( WIDTH , HEIGHT ) )
screen . fill ( WHITE )
pygame . display . update ( )
2024-03-08 19:58:18 +01:00
2024-03-10 15:03:56 +01:00
SLOT_DICT = { } #Slot are stored in dictionary with key being a Tuple of x and y coordinates so top left slot key is (0,0) and value is slot object
""" #Draw grid and tractor (old one)
def draw_grid ( ) :
for x in range ( 0 , 8 ) :
pygame . draw . line ( screen , BLACK , ( x * CUBE_SIZE , 0 ) , ( x * CUBE_SIZE , HEIGHT ) ) #We got 8 lines in Y axis so to draw them we use x from range <0,7) to make slot manage easier
for y in range ( 0 , 5 ) :
pygame . draw . line ( screen , BLACK , ( 0 , y * CUBE_SIZE ) , ( WIDTH , y * CUBE_SIZE ) ) #We got 4 lines in X axis so to draw them we use y from range <0,5) to make slot manage easier
2024-03-08 19:58:18 +01:00
2024-03-08 20:21:45 +01:00
# Draw tractor
2024-03-10 15:03:56 +01:00
tractor_image = pygame . image . load ( ' images/traktor.png ' )
tractor_image = pygame . transform . scale ( tractor_image , ( CUBE_SIZE , CUBE_SIZE ) )
screen . blit ( tractor_image , ( CUBE_SIZE - 128 , CUBE_SIZE - 128 ) ) """
def draw_tractor ( ) : #TODO? I think we should move draw_tractor to tractor class in the future
2024-03-08 20:21:45 +01:00
tractor_image = pygame . image . load ( ' images/traktor.png ' )
tractor_image = pygame . transform . scale ( tractor_image , ( CUBE_SIZE , CUBE_SIZE ) )
screen . blit ( tractor_image , ( CUBE_SIZE - 128 , CUBE_SIZE - 128 ) )
2024-03-10 15:03:56 +01:00
pygame . display . update ( )
#Draw grid and tractor (new one)
def draw_grid ( ) :
for x in range ( 0 , 8 ) :
for y in range ( 0 , 5 ) :
new_slot = Slot . Slot ( x , y , BROWN , screen )
SLOT_DICT [ ( x , y ) ] = new_slot
for entity in SLOT_DICT :
SLOT_DICT [ entity ] . draw ( )
draw_tractor ( )
def change_color_of_slot ( coordinates , color ) :
SLOT_DICT [ coordinates ] . color_change ( color )
def random_color ( ) :
x = random . randint ( 0 , 3 )
switcher = { 0 : BROWN ,
1 : GREEN ,
2 : RED ,
3 : WHITE }
return switcher [ x ]
2024-03-08 19:58:18 +01:00
2024-03-10 15:03:56 +01:00
def randomize_colors ( ) :
font = pygame . font . Font ( ' freesansbold.ttf ' , 32 )
text = font . render ( ' Randomizing crops ' , True , BLACK , WHITE )
textRect = text . get_rect ( )
textRect . center = ( WIDTH / / 2 , HEIGHT / / 2 )
screen . blit ( text , textRect )
pygame . display . update ( )
time . sleep ( 3 )
for coordinates in SLOT_DICT :
SLOT_DICT [ coordinates ] . color_change ( random_color ( ) )
draw_tractor ( )
2024-03-08 20:21:45 +01:00
2024-03-10 15:03:56 +01:00
def init_demo ( ) :
draw_grid ( )
time . sleep ( 2 )
randomize_colors ( )
init_demo ( )
2024-03-08 20:21:45 +01:00
while True :
for event in pygame . event . get ( ) :
if event . type == pygame . QUIT :
quit ( )