Mając problemy z moimi pętlami for i licznikiem, powinno zsumować każdą wartość dodanych liczb i zapytać mnie, jaka jest ta wartość na końcu pętli for. Dodałem liczbę 2, aby zakończyć pętlę, więc próbowałem odjąć ją od sumy przed wydrukowaniem, ale to nie działa. Wsparcie!

import java.util.*;

public class CountingCards {
    public static void main(String[] args) {
        Counting();
    }

    public static void Counting() {
        Random rand = new Random();
        int count = 0;
        int sum = 0;
        Scanner in = new Scanner(System.in);
        for (int a = 0; a < 110; a++) {
            int player = rand.nextInt((10) + 1);
            System.out.println("    ");
            System.out.println("You got this card: " + player);
            System.out.println("What is the value of that card");
            int answer = in.nextInt();
            if (player == 1) {
                if (answer == -1) {
                    System.out.println("That is CORRECT");
                    count = -1;
                }
                if (answer != -1) {
                    System.out.println("Sorry, that is INCORRECT");
                    count = -1;
                }
            }
            if (player == 2) {
                if (answer == -1) {
                    count = -1;
                    System.out.println("That is CORRECT");
                }
                if (answer != -1) {
                    count = -1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 3) {
                if (answer == -1) {
                    count = -1;
                    System.out.println("That is CORRECT");
                }
                if (answer != -1) {
                    count = -1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 4) {
                if (answer == -1) {
                    count = -1;
                    System.out.println("That is CORRECT");
                }
                if (answer != -1) {
                    count = -1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 5) {
                if (answer == -1) {
                    count = -1;
                    System.out.println("That is CORRECT");
                }
                if (answer != -1) {
                    count = -1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 6) {
                if (answer == -1) {
                    count = -1;
                    System.out.println("That is CORRECT");
                }
                if (answer != -1) {
                    count = -1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 7) {
                if (answer == 0) {
                    count = 0;
                    System.out.println("That is CORRECT");
                }
                if (answer != 0) {
                    count = 0;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 8) {
                if (answer == 0) {
                    count = 0;
                    System.out.println("That is CORRECT");
                }
                if (answer != 0) {
                    count = 0;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 9) {
                if (answer == 0) {
                    count = 0;
                    System.out.println("That is CORRECT");
                }
                if (answer != 0) {
                    count = 0;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }
            if (player == 10) {
                if (answer == 1) {
                    count = 1;
                    System.out.println("That is CORRECT");
                }
                if (answer != 1) {
                    count = 1;
                    System.out.println("Sorry, that is INCORRECT");
                }
            }

            if (answer == -2) {

                sum = sum - 2;
                System.out.println("Your total count is:  " + sum);
                break;
            }
            sum = sum + count;

        }
    }
}

Suma powinna dodać wszystkie liczniki, które zdobyłem, w całej pętli for, i za każdym razem pytać, czy odpowiedź, którą im daję, dodaje się do całkowitego licznika za każdym razem. Jest daleko i nie wiem dlaczego

0
Jorge Alvarado 20 listopad 2019, 18:37
1
Myślę, że piszesz coś prostszego, aby zrozumieć, jak działa / działa twój kod. Nie rozumiem tej gry, czy to jest rzeczywista rzecz? czy po prostu zmodyfikowałeś go, aby zmienić go w coś innego? W każdym razie to, co bym również zrobił, to usunięcie drugiego zestawu IF. Jeśli testujesz pod kątem if (answer == -1), nie ma potrzeby sprawdzania if (answer! = -1). Rozumiem, że jest to bardziej bezpośrednie, ale jest sprzeczne z intuicją / trudne do odczytania. Następnie, jeśli gracz może być tylko jednym z 1..10, należy dodać else if, więc if (player == 1) else if (player == 2)
 – 
Buffalo
20 listopad 2019, 18:46
Nie jest jasne, co próbujesz tutaj zrobić. Wyświetla wartość, a następnie pyta, jaka jest wartość, ale nigdy nie porównuje przypuszczenia z wartością początkową? A co próbujesz podsumować? Całkowita wartość liczb losowych, liczba błędnych domysłów?
 – 
Thomas
20 listopad 2019, 18:49
 – 
c0der
1 kwiecień 2020, 11:49

2 odpowiedzi

Nie mogłem zrozumieć, czym dokładnie jest ta gra; ale patrząc na twój kod zgadłem, że popełniłeś logiczny błąd w następującym wierszu:

int player = rand.nextInt((10) + 1);

Powinno być

int player = rand.nextInt(10) + 1;

Po drugie, możesz zamienić następujący kod:

if (answer == -1) {
    System.out.println("That is CORRECT");
    count = -1;
}
if (answer != -1) {
    System.out.println("Sorry, that is INCORRECT");
    count = -1;
}

Z

if (answer == -1) {
    System.out.println("That is CORRECT");
    count = -1;
} else {
    System.out.println("Sorry, that is INCORRECT");
    count = -1;
}

Aby uzyskać dodatkową pomoc, musisz jasno wspomnieć o zasadach gry.

1
Arvind Kumar Avinash 20 listopad 2019, 18:56

Wymiana pieniędzy

int player = rand.nextInt((10) + 1);

Do

int player = rand.nextInt(10) + 1;

Powinien rozwiązać twój problem. Mam nadzieję, że to pomoże..

Miłego dnia !

1
Tanvir Ahmad Shaikh 20 listopad 2019, 19:04