Grille pour mots croisés

vurten Messages postés 7 Statut Membre -  
vurten Messages postés 7 Statut Membre -
Bonjour,

Je cherche a faire une grille de mots croisés sur java qui fonctionne sur n x n dont n <= 4 et n >=12.

et que sa ajoute des numéros de colonnes et et de lignes. J ai juste un texte.

VMRUOFERRACI
IBEAUENPHARE
OLFRRNGULEOT
LALBATROSGUT
OSEIGRELLAPE
NSCTAENAILIL
CUHRNVATULEE
ERIALUGNAIRT
LARGOEEAEUNT
LNNELFECSGAU
ECOUPLETUIIO
REEERIAMMARG

ça doit s'ouvrir comme ça plus ou moins :

       1   2   3   4   5   6   7   8 
   -----------------------------------------
1  | V | A | E | N | E | C | B | T | 
   -----------------------------------------
2  | A | R | N | I | M | N | A | N | 
   -----------------------------------------
3  | U | E | T | A | M | O | T | E | 
   -----------------------------------------
4  | O | N | I | P | E | L | A | C | 
   -----------------------------------------
5  | B | I | E | N | F | A | I | T | 
   ------------------------------------------
6  | M | D | R | A | C | A | L | P | 
   ----------------------------------------
7  | A | C | E | E | V | I | L | O | 
   ----------------------------------------
8  | B | R | A | C | E | L | E | T | 
   ----------------------------------------

j ' ai juste réussi a faire ça avec une boucle for :

if ( jeu.length() == 255){

            String trouve4 = jeu.substring(0,73);
            String trouve5 = jeu.substring(74 , 245);
            String trouve6 = jeu.substring(246 , 255);

            for ( int i = 1 ; i < trouve4.length() ; i++){

                System.out.print (" | " +trouve4.charAt(i));

            }

ça fonctionne mais cela j ai pas arriver a ajouter les chiffres puis les
------
.

les mots ici sont juste a titre d exemple mais ca doit marche sur n>=4 et n <=12

On a le droit juste d utiliser la classe String et Math et System et scanner.

on doit pas utiliser les tableaux etc...

Merci bcp

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Je ne comprends pas dans ton code d'où viennent les valeurs 73, 74, 245, 246 et 255.
    Ce sont des nombres magiques, ça marche peut-être pour ton exemple, mais je doute que dans le cas général (n>=4 et n <=12) ça fonctionne.

    Remarque : à quoi ressemble ton texte de départ ? C'est un String ? Comment sont représentés les fins de lignes ?

    Une idée : si tu as un texte de taille n*n, il faut utiliser la racine carré (dans la classe Math) pour calculer n.
    Une fois que tu as n, tu peux afficher les chiffres avec une boucle for de 1 à n.
    0
    1. vurten Messages postés 7 Statut Membre
       
      Bonjour,


      mon texte est un string effectivement mais qui termine avec #.

      VMRUOFERRACI
      IBEAUENPHARE
      OLFRRNGULEOT
      LALBATROSGUT
      OSEIGRELLAPE
      NSCTAENAILIL
      CUHRNVATULEE
      ERIALUGNAIRT
      LARGOEEAEUNT
      LNNELFECSGAU
      ECOUPLETUIIO
      REEERIAMMARG
      #


      j'ai oublie de copier la bonne chose mais après les mots il y a un '#'

      j'ai juste pris la position du # pour travailler dessus.

      Alors le string que je veux mettre dans le tableau sera tout ce qui est écrit avant le #.

      puis les sauts de lignes, ils sont représentés par \n.


      for ( int i = 1 ; i < jeu.indexOf('#') ; i++){

      System.out.print (" | " +jeu.charAt(i));

      }


      merci
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > vurten Messages postés 7 Statut Membre
         
        Tu as essayé avec la racine carré comme je l'ai indiqué tout à l'heure ?

        Exemple :
        "ABCD\nEFGH\nIJKL\nMNOP\n#"

        Taille du String : 20, racine carré : 4, donc c'est un carré de 4 lignes et 4 colonnes.

        for (int i = 1 ; i <= n; i++)
            System.out.print("   " + i); //   1   2   3   4
        0
    2. vurten Messages postés 7 Statut Membre
       
      j ' essaie de l'incorporer mais jusqu’à date j' arrive pas a trouver la bonne place ou la mettre... pck sa désorganise tt mon tableau.... y a des chiffres un peu part... le problème ce n'est pas le haut du tableau mais a gauche... j ai essaye avec " i"
      "\ni"
      0