【Java】2022年ゴールデンウイークプログラム特別合<動物ルーレット>プログラム実践例

<動物ルーレット>のプログラムをJavaで書いてみました。ガラポンでのリストの扱い方を応用して工夫する形で出来ていきます。プログラムスキルの向上のお役立てていただければと思っています。

↓↓↓チャンネル登録はコチラ
https://www.youtube.com/channel/UC9LBFFnjLr8RRASYQZ1E3wg?sub_confirmation=1

# スキル向上
# プログラム学習
# プログラム勉強法

<動物ルーレット>解答例・仕様全部のパターン
※角カッコは、youbeでは入力できないので。[]<>は、半角に置換してお使いください。

import java.util.Scanner;

public class AnimalRoulette

static Scanner sc = new Scanner(System.in);//コンソール入力用オブジェクト
static final String STAR = “★”;
static final String SPACE = “ ”;
static final String HALF_SPACE = ” “;
static final String[] PICTURES_ANIMAL = “🦕”, “🦁”, “🐘”, “🐏”, “🐓”, “🐢” ;
static final String[] NAMES_ANIMAL = “プラキオサウルス”, “ライオン”, “ゾウ”, “ヒツジ”, “ニワトリ”, “カメ” ;
static final int[] ODDS_ANIMAL = 0, 20, 8, 5, 5, 3 ;
static final String[] ODDS_ANIMAL_STRING = “0”, “20”, “8”, “5”, “5”, “3” ;
static final int[][] IMAGE_ROULETTE =
0, 0, 0, 0, 1, 0, 0, 0, 0 ,
0, 0, 0, 6, 0, 6, 0, 0, 0 ,
0, 0, 5, 0, 0, 0, 4, 0, 0 ,
0, 6, 0, 0, 0, 0, 0, 5, 0 ,
3, 0, 0, 0, 0, 0, 0, 0, 3 ,
0, 4, 0, 0, 0, 0, 0, 6, 0 ,
0, 0, 5, 0, 0, 0, 4, 0, 0 ,
0, 0, 0, 6, 0, 6, 0, 0, 0 ,
0, 0, 0, 0, 2, 0, 0, 0, 0 , ;
static int[] betsAnimal = new int[NAMES_ANIMAL.length];

public static void main(String[] args)

System.out.println(“<動物ルーレット>”);
int animalTotal = showRoulete();
int medalTotal = 15;

while (true)
for (String picture : PICTURES_ANIMAL)
System.out.print(HALF_SPACE + picture);

System.out.println();
for (String odds : ODDS_ANIMAL_STRING)
System.out.print(HALF_SPACE + odds);

System.out.println();
System.out.println();
for (int i = 1; i < PICTURES_ANIMAL.length; i++)
while (true)
System.out.println(PICTURES_ANIMAL[i] + NAMES_ANIMAL[i] +
“に何枚賭けますか?<所持メダル ” + medalTotal + “枚>”);
//数字入力待ち
int medalNumber = 0;
try
String input = sc.nextLine();
if (“”.equals(input))
input = “0”;

medalNumber = Integer.parseInt(input);
if (medalNumber > medalTotal)
System.out.println(“所持メダルを超えて、賭けられません。”);
else
betsAnimal[i] = medalNumber;
medalTotal -= medalNumber;
break;

catch (NumberFormatException e)
System.out.println(“数字を入力してください。”);

System.out.println();
System.out.println(“ルーレットを回します。”);
System.out.println(“Press Enter.”);
sc.nextLine();

//ENTER入力待ち
int hitAnimalPlace = (int) (Math.random() * animalTotal);
showRoulette(hitAnimalPlace);
System.out.println();
int hitAnimalIndex = getHitAnimalIndex(hitAnimalPlace);
System.out.println(PICTURES_ANIMAL[hitAnimalIndex] + NAMES_ANIMAL[hitAnimalIndex] + “が出ました。”);
int medalOutput = ODDS_ANIMAL[hitAnimalIndex] * betsAnimal[hitAnimalIndex];
medalTotal += medalOutput;
System.out.println(medalOutput + “枚出ました。<所持メダル ” + medalTotal + “枚>”);
System.out.println();
if (medalTotal <= 0)
System.out.println(“GAME OVER”);
System.exit(0);
else if (medalTotal >= 100)
System.out.println(“YOU WIN!!!”);
System.exit(0);

System.out.println(“Press Enter.”);
sc.nextLine();

private static int getHitAnimalIndex(int hitAnimalPlace)
int animalCounter = 0;
for (int i = 0; i < IMAGE_ROULETTE.length; i++)
for (int j = 0; j < IMAGE_ROULETTE.length; j++)
if (IMAGE_ROULETTE[i][j] != 0)
if (animalCounter == hitAnimalPlace)
return IMAGE_ROULETTE[i][j] – 1;

animalCounter++;

return 0;

private static int showRoulette(int hitAnimalPlace)
int animalCounter = 0;
for (int i = 0; i < IMAGE_ROULETTE.length; i++)
for (int j = 0; j < IMAGE_ROULETTE.length; j++)
if (IMAGE_ROULETTE[i][j] == 0)
System.out.print(SPACE);
else if (animalCounter == hitAnimalPlace)
System.out.print(STAR);
animalCounter++;
else
System.out.print(PICTURES_ANIMAL[IMAGE_ROULETTE[i][j] – 1]);
animalCounter++;

System.out.println();

return animalCounter;

private static int showRoulete()
return showRoulette(-1);