1

私は入門クラスに取り組んでおり、最後のプロジェクトであるキノをほぼ完成させました。ディーラーと一致した数字の数に応じてお金に報酬を与える賭けゲームです。賭けの側面をどこに置くかについて問題があります。彼らは 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;
    }

}
4

1 に答える 1

0

賭け/お金の概念を追加する最も簡単な方法は、プレイヤーがどれだけのお金を持っているかを表す整数を追加することです (100 から始まります)。プレーヤーにいくら賭けたいか尋ね、それに応じて金額を調整する必要があります。

public static void main(String[] args) {
  int playerMoney = 100;
  int wagered = getWager(); // dont forget it has to be 0 < wagered <= 100
  // adjust players money according to the wager, and how much they won

一意性を確保するために、あなたのアイデアのいずれかが機能します。配列に既に存在する数値をチェックするのが好きですが、サイズ 80 のブール配列も機能します。ただ、数字が 7 つだけの場合は、かなり多いように思えます。

于 2013-04-20T13:40:59.900 に答える