Problème d'indice out of bounds

Fermé
eliereve Messages postés 6 Date d'inscription jeudi 21 janvier 2021 Statut Membre Dernière intervention 17 mai 2021 - 17 mai 2021 à 10:43
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 17 mai 2021 à 13:00
Bonjour, j'ai un problème en java pour un jeux de patience ou klondike que j'essaie de coder, le problème c'est que l'indice dépasse la limite du tableau visiblement.
J'ai créé des tableaux d'objets stack pour les quatre pioches et 7decks autrement dit des tas pour les colonnes de cartes qui décroissent successivement en nombre. Donc stack, c'est un type que j'ai créé, je mets le code des classes à la fin.



final int pieux_count=4;
final int decks_count=7;

Stack [] pieux_4=new Stack[pieux_count];
Deck_dealer [] decks=new Deck_dealer[decks_count];
int i=0;
do
{
decks[i]=new Deck_dealer();
int j=0;
do
{
decks[j].deck.get(j).add_card(stack, j);
j++;
}while(j<i+1);
i++;
}while(i<decks_count);



classe stack avec constructeur :

package patience;

public class Stack extends Deck
{
public Stack(Deck_dealer full_cards_deck)
{
this.deck=full_cards_deck.deck;
}


classe Deck avec constructeur :
package patience;

import java.util.ArrayList;

public class Deck
{
protected ArrayList<Card>deck=new ArrayList<>();
/*
  • Constructeur d'un paquet vide dans une classe mere dont heriteront d'autres classes chargees , soit de creer un paquet ou de recevoir des cartes avec des conditions.
  • /

protected Deck()
{
this.deck=new ArrayList<Card>();
}

2 réponses

NHenry Messages postés 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 343
17 mai 2021 à 10:54
A la place d'utiliser des while, je te conseil plutôt d'utiliser des boucles for leur syntaxe est plus adaptée à ce que tu fais.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
17 mai 2021 à 13:00
Bonjour,

Je dirais que dans
decks[j].deck.get(j)
il devrait y avoir un i et un j, mais pas deux j...
0