瀏覽代碼

:sparkles: Ajout fonction map_size

Arthur Brandao 6 年之前
父節點
當前提交
c0d0250f58
共有 3 個文件被更改,包括 53 次插入1 次删除
  1. 24 0
      Serveur/game.c
  2. 11 0
      Serveur/game.h
  3. 18 1
      Serveur/test.c

+ 24 - 0
Serveur/game.c

@@ -57,6 +57,30 @@ JsonArray* list_game(){
     return ja;
 }
 
+int* map_size(char* map){
+    int* res;
+    res = malloc(sizeof(int) * 2);
+    res[WIDTH] = 0;
+    res[HEIGHT] = 1;
+    //Parcours la 1er ligne pour compter le nombre de caractère
+    while(*map != '\n' && *map != '\0'){
+        res[WIDTH]++;
+        map++;
+    }
+    if(*map == '\0'){
+        return res;
+    }
+    //Compte les lignes
+    map++;
+    while(*map != '\0'){
+        if(*map == '\n'){
+            res[HEIGHT]++;
+        }
+        map++;
+    }
+    return res;
+}
+
 /**
  * Associe une map à une game
  * @param Game* La game à associé à la map

+ 11 - 0
Serveur/game.h

@@ -13,6 +13,10 @@
 #include "player.h"
 #include "json.h"
 
+/* --- Constante --- */
+#define WIDTH 0
+#define HEIGHT 1
+
 /* --- Struct --- */
 typedef struct{
     char* name; //Nom
@@ -41,6 +45,13 @@ JsonArray* list_map();
  */
 JsonArray* list_game();
 
+/**
+ * Donne les dimension d'une carte
+ * @param char* La carte
+ * @return int* Tableau de resultat
+ */
+int* map_size(char*);
+
 /**
  * Associe une map à une game
  * @param Game* La game à associé à la map

+ 18 - 1
Serveur/test.c

@@ -8,6 +8,7 @@
 #include "bomberstudent_server.h"
 #include "client.h"
 #include "file.h"
+#include "game.h"
 
 /* --- Extern --- */
 extern Error error;
@@ -230,6 +231,21 @@ int array_parse(){
     return 1;
 }
 
+int size(){
+    char* content;
+    int* size;
+    
+    content = file_get_content("map/map1");
+    size = map_size(content);
+    printf("Width : %d\n", size[WIDTH]);
+    printf("Height : %d\n", size[HEIGHT]);
+    
+    free(content);
+    free(size);
+    
+    return 1;
+}
+
 int main(){
     //return parse();
     //return encode();
@@ -257,5 +273,6 @@ int main(){
     
     //return files();
     //return array_encode();
-    return array_parse();
+    //return array_parse();
+    return size();
 }