pythonでオセロ(4×4)を作る方法
応用編!
おはようございます!にわこまです。今回はpythonのライブラリである「pygame」を使って、オセロ(4×4)のゲームを作ってみました。
何かご指摘があればご連絡ください!
スポンサードサーチ
pythonでオセロを作る方法 応用編!
今回はpythonのライブラリである「pygame」を使ってオセロ(4×4)のゲームを作ってみました。
「pythonでオセロ(4×4)を作る方法」で作ったオセロとは違って、もっと見やすく使いやすく、そしてゲームっぽくしてみました。
「pythonでオセロ(4×4)を作る方法」ではコマンドプロンプトで実行し、プレイするオセロでしたが、今回はウィンドウを生成してそのウィンドウでプレイできるオセロを作りました。
この記事のサムネイルのような感じです。
「pygame」はpythonでゲームを作るときに使われるライブラリの1つです。
コードはこちらに全て載せてあります。
アルゴリズム
オセロのプログラムはほとんど同じであるため、説明は省きます。主に「pygame」のアルゴリズムについて説明していきたいと思います。
アルゴリズム
1. 表紙の生成
2. 先手(黒石)と後手(白石)の選択
3. オセロ開始
ゲームを見やすく使いやすくする上で、表紙は必要であると感じたため表紙を最初に表示するように考えました。
先手、後手を決めることができるのは、必須であると感じたため選択できるように作成しました。
「pythonでオセロ(4×4)を作る方法」では、コマンドプロンプトから「a1」、「b1」のように打つマスを決定していましたが、今回は表示されているマスをクリックするとマスを指定できるようになるように作成しました。
スポンサードサーチ
コード
コードは全てこちらに載せてあります。
今回は「pygame」を主に使っている関係で「pygame」のインストールは必須です。
インストールの仕方
(1) コマンドプロンプトを起動してください
(2) 「pip install pygame」と入力してエンターを押してください
(3) 以上でインストールは完了です
まれに、「pipのバージョンアップをしてください」という警告が出ます。その場合はそれに従ってバージョンアップを行てください。
スタートと書かれた部分をクリックしないと次に進まないようになっています。
クリックされたピクセルの情報を取得し、その情報が指定された範囲に入っているか判断して次に進んでいます。
先手後手を決めるときは、黒い円または白い円をクリックすることで次に進むようになっています。
円の中心からの距離を計算し、比較しています。直角三角形の斜辺を求める式を使って求めています。
クリックした点と円の中心の点の差がマイナスになっても、2乗するため問題ありません。 以下の画像を参考に説明します。
定義
円の中心の座標を(x, y)
クリックした点を(x1, y1)とします。
斜辺つまり円の中心からの距離を求めるには、高さを2乗したものと底辺を2乗したものを足し合わせて、平方根をとります。
高さは「y – y1」と表せます。
底辺は「x – x1」と表せます。
よって、円の中心からの距離は「((x – x1)^2 + (y – y1)^2)の平方根」です。
上の画像は、オセロの盤面です。
石を打ちたいマスをクリックすると、そのマスに石を打つことができます。
コンピュータの手番のときは、画面をどこでもいいのでクリックするとコンピュータが石を打ちます。
終了条件を的確な場所で確認し処理しています。
終了条件
1. 盤面すべてに石が打たれている
2. 反則の手を打った 3. 両者がパスを選択した(両者ともに打つマスがない)
使い方
コードは全てこちらに載せてあります。
手順
(1)上記のURLへ飛んでpythonのプログラムを任意の名前で保存して下さい
(2)コマンドプロンプトを起動してください
(3)pythonのプログラムを保存したフォルダに移動してください
(4)「python othello.py」と入力すると、ウィンドウが生成されて表紙が表示されます(othello.pyで保存した場合)
(5)以上で実行の仕方は終了です
注意
コンピュータの手番のとき 画面をクリックしないとコンピュータは石を打ちません。
コンピュータの手番のときは、画面をクリックしてください。
スポンサードサーチ
まとめ
今回はpythonのライブラリである「pygame」を使って、オセロ(4×4)を見やすく使いやすく、そしてよりゲームっぽく仕上げてみました。
「pygame」はpythonでゲームを作ることができるライブラリの1つです。
「pygame」では、シューティング系、落ちもの系、マインスイーパーなどのゲームを作ることができます。
ゲームを作るにあったって、例外処理やデバッグが一番時間かかります。
最初はコマンドプロンプトでプレイできるようなゲームを作り、「pygame」などを使って見やすく使いやすく、
そしてよりゲームっぽくするとスムーズにゲームを作成できるのではないかと思います。
最後までお読みいただきありがとうございます。
スポンサードサーチ