簡體   English   中英

比較掃描儀輸入到陣列

[英]Compare scanner input to array

提示:用戶輸入“ W”,“ L”或“ T”(贏,輸或平局)輸入賭注。 程序在這些參數內生成隨機結果。 打印用戶輸入和結果,並根據程序提供的正確下注顯示分數。

我在如何繼續比較用戶從掃描儀生成的輸入到產生隨機結果的數組列表方面遇到問題。

如果不是多個“問題”和“答案”,則可以使用(val.equals(input))排序。 但是,每個單獨的下注都是隨機的,必須與用戶下注相匹配才能總結出用戶得分,這使情況變得復雜。 任何幫助表示贊賞。

public class test3 {
public static void main(String[] args) {

    int score = 0;

    System.out.println("Betting game initiating... \nType 'W' for win, 'L' for loss and 'T' for tie.");

    Scanner input = new Scanner(System.in);
    String array[] = new String[5];

    for (int i = 0; i < 5; i++)
    {
        System.out.println("Please enter your bet:");
        array[i]=input.nextLine();
    }

    List<String> list = new ArrayList<String>();
    list.add("w");
    list.add("l");
    list.add("t");

    System.out.println("This week wins, losses and ties loading...\n");
    System.out.println("Result:");

    test3 obj = new test3();
    for(int i = 0; i < 5; i++){
        System.out.print(obj.getRandomList(list) + " ");
    }

    System.out.println("\n\nYour bets were:");
    for (int i = 0; i < 5; i++){
        System.out.print(array[i] + " ");
    }

    System.out.println("\n\nYou were correct on: " + score + " bettings");


}

private Random random = new Random();

public String getRandomList(List<String> list) {
    int index = random.nextInt(list.size());
    return list.get(index);

}
}

為了簡單起見,我刪除了test3,但是基本上您需要將結果保存在數組上並生成隨機結果並將其保存(即列表)。 然后,您必須迭代並比較每個游戲的結果,如果您的投注正確,則只需加一個即可得分。 檢查以下代碼:

主要:

public static void main(String[] args) {

        int score = 0;
        String array[] = new String[5];
        List < String > randomResultList = new ArrayList<String> ( );


        System.out.println("Betting game initiating... \nType 'W' for win, 'L' for loss and 'T' for tie.");

        Scanner input = new Scanner(System.in);


        for (int i = 0; i < 5; i++)
        {
            System.out.println("Please enter your bet:");
            array[i]=input.nextLine();
        }

        System.out.println("This week wins, losses and ties loading...\n");
        System.out.println("Result:");

        for(int i = 0; i < 5; i++){
            String randomResult = getRandomList();
            System.out.print( randomResult + " ");
            randomResultList.add ( randomResult );
        }

        System.out.println("\n\nYour bets were:");

        for (int i = 0; i < 5; i++){
            System.out.print(array[i] + " ");
        }
        //here is where you compare each result
        for(int i = 0; i < 5; i++)
        {
            if( array[i].equals ( randomResultList.get ( i ) ))
            {
                score++;
            }
        }

        System.out.println("\n\nYou were correct on: " + score + " bettings");


    }

    private static Random random = new Random();

    public static String getRandomList() {
        List<String> list = Arrays.asList("w", "l", "t");
        int index = random.nextInt(list.size());
        return list.get(index);
    }

I / O示例:

博彩游戲啟動...

輸入“ W”代表勝利,輸入“ L”代表損失,輸入“ T”代表並列。

請輸入您的賭注:

w ^

請輸入您的賭注:

w ^

請輸入您的賭注:

w ^

請輸入您的賭注:

w ^

請輸入您的賭注:

w ^

本周獲勝,失利和聯系...

結果:

ll

您的賭注是:

wwwww

您在以下方面是正確的:1下注

額外:

您可以在同一迭代上完成所有工作! 看一下這個。

public static void main(String[] args) {

        int score = 0;
        // Win Loose or Tie
        List<String> list = Arrays.asList("w", "l", "t");
        Random rand = new Random ( );

        //String with result and bets i.e (wwwww) and (wlltw). This avoid another iteration.
        String result="";
        String bets = "";

        System.out.println("Betting game initiating... \nType 'W' for win, 'L' for loss and 'T' for tie.");

        Scanner input = new Scanner(System.in);


        for (int i = 0; i < 5; i++)
        {
            System.out.println("Please enter your bet:");
            String bet =input.nextLine();
            String randomResult = ( list.get ( rand.nextInt ( list.size ( ) ) ));

            //concatenate String with results and bets with +=
            result += randomResult;
            bets += bet;

            //check if u won
            if( bet.equals ( randomResult ))
            {
                score++;
            }
        }

        //This are just the results! no more iterations.

        System.out.println("This week wins, losses and ties loading...\n");

        System.out.println("Result:" + result);

        System.out.println("\n\nYour bets were:" + bets );

        System.out.println("\n\nYou were correct on: " + score + " bettings");


    }

一種方法是在下面的代碼中。

基本上,您需要將輸入的每個元素與隨機列表的每個元素進行比較,以便運行循環。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Test {

  private Random random = new Random();

  public static void main(String[] args) {

    int score = 0;

    System.out
        .println("Betting game initiating... \nType 'W' for win, 'L' for loss and 'T' for tie.");

    Scanner input = new Scanner(System.in);
    String array[] = new String[5];

    for (int i = 0; i < 5; i++) {
      System.out.println("Please enter your bet:");
      array[i] = input.nextLine();
    }


    System.out.println("\n\nYour bets were:");
    for (int i = 0; i < 5; i++) {
      System.out.print(array[i] + " ");
    }

    List<String> list = new ArrayList<String>();
    list.add("w");
    list.add("l");
    list.add("t");

    System.out.println("This week wins, losses and ties loading...\n");
    System.out.println("Result:");

    Test obj = new Test();
    List<String> randList = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
      randList.add(obj.getRandomList(list));
    }
    for(String randBet : randList){
      System.out.print( randBet + " ");
    }



    System.out.println("");
    int counter = 0;


    for (String yourbet: Arrays.asList(array)){

      if(randList.get(counter).equals(yourbet)){
        score++;
      }
      counter++;
    }

    System.out.println("\n\nYou were correct on: " + score + " bettings");


  }

  public String getRandomList(List<String> list) {
    int index = random.nextInt(list.size());
    return list.get(index);

  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM