class Gridworld:
"""
کلاس Gridworld محیط دنیای شبکهای را برای یادگیری تقویتی نمایش میدهد.
"""
def __init__(self, master):
"""
متد سازنده که محیط دنیای شبکهای را راهاندازی میکند.
Args:
master (tk.Tk): پنجره اصلی رابط کاربری گرافیکی (GUI) با استفاده از کتابخانه tkinter.
"""
self.master = master
self.master.title("Gridworld Display")
self.grid_rows = 3 # تعداد سطرهای شبکه
self.grid_cols = 4 # تعداد ستونهای شبکه
self.cell_width = 100 # پهنای هر سلول
self.cell_height = 100 # ارتفاع هر سلول
self.rewards = {(2, 3): 44, (1, 3): -44} # پاداشهای سلولهای خاص
self.default_reward = -1 # پاداش پیشفرض برای سایر سلولها
self.walls = {(1, 1)} # موقعیت دیوارها
self.terminal_states = {(2, 3), (1, 3)} # سلولهای پایانی
self.agent_position = (0, 0) # موقعیت اولیهی عامل
self.canvas = tk.Canvas(master, width=self.grid_cols*self.cell_width, height=self.grid_rows*self.cell_height)
self.canvas.pack()
self.draw_grid()
self.draw_agent()