Forum >> Principianti >> Aiuto con un gioco

Pagina: 1

ciao a tutti! Sono all’inizio della mia esperienza di programmazione e dovrei elaborare un gioco in Python, ma mi trovo veramente in difficoltà su come iniziare. In pratica devo creare un gioco dove il programma legge da un file txt un input che definisce un labirinto. Ad esempio:

#######
# A#
# #####
# #S#
# # # #
# ### #
# #
#######



Nel file # è un muro, A è l’utente e S è la posizione del tesoro. Il programma deve stampare il labirinto e permettere all’utente di muoversi premendo N, S,E,W (nord,sud...). L’utente non può muoversi attraverso il muro e quando raggiunge il tesoro il gioco finisce.




Qualcuno saprebbe darmi una mano? :)



domanda:
ma perchè invece di farlo così coi caratteri, non usi tkinter e crei un oggetto giocatore che si dispone su una griglia dove ci piazzi un tesoro e degli ostacoli randomici?
Prima di tutto grazie per la risposta! Mi è stato chiesto di farlo così e infatti cercando sul web non ho trovato esempi che mi possano aiutare
Ti suggerisco di utilizzare librerie create esattamente allo scopo, come ad esempio Pygame (Pyglet).

Cya
ciao, se non puoi farlo con i moduli importati, prova a seguire questa guida che ho trovato googolando, forse può fare a caso tuo



https://www.blog.hatsec.io/ctf/python-maze-solver/







Dopo un po' di lavoro sono arrivato a questo punto:



nel main il codice è:




from game import read_maze,Maze

mz = read_maze('maze.txt')
for r in mz:
print(''.join(r))



inst = Maze()

v = input("Dove vuoi andare")
inst.gameplay(v)

nel file python game sono presenti le funzioni:def read_maze(fname):
mz = []
with open(fname, 'U') as f:
for r in f:
mz.append(list(r.replace('\n', '')))
return mz


NONE = " "
START = "A"
WALL = "W"
TRS = "S"

class Maze():

def moveRight(self,x,y):
self.solve(x+1,y)

def moveLeft(self,x,y):
self.solve(x-1,y)

def moveUp(self,x,y):
self.solve(x,y-1)

def moveDown(self,x,y):
self.solve(x,y+1)

def start(self, x=None, y=None):
if x==None:
x, y=self.start_x, self.start_y
if self.mazexy in WALL:
x,y=x,y
if self.mazexyin TRS:
print("You won")


def gameplay(self, v):


if v=='N':
self.moveUp()
if v=='S':
self.moveDown()
if v=='W':
self.moveLeft()
if v=='E':
self.moveRight()



Il problema rimane come dargli in input il mio file di testo maze.txt
##########
#A### ####
# # # ##
# # # # S#
# # # ##
# ### # #
# #
### ######
##########



Pagina: 1



Esegui il login per scrivere una risposta.