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.
101 lines
2.4 KiB
101 lines
2.4 KiB
/*
|
|
* card.h - header file for card functions for Freecell Solver
|
|
*
|
|
* Written by Shlomi Fish (shlomif@vipe.technion.ac.il), 2000
|
|
*
|
|
* This file is in the public domain (it's uncopyrighted).
|
|
*/
|
|
|
|
|
|
#ifndef FC_SOLVE__CARD_H
|
|
#define FC_SOLVE__CARD_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef FC_SOLVE__STATE_H
|
|
#include "state.h"
|
|
#endif
|
|
|
|
/*
|
|
* This function converts an entire card from its string representations
|
|
* (e.g: "AH", "KS", "8D"), to a fcs_card_t data type.
|
|
* */
|
|
extern fcs_card_t freecell_solver_card_user2perl(const char * str);
|
|
#define fcs_card_user2perl(str) (freecell_solver_card_user2perl(str))
|
|
|
|
|
|
|
|
/*
|
|
* Convert an entire card to its user representation.
|
|
*
|
|
* */
|
|
extern char * freecell_solver_card_perl2user(
|
|
fcs_card_t card,
|
|
char * str,
|
|
int t
|
|
);
|
|
|
|
#define fcs_card_perl2user(card,str,t) (freecell_solver_card_perl2user((card),(str),(t)))
|
|
|
|
|
|
|
|
/*
|
|
* Converts a card_number from its internal representation to a string.
|
|
*
|
|
* num - the card number
|
|
* str - the string to output to.
|
|
* card_num_is_null - a pointer to a bool that indicates whether
|
|
* the card number is out of range or equal to zero
|
|
* t - whether 10 should be printed as T or not.
|
|
* */
|
|
extern char * freecell_solver_p2u_card_number(
|
|
int num,
|
|
char * str,
|
|
int * card_num_is_null,
|
|
int t,
|
|
int flipped
|
|
);
|
|
|
|
#define fcs_p2u_card_number(num,str,card_num_is_null,t,flipped) \
|
|
(freecell_solver_p2u_card_number((num),(str),(card_num_is_null),(t),(flipped)))
|
|
|
|
/*
|
|
* Converts a suit to its user representation.
|
|
*
|
|
* */
|
|
char * freecell_solver_p2u_suit(
|
|
int suit,
|
|
char * str,
|
|
int card_num_is_null,
|
|
int flipped
|
|
);
|
|
|
|
#define fcs_p2u_suit(suit,str,card_num_is_null,flipped) \
|
|
(freecell_solver_p2u_suit((suit),(str),(card_num_is_null),(flipped)))
|
|
|
|
/*
|
|
* This function converts a card number from its user representation
|
|
* (e.g: "A", "K", "9") to its card number that can be used by
|
|
* the program.
|
|
* */
|
|
extern int freecell_solver_u2p_card_number(const char * string);
|
|
#define fcs_u2p_card_number(string) (freecell_solver_u2p_card_number(string))
|
|
|
|
/*
|
|
* This function converts a string containing a suit letter (that is
|
|
* one of H,S,D,C) into its suit ID.
|
|
*
|
|
* The suit letter may come somewhat after the beginning of the string.
|
|
*
|
|
* */
|
|
extern int freecell_solver_u2p_suit(const char * deck);
|
|
#define fcs_u2p_suit(deck) (freecell_solver_u2p_suit(deck))
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* FC_SOLVE__CARD_H */
|