summaryrefslogtreecommitdiffstats
path: root/inc/mine-sweeper/player/clui.h
blob: df02a85b024972ff3f1630d9e9d3595aaffea6eb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/******************************************************************************
 *	Copyright (C) 2015	Alejandro Colomar Andrés		      *
 ******************************************************************************/


/******************************************************************************
 ******* include guard ********************************************************
 ******************************************************************************/
#ifndef MSW_PLAYER_CLUI_H
#define MSW_PLAYER_CLUI_H


/******************************************************************************
 ******* headers **************************************************************
 ******************************************************************************/
#include <stdio.h>

#include "mine-sweeper/game/iface.h"
#include "mine-sweeper/player/iface.h"


/******************************************************************************
 ******* enums ****************************************************************
 ******************************************************************************/
enum	Player_CLUI_Char {
	PLAYER_CLUI_CHAR_ERROR		= 'X',
	PLAYER_CLUI_CHAR_KBOOM		= '#',
	PLAYER_CLUI_CHAR_HIDDEN_FIELD	= '+',
	PLAYER_CLUI_CHAR_HIDDEN_MINE	= '*',
	PLAYER_CLUI_CHAR_HIDDEN_SAFE	= '-',
	PLAYER_CLUI_CHAR_SAFE_MINE	= 'v',
	PLAYER_CLUI_CHAR_0		= ' ',
	PLAYER_CLUI_CHAR_1		= '1',
	PLAYER_CLUI_CHAR_2		= '2',
	PLAYER_CLUI_CHAR_3		= '3',
	PLAYER_CLUI_CHAR_4		= '4',
	PLAYER_CLUI_CHAR_5		= '5',
	PLAYER_CLUI_CHAR_6		= '6',
	PLAYER_CLUI_CHAR_7		= '7',
	PLAYER_CLUI_CHAR_8		= '8',
	PLAYER_CLUI_CHAR_FLAG		= '!',
	PLAYER_CLUI_CHAR_FLAG_FALSE	= 'F',
	PLAYER_CLUI_CHAR_POSSIBLE	= '?',
	PLAYER_CLUI_CHAR_POSSIBLE_FALSE	= 'f'
};


/******************************************************************************
 ******* functions ************************************************************
 ******************************************************************************/
void	player_clui_start	(const struct Player_Iface_Position  *position,
				const char *title, const char *subtitle,
				int *action);

void	player_clui		(const struct Game_Iface_Out  *board,
				const struct Player_Iface_Position  *position,
				const char *title, const char *subtitle,
				int *action);

void	player_clui_save_name	(const char *fpath,
				char fname[static restrict FILENAME_MAX]);
void	player_clui_score_name	(char player_name[static restrict BUFSIZ]);


/******************************************************************************
 ******* include guard ********************************************************
 ******************************************************************************/
# endif			/* player_clui.h */


/******************************************************************************
 ******* end of file **********************************************************
 ******************************************************************************/