CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Mettre des objets dans mon tablea

Cartodie
Cartodie
Niveau 10
22 avril 2014 à 12:31:46

:salut:

Je suis en train de créer un RPG, avec mon groupe, que je code avec Jave sur Eclipse. Et ma partie consiste à faire l'inventaire du joueur.
Donc j'ai voulu faire ça sous forme de tableau et ça donne ça:
https://image.noelshack.com/fichiers/2014/17/1398162488-capture.png

Mais vous voyez que c'est des nombres, et moi j'aimerais avoir l'image des objets ou au moins le nom...
Mais je ne sais pas comment faire, donc j'ai vraiment besoin d'aide svp. :(

Le programme pour afficher ce tableau:

public int[] creerliste(int m) {
int[] liste= new int[m];

for (int i=0; i<m;i++) {
liste[i]=(int)(Math.random()*100);
}
return liste;
}

public void dessineliste(Graphics g,int liste[], int x, int y) {
g.drawRect(x, y, 30*n+70, 30);
for (int i=0;i<n;i++) {
g.drawString("Objets", x+10, y+20);
g.drawString(""+liste[i],x+78+i*30, y+20);
g.drawLine(x+i*30+70,y,x+i*30+70,y+30);
g.drawLine(x+i,y+30,x+i+360,y+30);
}
}

public void dessinecadre(Graphics g, int x, int y) {
g.drawRect(x, y, 30*n+70, 30);
for (int i=0;i<n;i++) {
g.drawString("Inventaire", x+10, y+20);
g.drawString(""+i,x+80+i*30, y+20);
g.drawLine(x+i*30+70,y,x+i*30+70,y+30);
}
}

dessinecadre(g,850,70);
dessineliste(g, tab, 850,100);

Merci d'avance pour vos réponses. :ok:

VivaFidel
VivaFidel
Niveau 10
22 avril 2014 à 13:21:40

Je te conseille plutôt de t'orienter vers une Map<String, Integer>

Arkwolf
Arkwolf
Niveau 29
22 avril 2014 à 13:22:16

bin tu fais une classe Objets par exemple, dans celle-ci tu mets le nom de l'objet, son image etc

et ensuite tu fais une liste d'Objets (de ta classe) au lieu de faire un tableau d'int

et si tu veux avoir le nombre d'items de chaque types tu peux éventuellement utiliser une hashmap

c'est assez vague ta question :(

Cartodie
Cartodie
Niveau 10
22 avril 2014 à 18:39:40

Mais comment faire une liste d'Objets ? :(

Gleuh
Gleuh
Niveau 10
22 avril 2014 à 19:01:23

Regarde du côté des ArrayList et tout et tout

shinigota
shinigota
Niveau 10
22 avril 2014 à 19:34:21

+1 pour les ArrayList, c'est en gros des tableaux mais plus évolués.
Les plus gros atouts, je dirais des Arrays c'est que :
La taille est illimitée
Tu peux mettre des objets dedans
T'as des méthodes pour les supprimer...

Pour faire un tableau tu fais :
int[] tableau= new int[taille];

Pour un array tu fais :
ArrayList<type> array = new ArrayList<type>();

Où type ça peut être Integer, ou dans ton cas ObjetInventaire...
après d'habitude pour parcourir un tableau tu fais :
for(int i = 0; i < tableau.length; i++){
...
}

Là il te faut un Iterator<type>
Et donc t'auras :

ArrayList<ObjetInventaire> array = new ArrayList<ObjetInventaire>();
Iterator<ObjetInventaire arrayIter = array.iterator();
ObjetInventaire objet;
while(arrayIter.hasNext())'
objet = arrayIter.next();

// là tu met ce que tu veux faire en utilisant la variable objet, qui prend en fait successivement les valeurs de l'array grâce à l'iterator
}

Voilà pour la petite explication rapide, j'espère que j'ai été compréhensible :hap:

Cartodie
Cartodie
Niveau 10
22 avril 2014 à 19:34:25

C'est quoi ça ? :rouge:

Cartodie
Cartodie
Niveau 10
22 avril 2014 à 19:36:52

Merci beaucoup Shinigota :ok:
Je te tiendrais au courant une fois que je l'aurai intégré à mon programme. :)

shinigota
shinigota
Niveau 10
22 avril 2014 à 19:37:27

while(arrayIter.hasNext()){
objet = arrayIter.next();

// là tu met ce que tu veux faire en utilisant la variable objet, qui prend en fait successivement les valeurs de l'array grâce à l'iterator
}

(J'ai oublié une accolade :hap: )

Et j'ai oublié de préciser, pour rajouter un objet dans l'array tu fais array.add(tonObjet, ou new Objet() ...);

Et c'est quoi ça ?
Des tableaux mais très pratique :hap:

Cartodie
Cartodie
Niveau 10
23 avril 2014 à 11:50:17

Merci, je vais essayer tour ça. :hap:

[-Shana-]
[-Shana-]
Niveau 10
23 avril 2014 à 12:26:11

Shinigota, tu te complique la vie avec l'iterator. Utilise les foreach

for(ObjetInventaire obj : array) {

// Do something with obj

}

:-)))

Cartodie
Cartodie
Niveau 10
23 avril 2014 à 17:35:42

Ca marche pas... :-(
https://image.noelshack.com/fichiers/2014/17/1398267292-capture2.png

Arkwolf
Arkwolf
Niveau 29
23 avril 2014 à 17:39:47

tu as sûrement importé le mauvais Iterator, regarde dans les imports que c'est pas javax.swing.text.html.HTMLDocument.Iterator qui est importé mais java.util.Iterator

Arkwolf
Arkwolf
Niveau 29
23 avril 2014 à 17:42:16

(et sinon je recommanderais les foreach comme shana l'a fait :hap:
et si tu veux utiliser des iterators manuellement dans éclipse t'as déjà des choses préécrites, si tu tapes for et ctrl+espace, tu peux choisir "iterate over collection" et ça t'écrira ça tout seul
for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
type type = (type) iterator.next();

}
ce qui revient à ton while(iterator.hasNext()) :hap: )

Cartodie
Cartodie
Niveau 10
23 avril 2014 à 18:04:42

C'est trop galère j'arrive pas. :snif:

Cartodie
Cartodie
Niveau 10
23 avril 2014 à 18:28:33

Je crois que je vais continuer avec mon tableau normal, mais merci quand même. :ok:
:dsl: mais j'y comprend vraiment rien..

Arkwolf
Arkwolf
Niveau 29
23 avril 2014 à 18:29:08

Après avoir un peu plus regardé ton screen :hap:

Ton code n'est même pas dans une fonction, ça peut pas marcher. :(
Pourquoi vouloir faire 2 boucles imbriquées ? :(
Ton code est illisible, il faut l'indenter (ctrl A et ctrl I, ou même ctrl shift F pour le formater complètement)

A mon avis il faudrait reprendre les bases du java :non:

Cartodie
Cartodie
Niveau 10
23 avril 2014 à 18:49:33

Oui je débute en Java. :noel:
Mais j'ai pas encore tous vu donc c'est un peu normal que je bute sur ce genre de code..

[-Shana-]
[-Shana-]
Niveau 10
23 avril 2014 à 18:56:08

J'avais même pas fais gaffe au fait qu'il ne soit pas dans une fonction ahah :rire: .

Yep, revois les bases du java, car là, tu n'arriveras à rien :non: .

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware