2015-11-19 1 views
0

Comment utiliser un tableau de ma main dans une classe différente. Je fais un jeu où je dois avoir un seul jet de dé trois fois. Je prends alors chaque valeur et fais des comparaisons comme les nombres 2/3 correspondent. Si ensuite ajouter à 12 puis redonner au joueur le pot. C'est la classe dans laquelle je veux utiliser les informations du tableau. J'ai appris sur les tableaux et les boucles la nuit dernière, donc je ne sais pas ce que je faisUtilisation de tableaux dans deux classes distinctes dans java

import java.util.Scanner; 

public class Game { 

private double Bet; 
private double Pot; 
private double TotalPot; 

public void Pot(){ 
Pot = 50; 
} 
public void inputBet() { 
    Scanner keyboard = new Scanner (System.in); 
    System.out.println("Please enter the current month in numerical format: "); 
    Bet = keyboard.nextDouble(); 
    if (Bet <= Pot) { 
     System.out.println("Error, Bet out of range"); 

     inputBet(); 
    } 
    else if (Bet == 0) { 
     System.out.println("Thank you for playing"); 
    } 
} 

public void inputEnd(){ 

} 

public void removeBet(){ 
    TotalPot = Bet - Pot; 
} 
public void dieComparison1(){ 
if ((die[0] == die[1]) || (die[0] == die[2])){ 
    TotalPot = (Bet * 2) + Pot; 
    } 
} 
public void print(){ 
System.out.println(+ TotalPot);} 
} 

Ceci est ma principale où le tableau est créé.

public class Assign3 { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    //Game smith = new Game(); 
    //smith.Pot(); 
    //smith.inputBet(); 
    int[] die = new int[3]; 
    Die bob = new Die(); 
    int total = 0; 
    for(int i = 0; i < 3; i++){ 
     die[i] = bob.rollDie(); 
     bob.displayDie(die[i]); 
     total = total + die[i]; 
    } 
    bob.displayDie(total); 


} 
} 
+2

Votre question est claire: de 'main()' vous appelez à des méthodes telles que 'rollDie()' et ' displayDie() 'mais vous ne nous montrez pas leurs implémentations. De plus, vous n'expliquez pas ce que vous essayez d'accomplir, quel est le rôle de Arrays et etc. – alfasin

+0

Votre méthode 'inputBet' demande à l'utilisateur de *" Veuillez entrer le mois courant au format numérique: " * mais l'entrée prend les paris. Avez-vous copié le code de quelque part et essayé de le modifier pour atteindre les résultats souhaités de votre programme? – Blip

+0

Si vous essayez d'obtenir le tableau des matrices dans la classe Game, c'est assez simple. Essayez quelque chose comme ceci: 'Game game = new Jeu (die);' Où Game constructeur ressemble à ceci: 'public Game (int [] dieArray) {}' Avez-vous du sens? –

Répondre

0

Dans le code ci-dessus vous avez-vous écrit dans la méthode main votre ont commenté les lignes où vous aviez créé une instance de Game classe:

//Game smith = new Game(); 
//smith.Pot(); 
//smith.inputBet(); 

que vous avez d'abord créé une instance de Game et stocké dans la variable smith et ensuite vous avez appelé les méthodes Pot et inputBet méthodes sur smith variable, vous pouvez déclarer une autre méthode dans la classe Game dire rollDie à contient le code que vous avez pour le lancement du dé et l'a appelé smith.rollDie() à partir de votre méthode main. Cela éliminerait l'exigence d'avoir le tableau die que vous avez créé dans le main à accéder à partir de la classe Game.

Ce que je veux dire par ce qui précède est:

  1. d'abord votre créer une die variable de type int[] dans votre classe Game et initialisez à une taille de trois comme:

    private int[] die = new int[3]; 
    
  2. vous créez une méthode dites rollDie() méthode contenant les méthodes de rouler le dé comme:

    public void rollDie(){ 
        Die bob = new Die(); 
        int total = 0; 
        for(int i = 0; i < 3; i++){ 
         die[i] = bob.rollDie(); 
         bob.displayDie(die[i]); 
         total = total + die[i]; 
        } 
        bob.displayDie(total); 
    } 
    
  3. Maintenant, dans votre méthode main commentez tout ce qui n'est pas commenté et décommentez tout ce qui est commenté. Ensuite, ajoutez la ligne smith.rollDie() de lancer le dé et obtenir les résultats que:

    Game smith = new Game(); 
    smith.Pot(); 
    smith.inputBet(); 
    smith.rollDie(); 
    // Here call the other method that are required to play the game like `dieComparision1()` etc. 
    /*int[] die = new int[3]; 
    Die bob = new Die(); 
    int total = 0; 
    for(int i = 0; i < 3; i++){ 
        die[i] = bob.rollDie(); 
        bob.displayDie(die[i]); 
        total = total + die[i]; 
    } 
    bob.displayDie(total);*/