Esempio n. 1
0
void control_mode() // Режим управления
{
	LED_GREEN_ON;
	while (OFFHOOK)
	{
		if (!CONTROL)
			play_wav_auto_pgm(MAINMENU_WAV);
		while (!CONTROL && OFFHOOK) play_wav_auto_pgm(MAINMENU_WAV);
		if (CONTROL)
		{
			int cnt = count_disk();
			switch (cnt)
			{
				case 1:
					select_mode(0);
					break;
				case 2:
					select_mode(1);
					break;
				case 10:
					break;					
				default:
					play_record(record_num-(cnt-2));
					break;
			}
		}
	}
	LED_GREEN_OFF;
	_delay_ms(100); // Защита от дребезга контактов
}
Esempio n. 2
0
/* ゲーム終了局面の評価値を返す関数(勝ち:∞, 引き分け:0, 負け:−∞) */
int get_terminal_value(void)
{
	int mine, opp;
    
    // 数をカウント
    if (turn == BLACK)
        count_disk(&mine, &opp);
    else
        count_disk(&opp, &mine);
    
	if (mine > opp) // Win
		return INFINITY;
	else if (mine == opp) // DRAW
		return 0;
	else // if (diff < 0) // LOSE
		return -INFINITY;
}
Esempio n. 3
0
/* 結果を表示する関数 */
void show_result(void)
{
    int black, white;
    
    count_disk(&black, &white); // 数える
    
    printf("Result : Black %d, White %d\n", black, white);
    if (black == white)
        printf("Draw!!\n");
    else if (black > white)
        printf("Black Win!!\n");
    else
        printf("White Win!!\n");
}
Esempio n. 4
0
void select_mode(char istemp) // Выбот режима
{
	say_mode(istemp);
	while (!CONTROL && OFFHOOK) play_wav_auto_pgm(MODELIST_WAV);
	if (!CONTROL) return;
	int cnt = count_disk();
	if (cnt >= 10) cnt = 0;
	if (!istemp)
	{
		mode_current = cnt;
		say_mode(0);
	} else {
		mode_temp = cnt;
		say_mode(1);
	}
	save_mode();
}