33
4.2. Δεύτερη Φάση Ανάπτυξης – Έκδοση 2 της εφαρμογής
Στη δεύτερη φάση της υλοποίησης, στόχος ήταν η ενσωμάτωση του συστήματος
συνομιλίας (chat) σε ένα περιβάλλον παιχνιδιού. Το LLM έπρεπε να εξειδικευτεί σε
συγκεκριμένες θεματικές, ώστε να επιτυγχάνεται στοχευμένη αλληλεπίδραση. Για τον σκοπό
αυτό, δημιουργήθηκαν δύο νέα αρχεία: το level.py και το topics.json. Το πρώτο αποτελεί το
πρώιμο περιβάλλον του παιχνιδιού, ενώ το δεύτερο αποθηκεύει τα διαθέσιμα θέματα γνώσης.
Περιβάλλον παιχνιδιού
Το περιβάλλον του παιχνιδιού σχεδιάστηκε ως ένας χάρτης διαστάσεων 1000x1000
pixels, ο οποίος αποτελείται από πλακίδια (tiles). Η τοποθέτηση των tiles γίνεται τυχαία, ώστε
κάθε φορά που ξεκινά εκ νέου το παιχνίδι, ο χάρτης να μην είναι πανομοιότυπος. Η δημιουργία
και απόδοση του χάρτη επιτυγχάνεται μέσω ενός εμφωλευμένου βρόχου for, ο οποίος
υπολογίζει τις θέσεις των tiles βάσει της θέσης του παίκτη και του πεδίου ορατότητας (field of
view).
#draw tiles in map with nested loop for x and y range
for y in range(first_y_pos, last_y_pos):
for x in range(first_x_pos, last_x_pos):
#calculate screen positions based on players position and field of view for each tiles x and y
coordinate
screen_x = (x - offset_x) * tile_size
screen_y = (y - offset_y) * tile_size
#draw each tile
pygame.draw.rect(screen, tilemap[y][x], (screen_x, screen_y, tile_size, tile_size))
Πεδίο ορατότητας – Field of view
Το πεδίο ορατότητας (field of view) έχει οριστεί σε 30 x 20 πλακίδια (tiles). Το κάθε
πλακίδιο έχει μέγεθος 40 pixels. Οι διαστάσεις της οθόνης του παιχνιδιού έχουν οριστεί 1200
x 800, μέγεθος που ταιριάζει ικανοποιητικά στις περισσότερες οθόνες.
# set the size of each tile
tile_size = 40
# set the size of the map
map_size = 1000
#set screen dimensions
screen_width, screen_height = 1200, 800
#set the field of view dividing with the use of // to have an integer as a result. It represents
the amount of tiles displayed on x and y axis
field_of_view_x = screen_width // tile_size
field_of_view_y = screen_height // tile_size