Сложение целочисленных значений и использование их в разных классах - PullRequest
0 голосов
/ 30 января 2019

Я делаю забавный учебный сценарий для некоторого обзора, но я столкнулся с некоторыми проблемами.Сценарий использует случайные числа, чтобы выбирать между буквами «А, В или С», и когда вы получаете набор из 3 показывает Yahtzee!на консоли.Я могу заставить это работать просто отлично, но решил добавить, сколько Yahtzees вы получили из 25.Вот что у меня есть.

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

import ArrayList.EnhancedLoop2;

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner in = new Scanner(System.in);

    System.out.println("TIME TO PLAY JAVA YAHTZEE");
    System.out.println("Type 1 when ready");

    in.nextInt();

    ArrayList<NewClass> al = new ArrayList<NewClass>();

    for(int i = 0; i <= 25; i++)
        {   
        NewClass nw = new NewClass();   

        al.add(nw);
        }

        for(NewClass enhanced : al)

        {
        System.out.println("You got " + enhanced.m + " Yahtzees. Good Job");
        }
    }
}


import java.util.ArrayList;
import java.util.Random;

public class NewClass {

    public String a;
    public String b;
    public String c;
    public static int m;

    public NewClass()
    {
    getLetter();
    }

    public static String getLetter()
        {
                String rv = "";
                System.out.println("");
                String a = method1();
                String b = method1();
                String c = method1();
                System.out.println("Your letters are");
                System.out.println(a + "\n" + b + "\n" + c);
                System.out.print("your set is: " + a + b + c + "\n");
                getLetter2(a, b, c);
                return rv;
                }
    public static String getLetter2(String a, String b, String c)
            {
                String rv = "";
                if(a == "A" && b == "A" && c == "A")
                    {
                    System.out.println("YAHTZEE!");
                    }
                else if(a == "B" && b == "B" && c == "B")
                    {
                    System.out.println("YAHTZEE!");
                    }
                else if(a == "C" && b == "C" && c == "C")
                    {
                    System.out.println("YAHTZEE!");
                    m = yahtzeeCount(a, b, c);
                    }
                return rv;      
            }

public static String method1()
{   
    String letter = "";
    Random r = new Random();
    for(int i = 0; i <= 2; i++)
    {
        int cv = r.nextInt(9) + 1; 

        if(cv <= 3)
        {
            letter = "A";
        }
        else if(cv >= 4 && cv <= 6) 
        {       
            letter = "B";
        }
        else if(cv >=7 && cv <=9)
        {
            letter = "C";
        }
    }
    return letter;
}

public static int yahtzeeCount(String a, String b, String c)
    {
        int rv = 0;
        if(a == "A" && b == "A" && c == "A"  || a == "B" && b == "B" && c ==     "B" || a == "C" && b == "C" && c == "C")
        {
            rv = 1;
        }
        return rv;
    }
}

У меня также есть проблема со сценарием, показывающим: «Вы получили # yahtzees. Хорошая работа».25 раз вместо одного, и я не могу понять, как заставить его показывать только один раз.Вся помощь очень ценится.Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

Я закончил тем, что немного изменил сценарий, и в конце концов мне не понадобился ArrayList (я действительно не понимал расширенные циклы).Вот что я закончил с

package Yahtzee;

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner in = new Scanner(System.in);

    System.out.println("TIME TO PLAY JAVA YAHTZEE");
    System.out.println("Type 1 when ready");

    in.nextInt();

    for(int i = 0; i <= 25; i++)
        {   
        Test2 nw = new Test2();
        }

        System.out.println("Congratulations you got " + Test2.rv + " Yahtzees");
    }
}


package Yahtzee;

import java.util.Random;

public class Test2 {
public String a;
public String b;
public String c;
public static int rv;

public Test2()
    {
    System.out.println("");
    a = method1();
    b = method1();
    c = method1();
    System.out.println("Your letters are");
    System.out.println(a + "\n" + b + "\n" + c);
    System.out.print("your set is: " + a + b + c + "\n");
    if(a == "A" && b == "A" && c == "A")
        {
        System.out.println("YAHTZEE!");
        rv = (rv + 1); 
        }
    else if(a == "B" && b == "B" && c == "B")
        {
        System.out.println("YAHTZEE!");
        rv = (rv + 1); 
        }
    else if(a == "C" && b == "C" && c == "C")
        {
        System.out.println("YAHTZEE!");
        rv = (rv + 1); 
        }   
    }

public static String method1()
        {   
        String letter = "";
        Random r = new Random();
        for(int i = 0; i <= 2; i++)
            {
            int cv = r.nextInt(9) + 1; 

            if(cv <= 3)
            {
            letter = "A";
            }
            else if(cv >= 4 && cv <= 6) 
            {       
            letter = "B";
            }
            else if(cv >=7 && cv <=9)
            {
                letter = "C";
            }
            }
        return letter;
        }

}
...