Mastermind
Számkitaláló játék
|
Ugrás a fájl dokumentációjához.
91 for (i = 0; i < N; ++i)
107 for (i = 0; i < N; ++i)
127 w =
weight(S, N, guess, r);
142 for (g = 1; g < N; ++g) {
154 int S[
N0], N, secret, i, k;
157 secret = rand() %
N0;
158 printf(
" %04d\n", secret);
159 printf(
" ------------\n");
163 for (i = 0; i <
N0; ++i)
167 time_t t0 = time(NULL);
169 double dt = difftime(time(NULL), t0);
171 N =
filter(S, N, guess, response);
175 printf(
"%3d: %04d | ", k, guess);
177 printf(
" %4d %5.2f\n", N, dt);
void digits(int a, int d[])
egész szám jegyeinek előállítása
int weight(int S[], int N, int guess, Response response)
tipp súlya egy adott válasz esetén
@ N0
összes lehetséges választás.
Response common_digits(int guess, int secret)
tipp és titkos szám közös jegyeinek meghatározása
int white
a fehér tüskék száma
@ NUM_PEGS
számjegyek száma
int isSameResponse(Response r1, Response r2)
két válasz megegyezik-e
int filter(int S[], int N, int guess, Response response)
Lehetséges megoldások halmazának szűrése tipp és válasz alapján.
int black
a fekete tüskék száma
int main(void)
a főprogram
int findBestGuess(int S[], int N)
legjobb tipp kikeresése az S halmazból
int worstWeightOfGuess(int S[], int N, int guess)
tipp maximális súlya minden lehetséges válasz esetére
void printResponse(Response r)
egy válasz kiírása a képernyőre