#ifndef KARD_H
#define KARD_H
///////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <conio.h>
#include <sys/timeb.h>
#include <assert.h>
#include <limits.h>
#if INT_MAX==32767
#define MS_DOS_REAL_MOVE // comment this line
#endif
#if (_MSC_VER > 1200)
#define kbhit _kbhit
#define getch _getch
#define getche _getche
// #define sscanf sscanf_s
// #define sprintf sprintf_s
#endif
enum Status{END_GAME=0, ZAHOD_COMP =1, OTBOY_COMP =2,
ZAHOD_PLAYER=3, OTBOY_PLAYER=4};
enum Side{PLAYER,COMP,NOSIDE};
enum Mast{CHERVY,BUBY,KRESTY,PIKI}; //масть карты
enum Dost{K_6,K_7,K_8,K_9,K_10,K_J,K_D,K_K,K_T}; //достоинство карты
enum GameResult{DRAW=1, WINE=1000, LOSE=-1000};
#define NOKARD -1
#define NOMAST -1
#define KEY_EXIT 100 //user input
#define KEY_GO 101 //user input
#define dost(k) (k%9) // return 0..8, '6'..'tuz'
#define mast(k) (k/9) // return 0..3, 'chervy'..'piki'
extern char *dost_str[];
extern char *mast_str[];
struct Dec{
int v[36],cnt;
};
struct Game{
struct Dec player, comp, koloda, igra,
koleso_fortuny;
struct Dec *p[2];
int kozyr;
enum Status game_state;
enum GameResult result[2];
int is_load;
int cnt_list_player_kard;
};
#define GAME_FILE_NAME "gamelst.dat"
#define MSG_HOD "Pick the kard or press Enter('q'-exit)"
//"Enter the card number (0..31) or key-ENTER(retreat) or 'q' to quit"
#define MSG_LEFT "Do you want pass kard left?"
//"Do you want pass kard left? Card number (0..31) or key-ENTER"
//функции - предварительное описание
int new_game(void); int show_pos(void); int delay(void);
int razdacha(void); int check_end(void); int user_input(const char msg[]); int
iq_can_move_left(int kard,int side);
int shiftleft(struct Dec* x,int min,int max); int mics_dec(struct Dec *koloda);
int less_kard(struct Dec* z, int mast);int pick_kard(struct Dec *p, int kard);
int user_player_other_input(void); unsigned long gettickcount(void);
int run(void);
int find_kard(struct Dec *p, int kard); int find_dost(struct Dec *p, int dos);
int find_mast(struct Dec *p, int mast);
int is_kard_capture(int k0, int k1); char* kard_to_str(int kard,int N);
int clear_key_buf(void);int sort_kard(int v[], int sz);
enum Side getside(void);
enum Side opside(enum Side side);
int do_move(int k); int beru(void); int otboy(void);
int is_zahod(void); int proverka(void);
int get_first_kard_zahod_comp(int side);
int get_next_kard_zahod_comp(int side);
int end_game(void); int find_kard_otboy_comp(int k0,int side);
int get_first_kard_zahod_player(void);
int get_next_kard_zahod_player(void);
int find_kard_otboy_player(int kard0);
int zahod_player1(void); int otboy_player1(void);
int zahod_comp1(void); int otboy_comp1(void);
int save_game(void);
int load_game(void);
int get_other_kards_left_player(void);
int get_other_kards_left(void);
int compare_kard_order(int k0,int k1);
int get_other_kards_left_player_helper(void);
int get_cnt_starshih_kozyrey(int side);
int is_kards_bad(struct Dec *p);
int iq_check_zahod_kard_mid_game(int kard, int side);
int print_str_status(const char s[]);
int read_score(int c);
int Song(void); int Song1(void);
int show_game_result(void);
int get_koleso_fortuny();
////
//переменные игры
extern struct Game g, old_g;
extern int last_wine;
extern unsigned long diff; //задержка во времени в (1/18.2 sec)
extern int is_search; //? идет поиск
extern int is_text_mode;
////////////////
#endif
Комментариев нет:
Отправить комментарий