Jupyter初心者です。
ソースコードを実行すると,以下の様なエラーが出るのですがなぜNstateが定義されていないのか分からず、解決策をご教示お願いします。
self.Nstateに書き換えてみても,同様のエラーが出ました。
発生している問題・エラーメッセージ
NameError Traceback (most recent call last)
Cell In [6], line 4
2 room = Rooms()
3 room.s = 2
----> 4 print(room.step("right"))
Cell In [4], line 37, in Rooms.step(self, a)
35 def step(self,a):
36 if a == "right":
---> 37 if self.s == Nstate:
38 self.s += 1
39 self.r = 10
NameError: name 'Nstate' is not defined
エラーメッセージ
### 該当のソースコード Jupyter import random as ra class Rooms: def __init__(self, Nstate=5): self.state_list = list(range(1,Nstate+1,1)) self.r = -1 def reset(self, s=None): if s == None: self.s = ra.choice(self.state_list) else: self.s = s self.r = -1 return self.r def step(self,a): if a == "right": if self.s == Nstate: self.s += 1 self.r = 10 terminal = True else : self.s += 1 self.r = -1 terminal = False if a == "left": if self.s == 1: self.s -= 1 self.r = -1 terminal = True else: self.s -= 1 self.r = -1 terminal = False return self.s, self,r, terminal def render(self): if self.s > Nstate: i = 1 print("|") while i <= Nstate: print(i + "|" ) i = i + 1 print("@ r=10") if self.s < 1: i = 1 print("@|") while i <= Nstate: print(i + "|") i = i + 1 print(" r=-1") if self.s>0 and self.s < Nstate: i = 1 print("|", end='') while i <= Nstate: if i == self.s: print("@|") else: print(i) print("|") i = i + 1 print(" r=0") room = Rooms() room.s = 2 print(room.step("right"))