回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | 
         @@ -1,9 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            興味が湧いたのでデバッグしてみました。
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            1. 確認の順番が「ひっくり返せるか(`can_reverse_stone()`)」→「置けるか(`check_can_reverse()`)」になっていますが逆のほうが適切です。また「置けるか」の中に「ひっくり返せるか」が含まれるため、`put_stone()`では`can_reverse_stone()`ではなく`check_can_reverse()`で確認するのが良いでしょう。
         
     | 
| 
       2 
4 
     | 
    
         
             
            2. `check_can_reverse()`は全座標を対象に置けるか確認しているため、ターン毎の確認としては適切に動作しません。引数に`x`,`y`を渡して、その座標について置けるか確認しましょう。
         
     | 
| 
       3 
5 
     | 
    
         
             
            3. `reverse_stone()`で`check_can_reverse()`を実行していますが、ひっくり返せるかどうかは確認済みなので、再確認する必要はありません。
         
     | 
| 
       4 
6 
     | 
    
         
             
            4. `reverse_stone()`で`length`が定義されていないため、最後の石ひっくり返す行でエラーが出ます。`can_reverse_one()`が`length`を返すようにすると良いです。
         
     | 
| 
       5 
7 
     | 
    
         
             
            5. `put_stone()`で指定座標に石を置いていません。
         
     | 
| 
       6 
     | 
    
         
            -
            6. `display()`でxとyが逆になっています。
         
     | 
| 
      
 8 
     | 
    
         
            +
            6. `display()`で`x`と`y`が逆になっています。
         
     | 
| 
       7 
9 
     | 
    
         | 
| 
       8 
10 
     | 
    
         
             
            以上をまとめると次のようになります。
         
     | 
| 
       9 
11 
     | 
    
         
             
            ```python
         
     | 
| 
         @@ -92,8 +94,8 @@ 
     | 
|
| 
       92 
94 
     | 
    
         | 
| 
       93 
95 
     | 
    
         
             
                def display(self):
         
     | 
| 
       94 
96 
     | 
    
         
             
                    print('--' * 20)
         
     | 
| 
       95 
     | 
    
         
            -
                    for y in range( 
     | 
| 
      
 97 
     | 
    
         
            +
                    for y in range(tablesize):
         
     | 
| 
       96 
     | 
    
         
            -
                        for x in range( 
     | 
| 
      
 98 
     | 
    
         
            +
                        for x in range(tablesize):
         
     | 
| 
       97 
99 
     | 
    
         
             
                            if self.cell[x][y] == white:
         
     | 
| 
       98 
100 
     | 
    
         
             
                                print('W', end = '  ')
         
     | 
| 
       99 
101 
     | 
    
         
             
                            elif self.cell[x][y] == black:
         
     |