Моя проблема в том, что когда я хочу распечатать любой элемент моего 2D-массива, вместо значения элемента массива отображается Null.Как я могу решить проблему?и почему я получаю этот вывод, несмотря на то, что мой массив имеет членов?(Я новичок в программировании)
Я пытался просто распечатать один элемент массива, записав номер элемента напрямую, но все же есть некоторая проблема, так что случайные числа не являются проблемой.Я также попытался определить новый массив внутри метода pickCard (), чтобы скопировать в него массив cardList, но это тоже не помогло.
У меня есть 2 разных класса, первый класс называется Tutorial и включает в себя метод main () , а другой называется Kortlek и все мои коды там.
Это учебный класс
package tutorial;
import java.util.Arrays;
import java.util.Scanner;
public class Tutorial {
public static void main(String[] args) {
// Using Scanner class to get in the input from user
Scanner input = new Scanner(System.in);
// We initialize our class Kortlek
Kortlek newKortlek = new Kortlek();
// Here we choose a nickname for user:
System.out.print("Please choose a name: ");
String Username = input.next();
String pcName = newKortlek.nickNamePC();
String userAnswer;
int userScore = 1;
int pcScore = 2;
do {
System.out.println("You picked up: " + newKortlek.pickCard());
System.out.println(pcName + " has picked up: " + newKortlek.pickCard());
System.out.println("Do you want to continue? write yes or no");
userAnswer = input.next();
} while (!userAnswer.equals("no"));
System.out.println("Your score is: " + userScore);
System.out.println(pcName + "'s score is: " + pcScore);
}
}
Это класс Кортлек
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tutorial;
import java.util.Random;
/**
*
* @author hezarehee
*/
public class Kortlek {
Random r = new Random();
/**
* In this method we create 2D array in order to group each card color and its cards (1-13)
*/
String cardList[][] = new String[3][12];
public String[][] buildCardGame () {
String[] farg = {"Spader", "Hjarter", "Ruter", "Klover"};
String[] nummer = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "Ace"};
for (int i=0; i < farg.length; i++) {
for (int j=0; j < nummer.length; j++) {
cardList[i][j] = farg[i] + " " + nummer[j];
}
}
return cardList;
}
/**
* Here we make a method that let computer to choose a name from given names in array
*/
public String nickNamePC () {
String[] nickName = {"Daivd", "Rahim", "Michael", "Sara", "Marie", "Jenny"};
int low = 0;
int high = 5;
int result = r.nextInt(high-low) + low;
String chosenName = nickName[result];
return chosenName;
}
/**
* Here we each time pick up a card from our 2D Array cardList[][]
*/
public String pickCard() {
int takeColor = r.nextInt(3-1) + 1;
int takeNumber = r.nextInt(12-1) + 1;
// we put our random numbers into the array carDList
String pickedCard = cardList[takeColor][takeNumber];
return pickedCard;
}
}
Мне нужно сделать карточную игру (Ранги цвета), в этой игре пользователи играют против программы, сначала в массиве cardList я пытался создать 52 разных карты для 4 групп (трефы, алмазы, червы, пики).Я сделал массив внутри метода buildCardGame ().
Методом pickCard () я пытаюсь выбрать случайную карту, добавив 2 случайных числа из 0-3 для цвета и 0-12 для ранга.Но когда я распечатываю его, я получаю ноль.