Problème avec android studio et le type for
Résolu
Thomix_1825
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème avec android studio et le type for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Android recovery - Guide
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Begone android - Accueil - Protection
- Emulateur pokemon android - Guide
3 réponses
Bonjour,
Il faudrait nous montrer le code de tout le fichier (en utilisant la balise < code java> du forum pour qu'on y comprenne quelque chose)
Mais là comme ça, j'ai l'impression que ton soucis est que ce code ne se trouve pas à l'intérieur d'une méthode ou du constructeur d'une classe.
Xavier
Il faudrait nous montrer le code de tout le fichier (en utilisant la balise < code java> du forum pour qu'on y comprenne quelque chose)
Mais là comme ça, j'ai l'impression que ton soucis est que ce code ne se trouve pas à l'intérieur d'une méthode ou du constructeur d'une classe.
Xavier
Ok Xavier merci,c'était pour ajouter une nouvelle carte ( 13 ) dans chaque pile,je code un genre de Solitaire.
Il se trouve à l'intérieur de la classe Game je pense.
Je t'envoie tout le code :
Il se trouve à l'intérieur de la classe Game je pense.
Je t'envoie tout le code :
package fr.succes.mysoliatire; import java.io.Serializable; import java.util.Vector; public class Game implements Serializable{ public static class Stack extends java.util.Stack<Card> {} public static class Deck extends java.util.Stack<Card> {} //Nota Bene : Stack<Card> = piles de cartes. public static final int STACK_COUNT = 4; public static final int DECK_COUNT = 7; public Stack [] stacks = new Stack[STACK_COUNT]; public Deck [] decks = new Deck[DECK_COUNT]; public Vector<Card> pioche = new Vector<>(); public Vector<Card> returnedPioche = new Vector(); for( int i=1;i <= 13;i ++) { pioche.add(new Card(Card.CardType.CARREAU,i)); pioche.add(new Card(Card.CardType.COEUR,i)); pioche.add(new Card(Card.CardType.PIQUE,i)); pioche.add(new Card(Card.CardType.TREFLE,i)); } for(int deckIndex = 0 ; deckIndex<DECK_COUNT;deckIndex++) { decks [ deckIndex] = new Deck(); for ( int cardIndex = 0;cardIndex < deckIndex+1; cardIndex++ ) { int position = (int) (Math.random() * pioche.size()); Card removedCard = pioche.elementAt( position ); pioche.removeElementAt( position); decks [deckIndex].push (removedCard); if (cardIndex == deckIndex ) removedCard.setReturned( true); } } for(int stackIndex = 0;stackIndex<STACK_COUNT;stackIndex ++) { stacks [stackIndex] = new Stack(); } }
C'est bien ce que je pensais : tes blocs "for" ne sont pas placés à l'intérieur de méthodes.
On ne met pas de code directement dans le corps de la classe, il faut définir un constructeur et des méthodes dans lesquels on place le code.
Le constructeur est appelé lorsqu'on crée une instance de l'objet en utilisant new Game().
Les méthodes peuvent être appelées au sein de l'objet, ou, si elles sont publiques, depuis n'importe quel autre endroit de ton code.
Ici je te mets le constructeur qui appellera une méthode privée pour chacune de tes boucles for.
Par exemple on pourrait faire ça :
(Je code surtout en C#, le Java ressemble beaucoup mais avec quelques nuances... J'espère ne pas avoir écrit de bêtise mais tu auras peut-être quelques ajustements à faire)
On ne met pas de code directement dans le corps de la classe, il faut définir un constructeur et des méthodes dans lesquels on place le code.
Le constructeur est appelé lorsqu'on crée une instance de l'objet en utilisant new Game().
Les méthodes peuvent être appelées au sein de l'objet, ou, si elles sont publiques, depuis n'importe quel autre endroit de ton code.
Ici je te mets le constructeur qui appellera une méthode privée pour chacune de tes boucles for.
Par exemple on pourrait faire ça :
package fr.succes.mysoliatire; import java.io.Serializable; import java.util.Vector; public class Game implements Serializable{ public static class Stack extends java.util.Stack<Card> {} public static class Deck extends java.util.Stack<Card> {} //Nota Bene : Stack<Card> = piles de cartes. public static final int STACK_COUNT = 4; public static final int DECK_COUNT = 7; public Stack [] stacks = new Stack[STACK_COUNT]; public Deck [] decks = new Deck[DECK_COUNT]; public Vector<Card> pioche = new Vector<>(); public Vector<Card> returnedPioche = new Vector(); public Game(){ createDeck(); shuffleDeck(); initializeStacks(); } private void createDeck(){ for( int i=1;i <= 13;i ++) { pioche.add(new Card(Card.CardType.CARREAU,i)); pioche.add(new Card(Card.CardType.COEUR,i)); pioche.add(new Card(Card.CardType.PIQUE,i)); pioche.add(new Card(Card.CardType.TREFLE,i)); } } private void shuffleDeck(){ for(int deckIndex = 0 ; deckIndex<DECK_COUNT;deckIndex++) { decks [ deckIndex] = new Deck(); for ( int cardIndex = 0;cardIndex < deckIndex+1; cardIndex++ ) { int position = (int) (Math.random() * pioche.size()); Card removedCard = pioche.elementAt( position ); pioche.removeElementAt( position); decks [deckIndex].push (removedCard); if (cardIndex == deckIndex ) removedCard.setReturned( true); } } } private void initializeStacks(){ for(int stackIndex = 0;stackIndex<STACK_COUNT;stackIndex ++) { stacks [stackIndex] = new Stack(); } } }
(Je code surtout en C#, le Java ressemble beaucoup mais avec quelques nuances... J'espère ne pas avoir écrit de bêtise mais tu auras peut-être quelques ajustements à faire)