どうぶつしょうぎの完全解析をするGUI
@@ -188,10 +188,10 @@ | ||
188 | 188 | ElseIf _logs.Count > _turnCount Then |
189 | 189 | If _logs(_turnCount) <> move Then |
190 | 190 | _logs(_turnCount) = move |
191 | + For i As Integer = _logs.Count - 1 To _turnCount + 1 Step -1 | |
192 | + _logs.RemoveAt(i) | |
193 | + Next | |
191 | 194 | End If |
192 | - For i As Integer = _logs.Count - 1 To _turnCount + 1 Step -1 | |
193 | - _logs.RemoveAt(i) | |
194 | - Next | |
195 | 195 | End If |
196 | 196 | _turnCount += 1 |
197 | 197 | Debug.Assert(_turnCount <= _logs.Count) |
@@ -198,11 +198,30 @@ | ||
198 | 198 | End Sub |
199 | 199 | |
200 | 200 | ''' <summary> |
201 | + ''' 元に戻せるか | |
202 | + ''' </summary> | |
203 | + ''' <returns></returns> | |
204 | + ''' <remarks></remarks> | |
205 | + Public Function CanUndo() As Boolean | |
206 | + Return 0 < _turnCount | |
207 | + End Function | |
208 | + | |
209 | + ''' <summary> | |
210 | + ''' 初手に戻す | |
211 | + ''' </summary> | |
212 | + ''' <remarks></remarks> | |
213 | + Public Sub UndoAll() | |
214 | + While CanUndo() | |
215 | + Undo() | |
216 | + End While | |
217 | + End Sub | |
218 | + | |
219 | + ''' <summary> | |
201 | 220 | ''' 一手戻す。 |
202 | 221 | ''' </summary> |
203 | 222 | ''' <remarks></remarks> |
204 | 223 | Public Sub Undo() |
205 | - If _turnCount <= 0 Then | |
224 | + If Not CanUndo() Then | |
206 | 225 | Exit Sub |
207 | 226 | End If |
208 | 227 | _turnCount -= 1 |
@@ -40,7 +40,7 @@ | ||
40 | 40 | End Sub |
41 | 41 | |
42 | 42 | Private Sub btnUndoFirst_Click(sender As System.Object, e As System.EventArgs) Handles btnUndoFirst.Click |
43 | - BoardViewer1.kyokumen = New Board() | |
43 | + BoardViewer1.kyokumen.UndoAll() | |
44 | 44 | BoardViewer1.DrawCurrentBitmap() |
45 | 45 | End Sub |
46 | 46 |
@@ -85,6 +85,8 @@ | ||
85 | 85 | BoardViewer1.kyokumen.DoMove(move) |
86 | 86 | BoardViewer1.DrawCurrentBitmap() |
87 | 87 | BackgroundWorker1.RunWorkerAsync() |
88 | + output = String.Empty | |
89 | + TextBox1.Text = String.Empty | |
88 | 90 | End If |
89 | 91 | End Sub |
90 | 92 | End Class |