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

Aide Processing

europcar2
europcar2
Niveau 10
29 décembre 2020 à 22:44:14

Bonsoir, je créé dans le cadre de mes cours de développement un Puissance 4.
J'ai choisi d'utiliser Java pour ce faire.

Sauriez vous comment faire pour que quand le j1 joue le curseur de la souris soit rouge (ou remplacé par un rond rouge) et de même pour le j2 mais en jaune ?
Merci d'avance !

europcar2
europcar2
Niveau 10
30 décembre 2020 à 11:53:16

Personne ? C'est assez urgent :/

europcar2
europcar2
Niveau 10
30 décembre 2020 à 13:40:21

J'aimerais au moins trouver un moyen de faire comprendre aux joueurs à qui c'est de jouer, comme une simple phrase indiquant "C'est au tour de rouge" ou autre :-(

cybevil
cybevil
Niveau 27
30 décembre 2020 à 13:53:52

Tu fais ça avec javaFx ?

europcar2
europcar2
Niveau 10
30 décembre 2020 à 14:46:15

Quelle est la différence entre java et java fx ?

cybevil
cybevil
Niveau 27
30 décembre 2020 à 14:57:14

Java c'est un langage de programmation et javaFx c'est un framework java qui te permet de faire des interfaces graphiques.

Peux-tu montrer où en est ton projet, parce que j'ai du mal à bien comprendre ta question.

europcar2
europcar2
Niveau 10
30 décembre 2020 à 15:00:00

int w = 7, h = 6, bs = 100, joueur = 1;
int [] [] board = new int [h] [w] ;
void setup() {
size (700, 600); ellipseMode (CORNER);
}
int p(int y, int x) {
return (y<0||x<0||y>=h||x>=w)?0:board[y][x];
}
int getWinner() {//rows, columns, diagonals
for(int y=0;y<h;y++)for(int x=0;x<w;x++)
if(p(y,x)!=0&&p(y,x)==p(y,x+1)&&p(y,x)==p(y,x+2)&&p(y,x)==p(y,x+3)) return p(y,x) ;
for(int y=0;y<h;y++)for(int x=0;x<w;x++)
if(p(y,x)!=0&&p(y,x)==p(y+1,x)&&p(y,x)==p(y+2,x)&&p(y,x)==p(y+3,x)) return p(y,x) ;
for(int y=0;y<h;y++)for(int x=0;x<w;x++)for(int d=-1;d<=1;d+=2)
if(p(y,x)!=0&&p(y,x)==p (y+1*d,x+1)&&p(y,x)==p (y+2*d,x+2)&&p(y,x)==p(y+3*d,x+3)) return p(y,x);
for(int y=0;y<h;y++)for(int x=0;x<w;x++)if(p(y,x)==0) return 0;
return -1; //tie
}
int nextSpace (int x) {
for(int y=h-1;y>=0;y--) if (board[y][x]==0) return y;
return -1;
}
void mousePressed() {
int x = mouseX / bs, y = nextSpace(x) ;
if(y>=0) {
board [y][x] = joueur;
joueur = joueur==1?2:1;
}
}
void draw() {
if (getWinner()==0) {
for(int j=0;j<h;j++) for(int i=0;i<w;i++){
fill (0,0,300);
rect(i*bs, j*bs,bs,bs);
fill (255,255,255);
ellipse (i*bs,j*bs,bs,bs);
if(board[j][i]>0){
fill(board[j][i]==1?255:255, board[j][i]==2?255:0,0);
ellipse (i*bs,j*bs,bs,bs);
}
}
}else {
background(0,191,255); fill(0);text("Le gagnant est : "+getWinner()+". Appuyer sur espace pour relancer", width/2,height/2); textAlign(CENTER);
if(keyPressed&&key==' ') {
joueur=1; for (int y=0;y<h;y++) for (int x=0;x<w;x++) board [y][x]=0;

}
}
}

europcar2
europcar2
Niveau 10
30 décembre 2020 à 15:00:17

Voilà mon code jusqu'à présent

cybevil
cybevil
Niveau 27
30 décembre 2020 à 15:01:38

Mets ton code dans les balises <code></code>

Test
   Test

On s'y retrouvera mieux

europcar2
europcar2
Niveau 10
30 décembre 2020 à 15:05:09
int w = 7, h = 6, bs = 100, joueur = 1;
int [] [] board = new int [h] [w] ;
void setup() {
  size (700, 600); ellipseMode (CORNER);
}
int p(int y, int x) {
  return (y<0||x<0||y>=h||x>=w)?0:board[y][x];
}
int getWinner() {//rows, columns, diagonals
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)
    if(p(y,x)!=0&&p(y,x)==p(y,x+1)&&p(y,x)==p(y,x+2)&&p(y,x)==p(y,x+3)) return p(y,x) ;
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)
    if(p(y,x)!=0&&p(y,x)==p(y+1,x)&&p(y,x)==p(y+2,x)&&p(y,x)==p(y+3,x)) return p(y,x) ;
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)for(int d=-1;d<=1;d+=2)
    if(p(y,x)!=0&&p(y,x)==p (y+1*d,x+1)&&p(y,x)==p (y+2*d,x+2)&&p(y,x)==p(y+3*d,x+3)) return p(y,x);
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)if(p(y,x)==0) return 0;
  return -1; //tie
}
int nextSpace (int x) {
  for(int y=h-1;y>=0;y--) if (board[y][x]==0) return y;
  return -1;
}
void mousePressed() {
  int x = mouseX / bs, y = nextSpace(x) ;
  if(y>=0) {
    board [y][x] = joueur;
    joueur = joueur==1?2:1;
  }
}
void draw() {
    if (getWinner()==0) {
    for(int j=0;j<h;j++) for(int i=0;i<w;i++){
      fill (0,0,300);
      rect(i*bs, j*bs,bs,bs);
      fill (255,255,255);
      ellipse (i*bs,j*bs,bs,bs);
      if(board[j][i]>0){
        fill(board[j][i]==1?255:255, board[j][i]==2?255:0,0);
        ellipse (i*bs,j*bs,bs,bs);
      }
    }
    }else {
      background(0,191,255); fill(0);text("Le gagnant est : "+getWinner()+". Appuyer sur espace pour relancer", width/2,height/2); textAlign(CENTER);
      if(keyPressed&&key==' ') {
        joueur=1; for (int y=0;y<h;y++) for (int x=0;x<w;x++) board [y][x]=0;
        
       }
    }
}
cybevil
cybevil
Niveau 27
30 décembre 2020 à 15:25:19

Okkkk, je viens juste de faire le lien, tu fais pas du java là, tu fais du java avec processing (J'aurais du relire le titre).

Je vais regarder un peu, je reviens vers toi si personne ne t'as répondu d'ici là

europcar2
europcar2
Niveau 10
30 décembre 2020 à 15:48:36

D'accord merci ! :)

cybevil
cybevil
Niveau 27
30 décembre 2020 à 15:51:15

Ya surement moyen de changer la couleur du curseur en effaçant l'original et en le recréant dans ta fenêtre de la couleur souhaiter mais comme j'ai jamais utilisé processing et que j'ai pas vraiment le temps de m'y pencher plus.

Ici je t'ai rajouter le numéro du joueur en bas de l'écran.

Pour ça j'ai agrandi la fenêtre, j'ai refresh à chaque nouveau draw pour pas que joueur 1 se superpose à joueur 2
et j'ai écris le text avec :

textSize(32);
text((joueur==1)?"Joueur 1":"Joueur 2", 10, 635);
fill(0, 102, 153);

int w = 7, h = 6, bs = 100, joueur = 1;
int [] [] board = new int [h] [w] ;
void setup() {
  size (700, 650); ellipseMode (CORNER);
}
int p(int y, int x) {
  return (y<0||x<0||y>=h||x>=w)?0:board[y][x];
}
int getWinner() {//rows, columns, diagonals
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)
    if(p(y,x)!=0&&p(y,x)==p(y,x+1)&&p(y,x)==p(y,x+2)&&p(y,x)==p(y,x+3)) return p(y,x) ;
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)
    if(p(y,x)!=0&&p(y,x)==p(y+1,x)&&p(y,x)==p(y+2,x)&&p(y,x)==p(y+3,x)) return p(y,x) ;
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)for(int d=-1;d<=1;d+=2)
    if(p(y,x)!=0&&p(y,x)==p (y+1*d,x+1)&&p(y,x)==p (y+2*d,x+2)&&p(y,x)==p(y+3*d,x+3)) return p(y,x);
  for(int y=0;y<h;y++)for(int x=0;x<w;x++)if(p(y,x)==0) return 0;
  return -1; //tie
}
int nextSpace (int x) {
  for(int y=h-1;y>=0;y--) if (board[y][x]==0) return y;
  return -1;
}
void mousePressed() {
  int x = mouseX / bs, y = nextSpace(x) ;
  if(y>=0) {
    board [y][x] = joueur;
    joueur = joueur==1?2:1;
  }
}
void draw() {
    if (getWinner()==0) {
    background(0,191,255);
    for(int j=0;j<h;j++) for(int i=0;i<w;i++){
      fill (0,0,300);
      rect(i*bs, j*bs,bs,bs);
      fill (255,255,255);
      ellipse (i*bs,j*bs,bs,bs);
      if(board[j][i]>0){
        fill(board[j][i]==1?255:255, board[j][i]==2?255:0,0);
        ellipse (i*bs,j*bs,bs,bs);
      }
    }
    textSize(32);
    text((joueur==1)?"Joueur 1":"Joueur 2", 10, 635); 
    fill(0, 102, 153);
    }else {
      background(0,191,255); fill(0);text("Le gagnant est : "+getWinner()+". Appuyer sur espace pour relancer", width/2,height/2); textAlign(CENTER);
      if(keyPressed&&key==' ') {
        joueur=1; for (int y=0;y<h;y++) for (int x=0;x<w;x++) board [y][x]=0;
        
       }
    }
}
Message édité le 30 décembre 2020 à 15:52:09 par cybevil
cybevil
cybevil
Niveau 27
30 décembre 2020 à 15:56:33

Il semblerait qu'il y ai un bug au niveau de la taille de la police, ça doit pouvoir se réglé sans trop de difficulté, je te laisse chipoter un peu.

europcar2
europcar2
Niveau 10
30 décembre 2020 à 16:13:34

Problème de police résolu ! Merci beaucoup !
Par contre quand on relance une partie, le texte "Joueur 1" "Joueur 2" se décale un peu vers la gauche hors du cadre, est-ce normal ?

europcar2
europcar2
Niveau 10
30 décembre 2020 à 17:14:48

problème réglé finalement, merci!

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