【正文】
iagonal winning status. for ( i = 0。 i 6。 i++ ) for ( int j = 9。 j 3。 j ) { for ( int k = 0。 k 5。 k++ ) { bArrPlayerWin[ j k ][ i + k ][ nCount ] = TRUE。 bArrComWin[ j k ][ i + k ][ nCount ] = TRUE。 } nCount++。 } // Negative diagonal has 36 winning status. assert( nCount == 192 )。 // Who is the first ? if ( rand() % 2 == 0 ) bPlayerDo = TRUE。 else bComputerDo = TRUE。} 第二步,電腦計(jì)算玩家下棋狀態(tài)采取進(jìn)攻或防守的策略,這是五子棋的關(guān)鍵所在,這兒給出實(shí)現(xiàn)的偽代碼. // 計(jì)算玩家的狀態(tài). for ( int i = 0。 i 10。 i++ ) for ( int j = 0。 j 10。 j++ ) if ( nArrBoard[ i ][ j ] == NoBall ) { // 利用一個(gè)變量記錄該位置的分值. nArrPlayerGrades[ i ][ j ] = 0。 for ( int k = 0。 k 192。 k++ ) // 該位置是在獲勝的組合中. if ( bArrPlayerWin[ i ][ j ][ k ] ) switch( nArrWi