投注和搜索唯一性

时间:2013-04-20 13:27:34

标签: java

我一直在我的介绍班上工作,我差不多完成了我的最后一个项目,基诺。它是一个投注游戏,根据您与经销商匹配的数量来奖励金钱。我在投注方面存在问题,他们从100美元开始,并被要求支付一定数额的钱。我不知道哪种方法可以继续工作,因为我的方法不是空洞,所以我不能返回多个数据值。

我的第二个问题,也许更重要的问题是,它们需要是唯一的数字。要做到这一点,我需要每次搜索数字数组,看看它们是否匹配,或使用一组布尔值来跟踪数字。我不知道我会怎么做第二个,但我很清楚我会用第一个做什么。问题是即时通讯已经使用了do,我不知道如何添加带有嵌套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;
    }

}

1 个答案:

答案 0 :(得分: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个数字似乎很多。