CHDK_DE Vorschauversion  Trunk Rev. 5163
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
gui_mastermind.c-Dateireferenz
#include "camera_info.h"
#include "stdlib.h"
#include "keyboard.h"
#include "lang.h"
#include "conf.h"
#include "gui.h"
#include "gui_draw.h"
#include "gui_lang.h"
#include "gui_batt.h"
#include "gui_mbox.h"
#include "modes.h"
#include "module_def.h"
#include "simple_game.c"
+ Include-Abhängigkeitsdiagramm für gui_mastermind.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define BORDER   20
 
#define RECT_SIZE   10
 
#define COLOR_LIGHT_GRAY   MAKE_COLOR(COLOR_GREY_LT,COLOR_GREY_LT)
 
#define BK_COLOR   MAKE_COLOR(COLOR_GREY,COLOR_GREY)
 
#define TEXT_COLOR   MAKE_COLOR(COLOR_GREY,COLOR_BLACK)
 

Funktionen

void gui_game_menu_kbd_process ()
 
int gui_mastermind_kbd_process ()
 
void gui_mastermind_draw ()
 
static void guess_box (int pos, color col)
 
char WinQuary ()
 
char CanNext ()
 
void CreateColorCombo ()
 
int gui_mastermind_init ()
 
static void draw_box (color border)
 
static void end_game (int msg)
 
static void chg_box (int inc_box, int inc_val)
 
int basic_module_init ()
 

Variablen

gui_handler GUI_MODE_MASTERMIND
 
int curr_x
 
int curr_y
 
int answer [4]
 
char colors [6]
 
int curr_color [4]
 
int GameGo
 
static char buf [128]
 
ModuleInfo _module_info
 

Makro-Dokumentation

#define BK_COLOR   MAKE_COLOR(COLOR_GREY,COLOR_GREY)

Definiert in Zeile 25 der Datei gui_mastermind.c.

#define BORDER   20

Definiert in Zeile 22 der Datei gui_mastermind.c.

#define COLOR_LIGHT_GRAY   MAKE_COLOR(COLOR_GREY_LT,COLOR_GREY_LT)

Definiert in Zeile 24 der Datei gui_mastermind.c.

#define RECT_SIZE   10

Definiert in Zeile 23 der Datei gui_mastermind.c.

#define TEXT_COLOR   MAKE_COLOR(COLOR_GREY,COLOR_BLACK)

Definiert in Zeile 26 der Datei gui_mastermind.c.

Dokumentation der Funktionen

int basic_module_init ( )

Definiert in Zeile 246 der Datei gui_mastermind.c.

246  {
247  colors[0] = COLOR_RED;
248  colors[1] = COLOR_GREEN;
249  colors[2] = COLOR_BLUE;
250  colors[3] = COLOR_YELLOW;
251  colors[4] = COLOR_WHITE;
252  colors[5] = COLOR_BLACK;
253 
254  return gui_mastermind_init();
255 }
char CanNext ( )

Definiert in Zeile 82 der Datei gui_mastermind.c.

82  {
83  if (curr_color[0]==99 || curr_color[1]==99 || curr_color[2]==99 || curr_color[3]==99)
84  return 0;
85  else if (curr_color[0]==curr_color[1] || curr_color[0]==curr_color[2] || curr_color[0]==curr_color[3] ||
87  {
89  return 0;
90  }
91  return 1;
92 }
static void chg_box ( int  inc_box,
int  inc_val 
)
static

Definiert in Zeile 166 der Datei gui_mastermind.c.

167 {
169  curr_x = (curr_x + inc_box) & 3;
170  if (curr_color[curr_x] == 99) curr_color[curr_x] = 0;
171  curr_color[curr_x] = (curr_color[curr_x] + inc_val);
172  if (curr_color[curr_x] < 0) curr_color[curr_x] = 5;
173  else if (curr_color[curr_x] > 5) curr_color[curr_x] = 0;
175 }
void CreateColorCombo ( )

Definiert in Zeile 94 der Datei gui_mastermind.c.

94  {
95  char tmp=0;
96  int i=0;
97 
98  for (i=0; i<4; i++) answer[i] = 99;
99  i = 0;
100  while (i<4)
101  {
102  tmp = rand() % 6;
103  if (answer[0]!=tmp && answer[1]!=tmp && answer[2]!=tmp && answer[3]!=tmp)
104  {
105  answer[i] = tmp;
106  i++;
107  }
108  }
109 }
static void draw_box ( color  border)
static

Definiert in Zeile 150 der Datei gui_mastermind.c.

static void end_game ( int  msg)
static

Definiert in Zeile 157 der Datei gui_mastermind.c.

158 {
159  int i;
161  for (i=0; i<4;i++)
164 }
static void guess_box ( int  pos,
color  col 
)
static

Definiert in Zeile 36 der Datei gui_mastermind.c.

37 {
38  draw_rectangle(camera_screen.disp_left+100+(pos*10), BORDER+(2*curr_y*10)+2+2*curr_y,
39  camera_screen.disp_left+100+(pos*10)+6, BORDER+(2*curr_y*10)+8+2*curr_y, MAKE_COLOR(col,col), RECT_BORDER0|DRAW_FILLED);
40 }
void gui_game_menu_kbd_process ( )

Definiert in Zeile 7 der Datei simple_game.c.

8 {
9  running = 0;
11 }
void gui_mastermind_draw ( )

Definiert in Zeile 234 der Datei gui_mastermind.c.

int gui_mastermind_init ( )

Definiert in Zeile 111 der Datei gui_mastermind.c.

111  {
112  int i,j;
113 
114  curr_x=0;
115  curr_y=7;
116 
118 
119  for (i=0;i<4;i++)
120  for (j=0;j<8;j++)
121  draw_rectangle(camera_screen.disp_left+BORDER+(2*i*10), BORDER+(2*j*10)+2*j,
123 
127 
128  for (i=0; i<6;i++)
130 
133 
136 
138 
142 
143  for(i=0;i<4;i++) curr_color[i]=99;
144 
146  return 1;
147 }
int gui_mastermind_kbd_process ( )

Definiert in Zeile 177 der Datei gui_mastermind.c.

177  {
178  int i=0;
179  rand();
180  long key = kbd_get_autoclicked_key();
181  if (key)
182  {
183  if (GameGo == 1)
184  {
186  switch (key)
187  {
188  case KEY_SET:
189  if(CanNext())
190  {
191  if(WinQuary() == 1)
192  {
194  }
195  else if(WinQuary() == 2)
196  {
198  }
199  else
200  {
202  for(i=0;i<4;i++) curr_color[i]=99;
203  curr_y--;
204  curr_x=0;
206  }
207  }
208  break;
209  case KEY_LEFT:
210  chg_box(-1,0);
211  break;
212  case KEY_RIGHT:
213  chg_box(1,0);
214  break;
215  case KEY_UP:
216  chg_box(0,1);
217  break;
218  case KEY_DOWN:
219  chg_box(0,-1);
220  break;
221  }
222  }
223  else if (key == KEY_SET)
224  {
228  GameGo=1;
229  }
230  }
231  return 0;
232 }
char WinQuary ( )

Definiert in Zeile 42 der Datei gui_mastermind.c.

42  {
43  char pos=0;
44  int i, j;
45 
46  for (i=0; i<4; i++)
47  {
48  if (answer[i] == curr_color[i])
49  {
51  pos++;
52  }
53  }
54 
55  if (pos == 4)
56  {
57  GameGo = 0;
58  return 1;
59  }
60 
61  for (i=0; i<4; i++)
62  {
63  for (j=0; j<4; j++)
64  {
65  if ((answer[i] == curr_color[j]) && (i != j))
66  {
68  pos++;
69  }
70  }
71  }
72 
73  if(curr_y==0)
74  {
75  GameGo = 0;
76  return 2;
77  }
78 
79  return 0;
80 }

Variablen-Dokumentation

int answer[4]

Definiert in Zeile 30 der Datei gui_mastermind.c.

char buf[128]
static

Definiert in Zeile 34 der Datei gui_mastermind.c.

char colors[6]

Definiert in Zeile 31 der Datei gui_mastermind.c.

int curr_color[4]

Definiert in Zeile 32 der Datei gui_mastermind.c.

int curr_x

Definiert in Zeile 28 der Datei gui_mastermind.c.

int curr_y

Definiert in Zeile 29 der Datei gui_mastermind.c.

int GameGo

Definiert in Zeile 33 der Datei gui_mastermind.c.