int main() { play_score_init(); play_score(poireau); serial_init(); switchAllOnState(ON); musical_keyboard(); chenillard(); return 0; //EXIT_SUCCESS }
void ComputerScoring (int player) { int i; int best; int bestv; NumberOfRolls = 3; /* in case skipped middle */ BuildTable (player); best = 0; bestv = -99; for (i = NUM_FIELDS - 1; i >= 0; --i) { if (player % 2) { if (bc_table[i] > bestv) { best = i; bestv = bc_table[i]; } } else { if (bc_table[i] >= bestv) { best = i; bestv = bc_table[i]; } } if (DisplayComputerThoughts) { fprintf (stderr, "<<BEST>> %s : VALUE = %d\n", _(FieldLabels[best]), bc_table[best]); } } if (DisplayComputerThoughts) fprintf (stderr, "I choose category %d as best %d score name %s\n", best, bc_table[best], _(FieldLabels[best])); play_score (player, best); }
/*---------------------------------------------------------------------- * Calculate ways to play the word, given blanks used * blanks may be played in more than one place *----------------------------------------------------------------------*/ void consider_word(const char *bused) /* blanks used */ { if (bused[0] == '\0') { play.score = play_score(); nb_add(&play); /* remember if one of best */ }else{ char b = bused[0]; char *bpos; for (bpos=play.bword; (bpos=strchr(bpos, b)) != NULL; bpos++) { int i = bpos - play.bword; if (board[play.row][play.col+i] == EMPTY) { play.bword[i] = BLANK; consider_word(bused+1); play.bword[i] = b; /* replace character */ } } } }
gint RedoLastMove (void) { gint rval = (CurrentPlayer + 1) % NumberOfPlayers; if (RedoList) { gint ii; UndoScoreElement *elem = RedoList->data; for (ii = 0; ii < NUMBER_OF_DICE; ii++) { DiceValues[ii].val = elem->DiceValues[ii]; DiceValues[ii].sel = 0; } RedoList = g_list_remove (RedoList, elem); play_score (elem->player, elem->field); rval = (elem->player + 1) % NumberOfPlayers; g_free (elem); if (RedoList) { elem = RedoList->data; rval = elem->player; } } return rval; }