Aggiungi funzionalità di caricamento e salvataggio del campo di battaglia
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
.env/
|
||||||
|
|
||||||
|
# IDE specific files
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Compiled Python files
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
|
||||||
|
# Virtual environments
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
.env/
|
||||||
|
|
||||||
|
# IDE specific files
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Compiled Python files
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
@@ -16,8 +16,25 @@ import subprocess
|
|||||||
import threading
|
import threading
|
||||||
import asyncio
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
|
from tkinter import filedialog
|
||||||
|
|
||||||
class IsometricGame:
|
class IsometricGame:
|
||||||
|
def load_battlefield(self):
|
||||||
|
file_path = filedialog.askopenfilename()
|
||||||
|
if file_path:
|
||||||
|
with open(file_path, 'r') as file:
|
||||||
|
data = json.load(file)
|
||||||
|
width = len(data[0])
|
||||||
|
height = len(data)
|
||||||
|
self.battlefield = [[Cell(walkable=not data[y][x], tile=self.tiles["landscapeTiles_067"] if not data[y][x] else self.tiles["landscapeTiles_066"]) for x in range(width)] for y in range(height)]
|
||||||
|
self.width = width
|
||||||
|
self.height = height
|
||||||
|
self.draw_battlefield()
|
||||||
|
def save_battlefield(self):
|
||||||
|
filename = filedialog.asksaveasfilename(defaultextension=".json")
|
||||||
|
with open(filename, 'w') as json_file:
|
||||||
|
json.dump([[not cell.walkable for cell in row] for row in self.battlefield], json_file)
|
||||||
|
|
||||||
def __init__(self, width, height, data):
|
def __init__(self, width, height, data):
|
||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
@@ -57,6 +74,8 @@ class IsometricGame:
|
|||||||
self.canvas.bind('<Motion>', self.calculate_coordinates)
|
self.canvas.bind('<Motion>', self.calculate_coordinates)
|
||||||
|
|
||||||
menubar = tk.Menu(self.window, tearoff=0)
|
menubar = tk.Menu(self.window, tearoff=0)
|
||||||
|
menubar.add_command(label="Carica campo di battaglia", command=self.load_battlefield)
|
||||||
|
menubar.add_command(label="Salva campo di battaglia", command=self.save_battlefield)
|
||||||
menubar.add_command(label="Chiudi", command=self.on_close)
|
menubar.add_command(label="Chiudi", command=self.on_close)
|
||||||
self.window.config(menu=menubar)
|
self.window.config(menu=menubar)
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
[[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], [true, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false, false, false, false, true], [true, true, true, true, true, false, true, true, true, false, true, false, true, true, true, true, true, false, true, true, true], [true, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, true, false, false, false, true], [true, false, false, false, true, true, true, true, false, true, true, false, true, false, true, false, true, true, true, false, true], [true, false, true, false, false, false, false, false, true, false, false, false, true, false, false, false, false, false, true, false, true], [true, false, true, true, true, true, true, false, true, false, true, true, true, false, true, true, true, false, true, false, true], [true, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, true, false, true], [true, false, true, false, true, true, true, false, true, true, false, false, true, false, true, false, true, true, true, false, true], [true, false, false, false, true, false, false, false, false, false, true, false, false, false, true, false, true, false, false, false, true], [true, true, false, false, true, false, true, true, true, false, true, false, false, false, true, false, true, false, true, true, true], [true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true], [true, false, false, true, true, true, true, false, true, true, true, false, true, false, true, true, true, false, true, false, true], [true, false, true, false, false, false, false, false, true, false, false, false, true, false, false, false, true, false, true, false, true], [true, true, false, false, true, true, true, true, true, false, true, false, true, true, true, false, true, false, true, false, true], [true, false, false, false, true, false, false, false, false, false, true, false, true, false, false, false, true, false, true, false, true], [true, false, false, true, true, false, true, false, true, false, true, false, false, false, true, true, false, true, true, false, true], [true, false, true, false, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, false, true], [true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, false, true, false, true, true, true], [true, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true], [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]]
|
[[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], [true, false, false, false, false, false, true, false, false, false, false, false, true, false, false, false, false, false, false, false, true], [true, false, false, true, true, false, true, true, true, false, true, false, true, true, true, true, true, false, true, true, true], [true, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, true, false, false, false, true], [true, false, false, false, true, true, true, true, false, true, true, false, true, false, true, false, true, true, true, false, true], [true, false, true, false, false, false, false, false, true, false, false, false, true, false, false, false, false, false, true, false, true], [true, false, true, true, true, true, true, false, true, false, true, true, true, false, true, true, true, false, true, false, true], [true, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, true, false, true], [true, false, true, false, true, true, true, false, true, true, false, false, true, false, true, false, true, true, true, false, true], [true, false, false, false, true, false, false, false, false, false, true, false, false, false, true, false, true, false, false, false, true], [true, true, false, false, true, false, true, true, true, false, true, false, false, false, true, false, true, false, true, true, true], [true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true, false, false, false, true], [true, false, false, true, true, true, true, false, true, true, true, false, true, false, true, true, true, false, true, false, true], [true, false, true, false, false, false, false, false, true, false, false, false, true, false, false, false, true, false, true, false, true], [true, true, false, false, true, true, true, true, true, false, true, false, true, true, true, false, true, false, true, false, true], [true, false, false, false, true, false, false, false, false, false, true, false, true, false, false, false, true, false, true, false, true], [true, false, false, true, true, false, true, false, true, false, true, false, false, false, true, true, false, true, true, false, true], [true, false, true, false, false, false, true, false, false, false, true, false, true, false, false, false, true, false, false, false, true], [true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, false, true, false, true, true, true], [true, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true], [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]]
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
# DFS: Depth First Search
|
# DFS: Depth First Search
|
||||||
|
import tkinter.filedialog as fd
|
||||||
import random
|
import random
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
import json
|
import json
|
||||||
@@ -74,7 +75,8 @@ class MazeGenerator:
|
|||||||
y = random.randint(1, self.height - 2)
|
y = random.randint(1, self.height - 2)
|
||||||
self.maze[x][y] = False
|
self.maze[x][y] = False
|
||||||
self.draw_maze()
|
self.draw_maze()
|
||||||
with open('maze.json', 'w') as json_file:
|
filename = fd.asksaveasfilename(defaultextension=".json")
|
||||||
|
with open(filename, 'w') as json_file:
|
||||||
json.dump(self.maze, json_file)
|
json.dump(self.maze, json_file)
|
||||||
|
|
||||||
|
|
||||||
@@ -99,5 +101,7 @@ class MazeGenerator:
|
|||||||
self.window.mainloop()
|
self.window.mainloop()
|
||||||
|
|
||||||
# Crea e avvia il generatore di labirinti
|
# Crea e avvia il generatore di labirinti
|
||||||
generator = MazeGenerator(20, 20)
|
width = input("Inserisci la larghezza del labirinto: ")
|
||||||
|
height = input("Inserisci l'altezza del labirinto: ")
|
||||||
|
generator = MazeGenerator(int(width), int(height))
|
||||||
generator.run()
|
generator.run()
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
[[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], [true, false, false, false, false, false, true, false, true, false, false, false, false, false, false, false, false, false, true, false, true], [true, true, true, false, true, false, true, false, true, false, false, true, true, true, true, false, true, false, true, false, true], [true, false, false, false, true, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, true], [true, false, true, false, true, false, true, true, true, false, true, false, true, true, true, true, true, true, true, false, true], [true, false, true, false, true, false, true, false, false, false, true, false, false, false, true, false, false, false, false, false, true], [true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, false, true], [true, false, false, false, true, false, false, false, true, false, true, false, true, false, false, false, false, false, false, false, true], [true, true, true, false, true, true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true], [true, false, false, false, false, false, false, false, true, false, true, false, true, false, true, false, false, false, false, false, true], [true, false, true, false, true, true, true, true, true, false, true, true, true, false, true, true, true, true, true, true, true], [true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, false, false, false, false, true], [true, false, true, true, true, false, true, false, true, false, true, false, false, true, true, false, true, true, true, false, true], [true, false, true, false, false, false, true, false, true, false, true, false, false, false, true, false, false, false, true, false, true], [true, false, true, false, true, true, false, false, true, false, true, true, true, false, true, true, true, false, true, false, true], [true, false, true, false, true, false, true, false, true, false, false, false, true, false, false, false, false, false, true, false, true], [true, false, true, false, true, false, true, false, true, true, true, false, true, true, true, true, true, true, false, false, true], [true, false, true, false, false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, true], [true, false, true, true, true, false, true, false, true, false, false, true, false, true, true, false, true, false, true, false, true], [true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, true, false, true], [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]]
|
||||||
Reference in New Issue
Block a user