SAKURA Tempestaソフト部講習 Javaでオセロを作る!

はじめに

初めまして今年からソフト部に入ったzuikenです。
現在ソフト部では、ロボットのコードを書けるようになるために、プログラミング講習を行っています!
僕はこの講習でロボットプログラミングに使うJavaという言語の基礎を一通り学びました。しかしこの講習を終えてもまだJavaという言語に書きなれていないので、いきなりロボットのコードを書くのは難しいのではないかという話になりました。
そこで、今回Java講習のまとめとしてオセロを作ってみることにしました!

出来たもの

白と黒のターンごとに置きたい場所の座標を入力していくことでゲームを進めます。
cpu機能は作っていないので白も黒も自分で置く必要があります。
ゲームの最後に白と黒のコマの個数と、どちらが勝ったかが表示されます。

プログラムをスタートさせるとこのような譜面が出てきてコマを置きたい場所の座標のx,yを入力します。

入力した座標の位置ににコマが置かれ、裏返せるコマが自動で裏返されます。

そしてこれを白黒繰り返していくとこのように結果が出ます。

作り方の概要

次のようなステップで作りました。

  1. オセロの譜面を管理する配列を作成する
  2. 指定の位置にコマを置けるようにする
  3. 裏返す処理を作る
  4. 置けない場所にはおけないようにする
  5. 置ける場所がなければ自動でパスする
  6. 白黒ともにおける場所がなくなったら終了
  7. 白黒それぞれの個数を数えて勝敗を決める

③の裏返す処理が特に難しく

  1. 自分の周り1マスで相手の色の駒のある方向を探す
  2. その先に自分の駒があるか確認する
  3. もしあればその相手の駒と自分の駒の間の駒を裏返す

という手順に分けて作りました。
個人的にはもう少しいい処理で作れた気もしますが、苦労しながらも動くものが作れてうれしかったです。

詳しくは下記のGitHubを見てください
https://github.com/sakura-tempesta-6909/zuiken_Othello

参考文献

下記のwebサイトを参考に作りました!

まとめ

Javaを使ってオセロを完成させることができ、とても嬉しかったです。
まだまだ初心者で、決してきれいなコードを書けたわけではありませんが、自分の手で動くものを作ることができて感動しました。
この経験を糧に、自分もビルディングシーズンに先輩のようなコードを書けるよう、今後もロボットプログラミングの勉強を頑張りたいと思います。

最後まで読んでいただきありがとうございました!

是非シェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください