Java(Bingoゲーム)

Java

今回は受講生(F氏)からのお題。激アツビンゴゲームだ。
一緒に作成していこう!

実行例

1

あなたの名前を入力してください>田中
あなたの年齢を入力してください>14
こんにちは田中(14才)さん。
18歳未満の方は遊戯できません

18歳未満は遊戯できません(笑

2

あなたの名前を入力してください>山田
あなたの年齢を入力してください>24
こんにちは山田(24才)さん。
残り枚数:100
BET枚数を入力。0で終了 1-100>10
157
779
729
1 LINE BINGO!!win:120
山田さんの所持コイン:210
BET枚数を入力。0で終了 1-210>20
347
367
033
boo
山田さんの所持コイン:190
BET枚数を入力。0で終了 1-190>20
315
035
466
boo
山田さんの所持コイン:170
BET枚数を入力。0で終了 1-170>20
838
112
499
boo
山田さんの所持コイン:150
BET枚数を入力。0で終了 1-150>20
452
128
479
boo
山田さんの所持コイン:130
BET枚数を入力。0で終了 1-130>30
536
074
742
boo
山田さんの所持コイン:100
BET枚数を入力。0で終了 1-100>30
599
992
708
boo
山田さんの所持コイン:70
BET枚数を入力。0で終了 1-70>30
540
612
321
boo
山田さんの所持コイン:40
BET枚数を入力。0で終了 1-40>30
975
902
999
2 LINE BINGO!!win:720
山田さんの所持コイン:730
BET枚数を入力。0で終了 1-730>0
Game Over

○掛け金を所持枚数以内で入力。
○ランダム(0−9)のランダムな数値を生成し配列に格納
一秒おきに1つの数字を表示。縦3横3の合計=9個(実行例参照)
○縦、横、ななめ
に同じ数字が並べばBINGO
1列につき12倍の配当が得られます。
例) 10枚BETで1 BINGO ->120
例) 20枚BETで2 BINGO ->480
○BETの際に0を入力するとゲーム終了

3

あなたの名前を入力してください>山田
あなたの年齢を入力してください>24
こんにちは山田(24才)さん。
残り枚数:100
BET枚数を入力。0で終了 1-100>120
コインが不足しています
BET枚数を入力。0で終了 1-100>100
853
383
241
boo
山田さんの所持コイン:0
コインがなくなりました
Game Over

○所持枚数以上のBETは「コインが不足しています」と表示
○所持コインがなくなったら「コインがなくなりました」と表示して終了

作成

以下の空欄を埋めて処理を完成させよう!

import java.util.*;
public class BingoGame{
	public static void main(String[] args) throws Exception{
		//ここを記述
	}
}
class Bingo{
  final int BINGO_RATIO=12;
	String userName;
	int userAge;
	int coin;
	public Bingo(String userName,int userAge,int coin){
		//ここを記述
	}
	public boolean ageCheck(){
	 //ここを記述
	}
	public void play(int bet) throws Exception{
		if(this.coin < bet){
			System.out.println("コインが不足しています");
			return;
		}
		this.coin -= bet;
		Random rand=new Random();
		int[] table=new int[9];
		for(int i=0;i<9;i++){
			/*ここに1秒止める処理を記述*/
			table[i]=rand.nextInt(10);
			System.out.print(table[i]);
			if((i+1) % 3==0){
				System.out.println();
			}
		}
		int bingoCount=bingoCount(table);
		if(bingoCount==0){
			System.out.println("boo");
		}else{
			int win=bet*BINGO_RATIO*bingoCount;
			System.out.println(bingoCount+" LINE BINGO!!win:"+win);
			this.coin += win;
		}
		System.out.printf("%sさんの所持コイン:%d%n",this.userName,this.coin);
	}	
	public int bingoCount(int[] table){
		int[][] bingoLineIndex={
			{0,1,2},{3,4,5},{6,7,8},
			{0,3,6},{1,4,7},{2,5,8},
			{0,4,8},{2,4,6}
		};
		int bingoLineCount=0;
		for(int i=0;i<bingoLineIndex.length;i++){
			int[] ids= bingoLineIndex[i];
			if(条件式を記述){
				bingoLineCount++;
			}
		}
		return bingoLineCount;
	}
}

作例

import java.util.*;
public class BingoGame{
	public static void main(String[] args) throws Exception{
		final int COIN_NUM=100;
		Scanner sc=new Scanner(System.in);
		System.out.print("あなたの名前を入力してください>");
		String name=sc.nextLine();
		System.out.print("あなたの年齢を入力してください>");
		int age=sc.nextInt();
		Bingo bingo=new Bingo(name,age,COIN_NUM);
		boolean ageOK=bingo.ageCheck();
		if(!ageOK){return;}
		while(true){
			if(bingo.coin==0){
				System.out.println("コインがなくなりました");
				break;
			}
			System.out.printf("BET枚数を入力。0で終了 1-%d>",bingo.coin);
			int bet=sc.nextInt();
			if(bet==0){break;}
			bingo.play(bet);
		}
		System.out.println("Game Over");
	}
}
class Bingo{
	final int BINGO_RATIO=12;
	String userName;
	int userAge;
	int coin;
	public Bingo(String userName,int userAge,int coin){
		this.userName=userName;
		this.userAge=userAge;
		this.coin=coin;
	}
	public boolean ageCheck(){
		System.out.printf("こんにちは%s(%d才)さん。%n",this.userName,this.userAge);
		if(this.userAge < 18){
			System.out.println("18歳未満の方は遊戯できません");
			return false;
		}else{
			System.out.printf("残り枚数:%d%n",this.coin);
			return true;
		}
	}
	public void play(int bet) throws Exception{
		if(this.coin < bet){
			System.out.println("コインが不足しています");
			return;
		}
		this.coin -= bet;
		Random rand=new Random();
		int[] table=new int[9];
		for(int i=0;i<9;i++){
			Thread.sleep(1000);
			table[i]=rand.nextInt(10);
			System.out.print(table[i]);
			if((i+1) % 3==0){
				System.out.println();
			}
		}
		int bingoCount=bingoCount(table);
		if(bingoCount==0){
			System.out.println("boo");
		}else{
			int win=bet*BINGO_RATIO*bingoCount;
			System.out.println(bingoCount+" LINE BINGO!!win:"+win);
			this.coin += win;
		}
		System.out.printf("%sさんの所持コイン:%d%n",this.userName,this.coin);
	}	
	public int bingoCount(int[] table){
		int[][] bingoLineIndex={
			{0,1,2},{3,4,5},{6,7,8},
			{0,3,6},{1,4,7},{2,5,8},
			{0,4,8},{2,4,6}
		};
		int bingoLineCount=0;
		for(int i=0;i<bingoLineIndex.length;i++){
			int[] ids= bingoLineIndex[i];
			if(table[ids[0]] == table[ids[1]] && table[ids[1]] == table[ids[2]]){
				bingoLineCount++;
			}
		}
		return bingoLineCount;
	}
}

上は3*3限定ですが以下の記事で拡張します。

Java
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました