Пример #1
0
static void dungeon_generate_small_test(void)
{
    struct dungeon *dungeon = dungeon_alloc();

    dungeon_generate_small(dungeon);

    struct box box = dungeon_box_for_level(dungeon, 1);
    assert(box_equals(box, box_make(point_make(-7, 0, 1), size_make(16, 15, 1))));

    struct tile *tile = dungeon_tile_at(dungeon, point_make(0, 0, 1));
    assert(tile);
    assert(tile_type_stairs_up == tile->type);

    tile = dungeon_tile_at(dungeon, point_make(0, 1, 1));
    assert(tile);
    assert(tile_type_stairs_up == tile->type);

    tile = dungeon_tile_at(dungeon, point_make(0, 2, 1));
    assert(tile);
    assert(tile_type_empty == tile->type);

    tile = dungeon_tile_at(dungeon, point_make(-1, -8, 1));
    assert(tile);
    assert(tile_type_filled == tile->type);

    dungeon_free(dungeon);
}
Пример #2
0
static void
generate_sample_dungeon(struct rnd *rnd, FILE *out)
{
    struct dungeon *dungeon = dungeon_alloc();
    dungeon_generate_small(dungeon);
    print_dungeon(dungeon, out);
    dungeon_free(dungeon);
}
Пример #3
0
static void
generate_random_dungeon(struct rnd *rnd, FILE *out)
{
    struct dungeon *dungeon = dungeon_alloc();
    dungeon_generate(dungeon, rnd);
    print_dungeon(dungeon, out);
    dungeon_free(dungeon);
}
static void
generator_add_digger_test(void)
{
    struct dungeon *dungeon = dungeon_alloc();
    
    struct dungeon_options *dungeon_options = dungeon_options_alloc_default();
    struct generator *generator = generator_alloc(dungeon, global_rnd, dungeon_options, NULL, NULL);
    assert(0 == generator->diggers_count);
    
    struct digger *digger1 = generator_add_digger(generator,
                                                  point_make(1, 1, 1),
                                                  direction_north);
    assert(1 == generator->diggers_count);
    
    generator_delete_digger(generator, digger1);
    assert(0 == generator->diggers_count);

    digger1 = generator_add_digger(generator,
                                   point_make(1, 1, 1),
                                   direction_north);
    assert(1 == generator->diggers_count);

    struct digger *digger2 = generator_add_digger(generator,
                                                  point_make(2, 2, 2),
                                                  direction_north);
    assert(2 == generator->diggers_count);
    
    struct digger *digger3 = generator_add_digger(generator,
                                                  point_make(3, 3, 3),
                                                  direction_north);
    assert(3 == generator->diggers_count);
    
    generator_delete_digger(generator, digger2);
    assert(2 == generator->diggers_count);
    assert(digger1 == generator->diggers[0]);
    assert(digger3 == generator->diggers[1]);
    
    generator_delete_digger(generator, digger1);
    assert(1 == generator->diggers_count);
    assert(digger3 == generator->diggers[0]);
    
    generator_free(generator);
    dungeon_options_free(dungeon_options);
    dungeon_free(dungeon);
}