documents:proglang:python:py-001
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| documents:proglang:python:py-001 [2026/05/18 14:51] – [2-5. 石をひっくり返す] k896951 | documents:proglang:python:py-001 [2026/05/18 15:30] (現在) – [2-6. パス判定とゲーム終了] k896951 | ||
|---|---|---|---|
| 行 613: | 行 613: | ||
| - | === 2-6. パス判定とゲーム終了 | + | ==== 2-4. 駒を置くことができるか否か ==== |
| - | | + | |
| - | * 全探索 | + | ルールでは、駒を置けるならどんなにその位置に駒を置くのが不利になる場合でも置かねばならないし、どこにも駒を置くことができなければパスとなり手番が相手に移ります。 |
| - | * 終了条件 | + | |
| + | つまり、有効な駒の配置可能な位置を手番毎に調べる必要があります。 | ||
| + | |||
| + | 肝心な調べ方ですが、盤面には最大で64個のマスしかないので、空きマスに実際に駒を置いていくつ裏返す事ができるかを愚直に調べる事にします。\\ | ||
| + | 今のコンピュータならこのくらいどうという事はありません。よい時代になったものです。 | ||
| + | |||
| + | そして、既にわたしたちは類似の処理を書いています。\\ | ||
| + | 指定の盤面のマスの位置を指定して、駒を裏返す処理がそれです。あの処理では、指定の盤面の位置に駒を置いて裏返すと同時に裏返す事ができた駒の個数を返すようになっていました。……駒を裏返す処理をしなければ駒の個数だけを得られる事になりますね。この処理を流用しましょう。 | ||
| + | |||
| + | 具体的には、この処理を関数化して、引数で駒を裏返す処理をさせるか否か選択できるようにしてしまいましょう。 | ||
| + | |||
| + | <code python sample101.py> | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| ---- | ---- | ||
documents/proglang/python/py-001.txt · 最終更新: by k896951
