You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/kpat/freecell-solver/fcs_isa.h

57 lines
1.8 KiB

#ifndef FC_SOLVE__FCS_ISA_H
#define FC_SOLVE__FCS_ISA_H
#ifdef __cplusplus
extern "C" {
#endif
#include "state.h"
#include "fcs.h"
extern void freecell_solver_state_ia_init(freecell_solver_hard_thread_t * hard_thread);
#if 0
extern fcs_state_with_locations_t * fcs_state_ia_alloc(freecell_solver_instance_t * instance);
#else
#define fcs_state_ia_alloc_into_var(ret, instance) \
{ \
if ((instance)->num_states_in_last_pack == (instance)->state_pack_len) \
{ \
if (instance->num_state_packs == instance->max_num_state_packs) \
{ \
instance->max_num_state_packs += IA_STATE_PACKS_GROW_BY; \
instance->state_packs = (fcs_state_with_locations_t * *)realloc(instance->state_packs, sizeof(fcs_state_with_locations_t *) * instance->max_num_state_packs); \
} \
instance->state_packs[instance->num_state_packs] = malloc(instance->state_pack_len * sizeof(fcs_state_with_locations_t)); \
instance->num_state_packs++; \
instance->num_states_in_last_pack = 0; \
} \
ret = &(instance->state_packs[instance->num_state_packs-1][instance->num_states_in_last_pack++]); \
}
#endif
#if 0
extern void fcs_state_ia_release(freecell_solver_instance_t * instance);
#else
#define fcs_state_ia_release(instance) \
{ \
(instance)->num_states_in_last_pack--; \
}
#endif
extern void freecell_solver_state_ia_finish(freecell_solver_hard_thread_t * hard_thread);
extern void freecell_solver_state_ia_foreach(
freecell_solver_hard_thread_t * hard_thread,
void (*ptr_function)(fcs_state_with_locations_t *, void *),
void * context
);
#ifdef __cplusplus
}
#endif
#endif