Aide jeu du taquin

328 views
Skip to first unread message

Jordan saadaoui

unread,
Apr 27, 2014, 10:56:30 AM4/27/14
to java...@googlegroups.com
Bonjour,
Tout d'abord, merci beaucoup de m'avoir répondu et de me proposer votre aide.
Alors voilà, élève en terminale S option ISN, j'ai un petit soucis avec mon jeu du taquin en Javascool sous la proglet codage pixel.
J'en suis au point ou je dois déplacer la case de l'image avec une autre ou bien inverser les pixels.
Je vois vois le principe mais je ne sais pas du tout comment faire.
Merci beaucoup.

( mon projet ainsi que l'image correspondante est en pièce jointe)
iceberg.jpg
PROJET.jvs

Thierry Vieville

unread,
Apr 28, 2014, 2:41:16 AM4/28/14
to java...@googlegroups.com, jorda...@hotmail.fr
Bonjour,
    Ok vous êtes pas loin, les briques du jeu sont bien en place, barvo. Je vous propose qq pistes:

  • prendre une image de 512 x 512 au lieu de 500x500 pour eviter toutes les erreurs d arrondi
  • alléger votre code de public void run() {} en remarquant que les 16 cases d'index num = 0  à 15 correspondent aux carrés d'abscisse
    •  posX = ((num % 4) * 500) / 4 et posY = ((num / 4) * 500 / 4
    • donc num = ((posX * 4)  / 500) + 4 * ((posY * 4) / 500)
      • ce qui simplifie carrément
  • alléger le code de copie de tableau
    •  en notant que
      int rgb[][][] = new int [500][500][3];   
    • puis plus loins
      for (int y = 0; y < 500; y ++) {
            for (int x = 0; x < 500; x ++) {
               for (int c = 0; c < 3; c ++) {
                  rgb[x][y][c] = getPixelColor(x, y)[c];
               }
            }
         }
    • fonctionne tres bien
  • utiliser une fonction qui copie une case dans une autre
    void copieCase(source, cible) {
       int posXsource = ((num % 4) * 500) / 4, posYsource = …etc....
       for (int y = 0; y < 500/4; y ++) {
          for (int x = 0; x < 500/4; x ++) {
                int x0 = posXcible + x, y0 = posYcible + y;
                setPixelColor(posXcible + x, posYcible +y, rgb[x0][y0][0], rgb[x0][y0][1], rgb[x0][y0][2]);
    }}}}
    • qui est probablement le code surlequel vous butez
    • enseuite ce sera tres facile d;appeler cette fnction de copiee au fil du jeu
  • considerer cette fonction pour melanger un tableau
    void
    melangerTableau(int t[]) {
        for (int i = 0; i < t.length; i++)
          t[i] = i;

       
    for (int i = 0; i < t.length; i++) {
  •         int r = (int) random(0, t.length);
            int tmp = t[i];
            t[i] = t[r];
            t[r] = tmp;
        }
    }
    • et discuter le temps deux calculs des deux solutions.

je pense que cela pourrait vous aider a vous remettre sur les rails

--

---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Java's Cool".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse javascool+...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Message has been deleted

joy...@gmail.com

unread,
Apr 29, 2014, 2:58:49 PM4/29/14
to java...@googlegroups.com, jorda...@hotmail.fr, thierry....@inria.fr

Bonjour,

Merci beaucoup de vos conseils, effectivement cela aide pour alléger le programme.
Par contre, en ce qui concerne le mélange de tableau, j'ai compris mais je ne vois pas comment l'utiliser pour mélanger les cases. C'est à dire qu'il me faudrai un tableau de cases ? Je ne vois pas du tout...
C'est un peu pareil pour le déplacement de cases j'ai encore du mal surtout que cela dépend de la random.
Merci !

(J'ai changer de mail).

Thierry Vieville

unread,
Apr 30, 2014, 2:59:09 AM4/30/14
to joy...@gmail.com, java...@googlegroups.com, jorda...@hotmail.fr

aie: vous me placez dans un role qui dépasse mes compétences: celui de professeur ISN, vraiment moi qui suis chercheur http://www-sop.inria.fr/members/Thierry.Vieville c'est mon plaisir de vous aider, vraiment; mais ce qu eje ne sais pas c'est vous aider à trouver par vous même, ça je sais pas.

    la solution ?

entrez en contact avec votre prof ISN et moi de rester comme personne ressource pour l'aider à vous aider.

Bien Cordialement.

joy...@gmail.com

unread,
Apr 30, 2014, 10:41:19 AM4/30/14
to java...@googlegroups.com, joy...@gmail.com, jorda...@hotmail.fr, thierry....@inria.fr

D'accord pas de soucis. Merci pour tout et bonne continuation =)

Cordialement.

luc...@hotmail.fr

unread,
Mar 13, 2017, 9:02:47 AM3/13/17
to Java's Cool, jorda...@hotmail.fr
Bonjours 
Serait il possible que vous nous donniez la partie que vous n'avez pas reussi a finir car nous somme dans la meme situation et nos profs ne nous sont pas d'une grande aide merci 



Thierry Vieville

unread,
Mar 13, 2017, 10:05:59 AM3/13/17
to java...@googlegroups.com, jorda...@hotmail.fr

 Bonjour,

    Je n ai pas compris votre question : vous voulez une solution tout faire pour jouer créer un jeu de taquin, voir faire un joueur algorithmique ? Quel intérêt alors de juste recopier une solution existante ?

Bien Cordialement.


On 03/13/2017 02:02 PM, luc...@hotmail.fr wrote:
Bonjours 
Serait il possible que vous nous donniez la partie que vous n'avez pas reussi a finir car nous somme dans la meme situation et nos profs ne nous sont pas d'une grande aide merci 



luc...@hotmail.fr

unread,
Mar 13, 2017, 11:18:58 AM3/13/17
to Java's Cool, jorda...@hotmail.fr
Notre problème est que nous n'arrivons pas a mettre en oeuvre le programme permettant de mélanger les pièces de façons aléatoire sachant que nous avons déjà diviser le tableau en 16 pièce tout en supprimant l'une d'elle pour pouvoir bouger les autres. Merci .


Thierry Vieville

unread,
Mar 13, 2017, 11:23:12 AM3/13/17
to java...@googlegroups.com, jorda...@hotmail.fr


    Partagez le code je vais regarder.


On 03/13/2017 04:18 PM, luc...@hotmail.fr wrote:
Notre problème est que nous n'arrivons pas a mettre en oeuvre le programme permettant de mélanger les pièces de façons aléatoire sachant que nous avons déjà diviser le tableau en 16 pièce tout en supprimant l'une d'elle pour pouvoir bouger les autres. Merci .


luc...@hotmail.fr

unread,
Mar 13, 2017, 1:43:15 PM3/13/17
to Java's Cool, jorda...@hotmail.fr
PROJET puzzle glissant -80072.jvs

Thierry Vieville

unread,
Mar 13, 2017, 3:16:29 PM3/13/17
to java...@googlegroups.com, jorda...@hotmail.fr

Bonsoir,

        Il me semble que votre mail ne comporte aucun fichier c'est-à-dire qu'il manque et l'image est votre code avait des erreurs de syntaxe mais bon je crois avoir compris votre problème vous faites un tirage  avec remise c'est-à-dire qu'il est possible que vous diriez de fois le même un texte alors que vous avez besoin d'un tirage sans remise c'est-à-dire de vérifier que l index n existe pas encore, Il y a donc une boucle de plus à rajouter au code si j'ai bien compris le problème

Bien Cordialement.

--

luc...@hotmail.fr

unread,
Mar 15, 2017, 5:04:24 PM3/15/17
to Java's Cool, jorda...@hotmail.fr
Bonsoir 

Merci pour vos précédent conseils .
Voici la fiche de consigne , l'image avec laquelle nous travaillions ainsi que le code  . 
elan-07714.png
PROJET puzzle glissant -80072-43332.jvs
Puzzle_glissant-69321.pdf

luc...@hotmail.fr

unread,
Mar 20, 2017, 8:36:14 AM3/20/17
to Java's Cool, jorda...@hotmail.fr
Bonjour
Je vous propose une de mes idées pour le mélange du jeux de taquin pourriez vous me dire si cela est bon et réalisable sur javascool .
Merci .
IMG_20170320_132327.jpg
IMG_20170320_132348.jpg

Thierry Vieville

unread,
Mar 20, 2017, 9:48:40 AM3/20/17
to java...@googlegroups.com, jorda...@hotmail.fr

 Ca me me semble aller ds la bonne direction : gd bravo

    de la solution

    de la methode : bien clarifier l algo avant de tester

super

Bien Cordialement.

luc...@hotmail.fr

unread,
Apr 25, 2017, 4:15:18 PM4/25/17
to Java's Cool, jorda...@hotmail.fr, Thierry....@inria.fr

Bonjour
Un ami m'a demander si vous pouviez nous dire si ce qu'il a écrit est exact.
De lui donner des piste pour écrire celui- ci sur javascool ou un exemple pour l'aide à le réaliser
Merci
img015.jpg

Thierry Vieville

unread,
Apr 26, 2017, 2:38:53 AM4/26/17
to luc...@hotmail.fr, Java's Cool, jorda...@hotmail.fr
Bonjour,

Il me semble que vous souhaitez déplacer aléatoirement la case
vide, bien entendu dans une case valide donc qui touche la case vide, si
la case vide est à la position horizontale et verticale (h, v) les
quatre cases possibles (h', v') sont celles avec + ou - 1 sur h ou v, à
condition que ce ne soit pas un bord
ou un coin, pour un nombre entre 0 et 3
h' = h + (n < 2 ? n + 1 : 0);
v' = v + (2 <= n ? n - 1 : 0);
est la position d'une des quatre, donc tirer un nombre n aleatoire entre
0 et 3 et calculer les nouvelles valeurs de h' et v' devrait marcher
bien entendu en gerant les bords par exemple
h' = h' < 0 ? 0 : H <= h' ? H - 1 : h';
qui recalcule h' pour ne bien rester entre 0 et H - 1 les valeurs
possibles de la position hoizontale.

Je vous laisse bien enendu faire le code javascool.

Bien Cordialement.

nicolas...@gmail.com

unread,
Apr 30, 2017, 8:30:32 AM4/30/17
to Java's Cool, jorda...@hotmail.fr, luc...@hotmail.fr

Bonjour, étant aussi en ISN et préparant le projet je voudrais savoir si le dernier code que vous avez partagé marchait chez vous car de mon côté il ne comprend pas le void carre et le void melangerTableau.
Merci 

Thierry Vieville

unread,
Apr 30, 2017, 8:46:17 AM4/30/17
to java...@googlegroups.com, nicolas...@gmail.com, jorda...@hotmail.fr, luc...@hotmail.fr

Bonjour

Ah non non je ne donnais qu une piste .. a vous d écrire ces codes !


i+

--

luc...@hotmail.fr

unread,
May 17, 2017, 9:38:35 AM5/17/17
to Java's Cool, jorda...@hotmail.fr
Bonjour
   Nous avons un petit soucis .
   Notre programme pour ce jeux et quasiment fini et il ne nous manque plus qu'a melanger les casses .
   Mais le problème est que nous n’arrivons pas a retranscrire l'image ci-jointe de ce programme en language Java's Cool.
   Pourriez vous nous aider .
   merci 
   Cordialement  
 
img016.jpg

ar...@laposte.net

unread,
May 21, 2017, 2:58:05 PM5/21/17
to Java's Cool
Bonsoir.Est ce que quelqu'un pourrait mettre un programme du taquin sur javascool terminé cela aiderait beaucoup.
Merci

flo3...@gmail.com

unread,
Mar 3, 2018, 5:27:48 AM3/3/18
to Java's Cool

Bonjour,
Je suis en terminale ISN et notre projet se rapproche beaucoup du jeu du taquin: il s'agit simplement de mélanger une image(puzzle) et non de devoir la reconstitué. Nous avons réussi le code seulement nous n'arrivons pas à faire afficher l'image mélangée.
Pourriez-vous s'il vous plaît nous préter main forte, merci d'avance.

Thierry Vieville

unread,
Mar 3, 2018, 5:44:30 AM3/3/18
to java...@googlegroups.com, flo3...@gmail.com
    Bonjour envoyez moi votre code, je regarde.
Bien Cordialement

flo3...@gmail.com

unread,
Mar 3, 2018, 6:42:16 AM3/3/18
to Java's Cool

Je vous décris rapidement le principe:
Le but: Si l'image mesure moins de 250px par 250px on découpe l'image en 4 parties

la fonction extraction sert à extraire chaque partie de l'image d'un pixel à un autre.
mélange_image.jvs

flo3...@gmail.com

unread,
Mar 3, 2018, 6:47:20 AM3/3/18
to Java's Cool
Je continue: Si l'image mesure plus (ex:500px par 500px) alors on découpe l'image en 9 parties.
La fonction extraction sert à extraire chaque partie d'image d'un pixel a à un pixel b.
Les tableaux partie1_rouge, partie2_rouge.... servent à stocker la valeur des pixels de chaque parties d'images.
Nous n'avons pas de fonction "découpage" d'où la necessité de créer tous ces tableaux.
C'est la reconstitution de l'image mélangée qui nous pose problème.


Le dimanche 27 avril 2014 16:56:30 UTC+2, Jordan saadaoui a écrit :

Thierry Vieville

unread,
Mar 5, 2018, 2:01:03 AM3/5/18
to java...@googlegroups.com, flo3...@gmail.com
Bonjour j experimente ce souci dans votre code, vous avez un souci de depassement d indice de tableau (voir la version reformaete de votre code_, du coup le programme s arrete et n affiche rien
Devez vous implémenter ce qui est expliqué ici http://images.math.cnrs.fr/Mona-Lisa-au-photomaton.html ? A mon avis c est la dernoère solution et vous avez les inication sur cette page.

Bien Cordialement,


Compilation réussie !
9
166
166


-------------------
Erreur lors de l'exécution de la proglet
Erreur lors de l'utilisation d'un tableau, l'index utilisé (3) n'est pas valide.

========
Trace d'exécution du programme
l.9: extraction()
l.55: main()
l.1: run()

-------------------
--
test.jvs
Reply all
Reply to author
Forward
0 new messages