ICE2012
16-09-2010, 00:45
Ciao a tutti mi sto studiando il sorgente di un tris k sfutta l'algoritmo minimax.... sono ancora al inizio ma non riesco a capire l'IF di riga 118 (vi posto il codice)
if(psble(i,j))
{
tris[i][j]='O';
t=valutamossa('X', 20);
printf("%d\n",t);
if(t>max)
{
max=t;
mi=i;
mj=j;
}
tris[i][j]=' ';
}
tris[mi][mj]='O';
con psble uguale a
int psble(int i, int j)
{
return tris[i][j]==' ';
}
qual'è la condizione di quell if (quello sottolineato)??
ho gia trovato un caso simile all insterno di questo sorgente ma la situazione era diversa (posto un esempio) :
if (funz(i))
{
......
......
}
.......
dove funz(i) terminava con un return 0 o un return 1
studiando il programma in debug ho dedotto che se la funzione restituiva 0 la condizione era falsa e quindi il programma continuava saltando le istruzioni del if....
viceversa se la funz restituiva 1 il programma eseguiva le istruzioni del blocco if....
è la stessa cosa con
if(psble(i,j))
????
spero di essere stato chiaro nel esprimere i miei dubbi :)
grazie mille a tutti in anticipo...
if(psble(i,j))
{
tris[i][j]='O';
t=valutamossa('X', 20);
printf("%d\n",t);
if(t>max)
{
max=t;
mi=i;
mj=j;
}
tris[i][j]=' ';
}
tris[mi][mj]='O';
con psble uguale a
int psble(int i, int j)
{
return tris[i][j]==' ';
}
qual'è la condizione di quell if (quello sottolineato)??
ho gia trovato un caso simile all insterno di questo sorgente ma la situazione era diversa (posto un esempio) :
if (funz(i))
{
......
......
}
.......
dove funz(i) terminava con un return 0 o un return 1
studiando il programma in debug ho dedotto che se la funzione restituiva 0 la condizione era falsa e quindi il programma continuava saltando le istruzioni del if....
viceversa se la funz restituiva 1 il programma eseguiva le istruzioni del blocco if....
è la stessa cosa con
if(psble(i,j))
????
spero di essere stato chiaro nel esprimere i miei dubbi :)
grazie mille a tutti in anticipo...