【初心者向け】Javaで作る簡単じゃんけんゲームサンプル (Switch版)

  • このエントリーをはてなブックマークに追加
  • Pocket

このページではJavaのサンプルプログラムをご紹介しよう。コンソールを使用してじゃんけんを行うゲームだ。

今回のサンプルプログラムでは、コンソールに文字を表示して対話形式でじゃんけんゲームを進めていく。じゃんけんゲームをするためには,いくつかのオブジェクトが登場する。これらのオブジェクト同士がお互いに情報交換しながらじゃんけんゲームがストーリーに従って動作するようになっている。

ストーリーのあらましは「審判の指示に従ってコンピュータと人間がじゃんけんで対戦し、それぞれが出した手の形を審判が判定する」と言うものだ。

実行結果から見てみよう。実際の画面はこうなる。審判が「じゃんけん」と合図する。そこでコンピュータに「ぐー」を表す「g」を入力する。そうすると判定結果が出てくるという流れである。

さっそく,実際のサンプルプログラムを見てみよう。

じゃんけんゲームのクラス

このサンプルプログラムは,コンソールからの文字入力と画面出力を使った対話型のちょっと複雑なゲームプログラムである。ゲーム中で登場するクラスとオブジェクトについて簡単に説明しておこう。

  • ScissorsPaterStoneGameクラス:ゲームのストーリーを実行する。
  • Shapeクラス:じゃんけんする二人の手の形を表す。
  • Judgeクラス:審判を表す。
  • Consoleクラス:画面の表示と入力を行うためのクラスである。また,タイマー機能も持っている。

サンプルプログラム

ScissorsPaterStoneGameクラス

このクラスは,ゲームに登場するオブジェクトをストーリーに従って呼び出し,じゃんけんゲームを実行する。

説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] mainメソッドの定義,ここからゲームが始まる。
  • [2]-[5] ゲームの中に登場するオブジェクトと作る。作られたオブジェクトは,shapeOfMyHand:コンピュータ側の手の形,shapeOfmyHand:入力された手の形,judge:審判,random:乱数である。
  • [6] ゲームの説明を表示する。
  • [7] ループの始まり。
  • [8] コンソールから文字を入力する。
  • [9] 入力文字をshapeOfYourHandオブジェクトの手の形に変換する。
  • [10]-[11] 手の形が「ぐう」,「ちょき」,「ぱー」以外の文字が入力されたら終了する。
  • [12] 審判がじゃんけんの開始の合図をする。
  • [13] 乱数からコンピュータ側の手の形を決める。
  • [14] 審判が判定を行う。
  • [15] 審判が判定結果を発表する。
  • [16] 2秒休み,ループの先頭に戻る。

Shapeクラス

このクラスは,ゲームを行う人の手を表している。文字入力と乱数の入力に対応して「ぐう」,「ちょき」,「ぱー」の手の形に変換し,その形を保持する。このクラスから対戦する人の手の形のオブジェクトが作られる。

説明

  • [1] クラスを定義する。
  • [2]-[10] 変数を定義する。
  • [20] メソッドrandomizeShapeを定義する。
  • [21] 乱数を発生させて手の形を決め,handに代入する。
  • [40] メソッドconvertKeyToShapeを定義する。
  • [41] メソッドtoLowerKeywによって,キーの値を小文字に変換する。
  • [42]-[54] キーの値に対応する手の形をhandに代入する。
  • [60] メソッドtoLowerKeyを定義する。
  • [61]-[63] キーの値を小文字に変換する。
  • [80] メソッドconvertKeyToShapeを定義する。
  • [81]-[89] 手の形を文字列に変換して戻す。
  • [100] メソッドhandを定義する。
  • [101] handの値を戻す。

Judgeクラス

このクラスは,審判を表している。この審判を表すオブジェクトは,ゲームの進行に伴って指示を行い,判定を下す。

説明

  • [1] クラスを定義する。
  • [2]-[5] enumにより判定結果を定義する。
  • [6]-[8] 変数を定義する。
  • [9]-[12] コンストラクタにより初期値を設定する。
  • [20] メソッドdisplayIntroductionを定義する。
  • [21]-[24] ゲームの紹介と入力方法について説明を行う。
  • [40] メソッドsayCueWordを定義する。
  • [41]-[48] 前の判定結果によって合図の言葉を変える。
  • [60] メソッドsayResultを定義する。
  • [61]-[65] あなたの手の形,コンピュータの手の形の順にタイマーを入れて表示する。
  • [66]-[77] 勝敗の結果を表示する。
  • [80] メソッドjudgeを定義する。
  • [81]-[100] 邪険のルールに従って判定を行う。

Consoleクラス

このクラスは,コンソールを表している。このコンソールを表すオブジェクトは,コンソールの文字の入出力とタイマー機能を持つ。

説明

  • [1] クラスを定義する。
  • [2] メソッドreadを定義する。
  • [3]-[10] 入力されたキーのコードを取得する。
  • [20] メソッドwriteを定義する。
  • [21] コンソールに引数で指定された文字列を表示する。
  • [40] メソッドwriteWithCRを定義する。
  • [41] コンソールに引数で指定された文字列を表示し,改行する。
  • [60] メソッドsleepを定義する。
  • [61]-[64] 引数に指定された秒数だけ休止する。

まとめ

このページでは複数のクラスを利用したJavaゲームのサンプルプログラムをご紹介した。各クラスの説明を参考にしてルールを本来のじゃんけんではない物に自由に変えたり、メッセージを変更したりと改造してみよう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる