私は入門クラスに取り組んでおり、最後のプロジェクトであるキノをほぼ完成させました。ディーラーと一致した数字の数に応じてお金に報酬を与える賭けゲームです。賭けの側面をどこに置くかについて問題があります。彼らは 100 ドルから始まり、一定の金額を支払うように求められます。私のメソッドは無効ではないため、どのメソッドが引き続き機能するのかわかりません。そのため、複数のデータ値を返すことはできません。
私の 2 番目の問題は、おそらくより重要な問題ですが、それらは一意の番号である必要があるということです。そのためには、毎回数値の配列を検索して一致するかどうかを確認するか、ブール値の配列を使用して数値を追跡する必要があります。2 番目の方法はわかりませんが、1 番目の方法についてはよくわかります。問題は、すでに do while を使用していることです。ネストされた for ループを使用して for ループを追加する方法がわかりません。これが私のコードです。乱雑で申し訳ありませんが、先生が中括弧を嫌っていることはわかっています。
package Keno;
import cs1.Keyboard;
public class Keno {
public static void main(String[]args){
int userArr[]=user();
int compArr[]=computer();
int howMany=matchNums(compArr,userArr);
int moneyGained=betting(howMany);
System.out.println("You matched "+howMany+" numbers");
System.out.println("You have gained "+moneyGained+" dollars!");
}
public static int[] computer(){
int []compChoice=new int[20];
for(int x=0;x<compChoice.length;x++){
compChoice[x]=(int)(Math.random()*81);
}
return compChoice;
}
public static int[] user(){
int choice[]=new int[7];
System.out.println("Welcome to Keno!");
System.out.println("Choose 7 unique numbers ranging from 1-80");
System.out.println("*************************************************");
//assigns numbers to choice array
for(int x=0;x<choice.length;x++){
do{
int temp=x+1;
System.out.println("number "+temp+": ");
choice[x]=Keyboard.readInt();
}while(choice[x]<0||choice[x]>80);
}
System.out.println("Thanks!");
System.out.println("*************************************************");
return choice;
}
public static int matchNums(int arr1[], int arr2[]){
int count=0;
//checks each array slot individually to see if they match
for(int x=0;x<arr1.length;x++){
for(int y=0;y<arr2.length;y++){
if(arr1[x]==arr2[y]){
count++;
}
}
}
return count;
}
public static int betting(int matches){
int moneyGained=0;
if(matches==7){
moneyGained=12000;
}else if(matches==6){
moneyGained=200;
}else if(matches==5){
moneyGained=20;
}else if(moneyGained==4){
moneyGained=1;
}
return moneyGained;
}
}