Beispiel #1
0
void
mirror_link (struct level *l, int room, enum dir dir0, enum dir dir1)
{
  int r0 = roomd (l, room, dir0);
  int r1 = roomd (l, room, dir1);
  link_room (l, room, r0, dir1);
  link_room (l, room, r1, dir0);
}
Beispiel #2
0
int		main(int ac, char **av)
{
  int		v;
  t_map		map;
  t_graph	**pile;

  if (ac != 2)
    return (1);
  if (load_map(&map, av[1]) == -1 ||
      create_graph(&map) == -1 ||
      link_room(&map) == -1)
    return (1);
  if ((pile = malloc(sizeof(t_graph *))) == NULL)
    return (1);
  *pile = NULL;
  if ((v = search_path(map.start, map.end, &pile)) == 0)
    {
      printf("No solution found\n");
      return (1);
    }
  else if (v == -1)
    return (2);
  set_path(map.end);
  show_map(&map);
  free(pile);
  free_all(&map);
  return (0);
}
Beispiel #3
0
int main(int argc, char* argv[])
{
    FILE* in = NULL;
    FILE* out = fopen("castle.out", "w");
    int i, j;
    if(argc == 2)
        in = fopen(argv[1], "r");
    else
        in = fopen("castle.in", "r");

    fscanf(in, "%d %d", &M, &N);

    init();

    for(i = 0; i < N; ++i)
        for(j = 0; j < M; ++j)
        {
            fscanf(in, "%d", &mods[i][j]);
        }

    printf("M: %d, N: %d\n", M, N);
    for(i = 0; i < N; ++i)
    {
        for(j = 0; j < M; ++j)
        {
            printf("%d ", mods[i][j]);
        }
        printf("\n");
    }
    
    count_room();
    link_room();
    merge();

    printf("\n");
    printf("%d\n%d\n%d\n%d %d %c\n", num_room
                         , max_size
                         , max_merge
                         , merge_room.r + 1, merge_room.c + 1, merge_room.wall);

    fprintf(out, "%d\n%d\n%d\n%d %d %c\n", num_room
                                         , max_size
                                         , max_merge
                                         , merge_room.r + 1, merge_room.c + 1, merge_room.wall);

    fclose(out);

    return 0;
}