今回は受講生(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;
}
}
コメント