Partage
  • Partager sur Facebook
  • Partager sur Twitter

Equivalent en Java de ce code C++

Anonyme
    12 février 2012 à 14:19:11

    Bonjour,

    Je cherche l'équivalent en Java de ce code :

    char* table[] = {
    "000000000000000",
    "000000000000000",
    "000000000000000",
    "000000000000000",
    "100000000111110",
    "000000000000000",
    "000000000000000",
    "000000000000000",
    "003400022220022",
    "005600000000000",
    "005600000000000",
    "005600000000000",
    "777777777777777"};
    


    Mais ceci ne fonctionne pas :

    public static String table[][] = {
    		"000000000000000",
    		"000000000000000",
    		"000000000000000",
    		"000000000000000",
    		"100000000111110",
    		"000000000000000",
    		"000000000000000",
    		"000000000000000",
    		"003400022220022",
    		"005600000000000",
    		"005600000000000",
    		"005600000000000",
    		"777777777777777"};
    


    Pouvez-vous me dire ce qui ne va pas ?

    Merci,
    • Partager sur Facebook
    • Partager sur Twitter
      12 février 2012 à 15:05:35

      c'est le "public static" qui ne va pas :)
      • Partager sur Facebook
      • Partager sur Twitter
        12 février 2012 à 15:53:35

        et aussi le fais que tu déclares un tableau a deux dimension mais n'instancie qu'un tableau d'une seul dimension.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          12 février 2012 à 16:29:09

          Oui, mais le problème c'est que je devrais y accéder avec "table[5][14];" par exemple.

          En fait, j’essaie de suivre ce tutoriel, mais je convertis tout en Java (j'utilise Slick2D).

          Et manque de bol, je suis bloquer à la toute première ligne de code (en ne prenant pas compte des #DEFINE et des #include).
          • Partager sur Facebook
          • Partager sur Twitter
            12 février 2012 à 17:14:35

            Tu peux faire comme ca :

            static public String table[][] = {
            		{"0","0","0","0","0","0","0","0","0","0","0","0","0"},
            		{"0","0","0","0","0","0","0","0","0","0","0","0","0"},
            		{"0","0","0","0","0","0","0","0","0","0","0","0","0"}
            	};
            


            Ou plus propre tu lit la map depuis un fichier, et tu remplis ton tableau avec deux boucles for.
            • Partager sur Facebook
            • Partager sur Twitter
              12 février 2012 à 17:48:58

              Citation : holosmos

              c'est le "public static" qui ne va pas :)


              N'importe quoi.

              Ta structure en C++ est en réalité un tableau à une dimension de chaînes de caractères. Que tu as transformé en tableau à deux dimensions de chaînes de caractères en Java, du coup ben... ça marche pas !
              PS : Explications : en Java, une chaîne de caractères n'est pas un tableau de char.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                12 février 2012 à 19:10:37

                Citation : SpaceFox


                PS : Explications : en Java, une chaîne de caractères n'est pas un tableau de char.



                techniquement si, mais la réelle différence est qu'on ne peut pas accéder directement à la mémoire en java, donc forcément char* et (java) char[] ne fonctionnent pas de la même manière pour l'accès aux données(en fait on a même pas l'assurance qu'en java [] va stocker les données consécutivement en mémoire, faudrait vérifier dans les spec de la JVM utilisée.

                Mais bon c'est un détail, son problème c'est qu'il déclare un String[][] au lieu d'un String[], c'est tout.
                • Partager sur Facebook
                • Partager sur Twitter
                  13 février 2012 à 9:25:49

                  Les #define sont tout simplement des variables qui ne peuvent jamais être modifiés à part au moment de l'initialisation. En java, tu peux faire :
                  final int LARGEUR_TILE = 24;
                  final int HAUTEUR_TILE = 16;
                  


                  P.S : Et si tu veux des conseils sur le maniement des tilesets avec Slick (ou même Slick en général), MP moi. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Equivalent en Java de ce code C++

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown