回答編集履歴
2
textdec削除
test
CHANGED
@@ -1,30 +1,47 @@
|
|
1
1
|
chatgptに聞いて解決しました。
|
2
2
|
主な修正、リファクタリングした箇所
|
3
3
|
|
4
|
+
今日行った主な修正・リファクタリングは以下のとおりです。
|
5
|
+
|
4
|
-
方向ベクトル&マスクの定義を一元化
|
6
|
+
1. **方向ベクトル&マスクの定義を一元化**
|
7
|
+
|
5
|
-
(direction, mask) タプルを DIR_MASKS にまとめ、合法手検出/反転処理で両方使い回しに
|
8
|
+
* `(direction, mask)` タプルを `DIR_MASKS` にまとめ、合法手検出/反転処理で両方使い回しに
|
9
|
+
|
6
|
-
shift 関数の簡素化
|
10
|
+
2. **`shift` 関数の簡素化**
|
11
|
+
|
7
|
-
方向ごとに左シフト・右シフトを使い分け、左シフト時には必ず & FULL で64ビットにマスク
|
12
|
+
* 方向ごとに左シフト・右シフトを使い分け、左シフト時には必ず `& FULL` で64ビットにマスク
|
8
|
-
合法手取得 (get_legal_moves) の整理
|
13
|
+
3. **合法手取得 (`get_legal_moves`) の整理**
|
14
|
+
|
9
|
-
空きマス empty のマスク化
|
15
|
+
* 空きマス `empty` のマスク化
|
10
|
-
DIR_MASKS をループで回しつつ、連続する相手石の追跡→最後に空きマスを判定する流れをまとめて記述
|
16
|
+
* `DIR_MASKS` をループで回しつつ、連続する相手石の追跡→最後に空きマスを判定する流れをまとめて記述
|
11
|
-
石返し処理 (flip_discs) の統一
|
17
|
+
4. **石返し処理 (`flip_discs`) の統一**
|
18
|
+
|
12
|
-
合法手取得と同じ方向/マスクループを流用し、ひっくり返すビット集合 to_flip を一括返却に変更
|
19
|
+
* 合法手取得と同じ方向/マスクループを流用し、ひっくり返すビット集合 `to_flip` を一括返却に変更
|
20
|
+
|
13
|
-
座標変換ヘルパーの追加
|
21
|
+
5. **座標変換ヘルパーの追加**
|
22
|
+
|
14
|
-
pos_to_bit(pos):入力文字列(上から1–8)→ビットインデックス
|
23
|
+
* `pos_to_bit(pos)`:入力文字列(上から1–8)→ビットインデックス
|
15
|
-
bit_to_pos(i):ビットインデックス→文字列(上から1–8)
|
24
|
+
* `bit_to_pos(i)`:ビットインデックス→文字列(上から1–8)
|
16
|
-
この二つで入出力の座標整合性を完全に担保
|
25
|
+
この二つで入出力の座標整合性を完全に担保
|
26
|
+
|
17
|
-
盤面表示 (print_board) の行番号を上から「1→8」へ
|
27
|
+
6. **盤面表示 (`print_board`) の行番号を上から「1→8」へ**
|
28
|
+
|
18
|
-
range(7, -1, -1) と enumerate(..., start=1) を使い、表示行と内部ビットの上下方向を一致させた
|
29
|
+
* `range(7, -1, -1)` と `enumerate(..., start=1)` を使い、表示行と内部ビットの上下方向を一致させた
|
30
|
+
|
19
|
-
put_disc の修正
|
31
|
+
7. **`put_disc` の修正**
|
32
|
+
|
20
|
-
まず pos_to_bit でビット変換し、そのビットを flip_discs に渡すように。その後 |= で駒を配置
|
33
|
+
* まず `pos_to_bit` でビット変換し、そのビットを `flip_discs` に渡すように。その後 `|=` で駒を配置
|
34
|
+
|
21
|
-
グローバル変数・初期化の整理
|
35
|
+
8. **グローバル変数・初期化の整理**
|
36
|
+
|
22
|
-
初期石配置を play_game 内にまとめ、不要だった変数(blank, white_or_black)を削除
|
37
|
+
* 初期石配置を `play_game` 内にまとめ、不要だった変数(`blank`, `white_or_black`)を削除
|
38
|
+
|
23
39
|
これらの変更により、
|
24
40
|
|
25
|
-
合法手検出・石返し処理は一貫した方向・マスク操作になり
|
41
|
+
* 合法手検出・石返し処理は一貫した方向・マスク操作になり
|
26
|
-
表示・入力・内部ビット表現の座標系が完全に一致し
|
42
|
+
* 表示・入力・内部ビット表現の座標系が完全に一致し
|
27
|
-
方向マスクの重複定義が解消され、コードがスッキリ見通しよくなりました。
|
43
|
+
* 方向マスクの重複定義が解消され、コードがスッキリ見通しよくなりました。
|
44
|
+
|
28
45
|
```python
|
29
46
|
BOARD_SIZE = 8
|
30
47
|
FULL = 0xFFFFFFFFFFFFFFFF
|
1
文字修正
test
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
chatgptに聞いて解決しました。
|
2
2
|
主な修正、リファクタリングした箇所
|
3
|
-
今日行った主な修正・リファクタリングは以下のとおりです。
|
4
3
|
|
5
4
|
方向ベクトル&マスクの定義を一元化
|
6
5
|
(direction, mask) タプルを DIR_MASKS にまとめ、合法手検出/反転処理で両方使い回しに textdoc_id:682a84107c4c819191516cddf72a32d2。
|