| 112 | |
| 113 | |
| 114 | class NimView(object): |
| 115 | def __init__(self, game): |
| 116 | self.game = game |
| 117 | self.screen = game.screen |
| 118 | self.model = game.model |
| 119 | self.screen.colormode(255) |
| 120 | self.screen.tracer(False) |
| 121 | self.screen.bgcolor((240, 240, 255)) |
| 122 | self.writer = turtle.Turtle(visible=False) |
| 123 | self.writer.pu() |
| 124 | self.writer.speed(0) |
| 125 | self.sticks = {} |
| 126 | for row in range(3): |
| 127 | for col in range(MAXSTICKS): |
| 128 | self.sticks[(row, col)] = Stick(row, col, game) |
| 129 | self.display("... a moment please ...") |
| 130 | self.screen.tracer(True) |
| 131 | |
| 132 | def display(self, msg1, msg2=None): |
| 133 | self.screen.tracer(False) |
| 134 | self.writer.clear() |
| 135 | if msg2 is not None: |
| 136 | self.writer.goto(0, - SCREENHEIGHT // 2 + 48) |
| 137 | self.writer.pencolor("red") |
| 138 | self.writer.write(msg2, align="center", font=("Courier",18,"bold")) |
| 139 | self.writer.goto(0, - SCREENHEIGHT // 2 + 20) |
| 140 | self.writer.pencolor("black") |
| 141 | self.writer.write(msg1, align="center", font=("Courier",14,"bold")) |
| 142 | self.screen.tracer(True) |
| 143 | |
| 144 | def setup(self): |
| 145 | self.screen.tracer(False) |
| 146 | for row in range(3): |
| 147 | for col in range(self.model.sticks[row]): |
| 148 | self.sticks[(row, col)].color(SCOLOR) |
| 149 | for row in range(3): |
| 150 | for col in range(self.model.sticks[row], MAXSTICKS): |
| 151 | self.sticks[(row, col)].color("white") |
| 152 | self.display("Your turn! Click leftmost stick to remove.") |
| 153 | self.screen.tracer(True) |
| 154 | |
| 155 | def notify_move(self, row, col, maxspalte, player): |
| 156 | if player == 0: |
| 157 | farbe = HCOLOR |
| 158 | for s in range(col, maxspalte): |
| 159 | self.sticks[(row, s)].color(farbe) |
| 160 | else: |
| 161 | self.display(" ... thinking ... ") |
| 162 | time.sleep(0.5) |
| 163 | self.display(" ... thinking ... aaah ...") |
| 164 | farbe = COLOR |
| 165 | for s in range(maxspalte-1, col-1, -1): |
| 166 | time.sleep(0.2) |
| 167 | self.sticks[(row, s)].color(farbe) |
| 168 | self.display("Your turn! Click leftmost stick to remove.") |
| 169 | |
| 170 | def notify_over(self): |
| 171 | if self.game.model.winner == 0: |
no outgoing calls
no test coverage detected
searching dependent graphs…