?? evalue.cs
字號:
?using System;
using System.Collections.Generic;
using System.Text;
namespace gobang
{
class Evalue
{
private int va(int i, int j)
{
if ((i >= 0) && (j >= 0) && (i < 15) && (j < 15))
return 1;
else return 0;
}
public int[] evalue(int[][] chess_board)
{
int[] test = new int[7];
int[] res = new int[2];
int maxvalue = -90000;
int maxi = 0;
int value;
{
for (int i = 0; i < 15; i++)
{
for (int j = 4; j < 15; j++)
if ((chess_board[i][j] != 2) && (chess_board[i][j - 1] != 2) && (chess_board[i][j - 2] != 2)
&& (chess_board[i][j - 3] != 2) && (chess_board[i][j - 4] != 2))
{
value = 0;
int k;
for (k = 0; k < 5; k++)
{
if (chess_board[i][j - k] == 1)
value++;
test[1 + k] = chess_board[i][j - k];
}
k = -1;
if (va(i, j - k) == 1)
test[1 + k] = chess_board[i][j - k];
else test[1 + k] = 2;
/* k=5;
if (va(i,j-k))
test[1+k]=chess_board[i][j-k];
else test[1+k]=2;
*/
if (value == 5)
value = 90000;
if (value == 4)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 1000;
}
if (value == 3)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 100;
}
if (value == 2)
{
if ((test[0] == 0) && (test[5] == 0))
value = 50;
else value = 10;
}
if (value == 1)
{
if ((test[0] == 0) && (test[5] == 0))
value = 3;
}
if (value == maxvalue)
maxi++;
if (value > maxvalue)
{
maxi = 1;
maxvalue = value;
// cout<<1<<endl;
// cout<<i<<' '<<j<<endl;
}
}
}
}
{
for (int i1 = 0; i1 < 15; i1++)
for (int j = 4; j < 15; j++)
if ((chess_board[j][i1] != 2) && (chess_board[j - 1][i1] != 2)
&& (chess_board[j - 2][i1] != 2) && (chess_board[j - 3][i1] != 2) && (chess_board[j - 4][i1] != 2))
{
value = 0;
int k;
for (k = 0; k < 5; k++)
{
if (chess_board[j - k][i1] == 1)
value++;
test[1 + k] = chess_board[j - k][i1];
}
k = -1;
if (va(j - k, i1) == 1)
test[1 + k] = chess_board[j - k][i1];
else test[1 + k] = 2;
/* k=5;
if (va(j-k,i1))
test[1+k]=chess_board[j-k][i1];
else test[1+k]=2;
*/
if (value == 5)
value = 90000;
if (value == 4)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 1000;
}
if (value == 3)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 100;
}
if (value == 2)
{
if ((test[0] == 0) && (test[5] == 0))
value = 50;
else value = 10;
}
if (value == 1)
{
if ((test[0] == 0) && (test[5] == 0))
value = 3;
}
if (value == maxvalue)
maxi++;
if (value > maxvalue)
{
maxi = 1;
maxvalue = value;
// cout<<2;
}
}
}
{
for (int j = 4; j < 15; j++)
for (int i2 = 0; i2 <= j - 4; i2++)
if ((chess_board[i2][j - i2] != 2) && (chess_board[i2 + 1][j - i2 - 1] != 2)
&& (chess_board[i2 + 2][j - i2 - 2] != 2) && (chess_board[i2 + 3][j - i2 - 3] != 2) && (chess_board[i2 + 4][j - i2 - 4] != 2))
{
value = 0;
int k;
for (k = 0; k < 5; k++)
{
if (chess_board[i2 + k][j - i2 - k] == 1)
value++;
test[1 + k] = chess_board[i2 + k][j - i2 - k];
}
k = -1;
if (va(i2 + k, j - i2 - k) == 1)
test[1 + k] = chess_board[i2 + k][j - i2 - k];
else test[1 + k] = 2;
/* k=5;
if (va(i2+k,j-i2-k))
test[1+k]=chess_board[i2+k][j-i2-k];
else test[1+k]=2;
*/
if (value == 5)
value = 90000;
if (value == 4)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 1000;
}
if (value == 3)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 100;
}
if (value == 2)
{
if ((test[0] == 0) && (test[5] == 0))
value = 50;
else value = 10;
}
if (value == 1)
{
if ((test[0] == 0) && (test[5] == 0))
value = 3;
}
if (value == maxvalue)
maxi++;
if (value > maxvalue)
{
maxi = 1;
maxvalue = value;
// cout<<3;
}
}
}
{
for (int i3 = 1; i3 <=10; i3++)
for (int j = 0; j <= 10 - i3; j++)
if ((chess_board[i3 + j][14 - j] != 2) && (chess_board[i3 + j + 1][13 - j] != 2)
&& (chess_board[i3 + j + 2][12 - j] != 2) && (chess_board[i3 + j + 3][11 - j] != 2) && (chess_board[i3 + j + 4][10 - j] != 2))
{
value = 0;
int k;
for (k = 0; k < 5; k++)
{
if (chess_board[i3 + j + k][14 - j - k] == 1)
value++;
test[1 + k] = chess_board[i3 + j + k][14 - j - k];
}
k = -1;
if (va(i3 + j + k, 14 - j - k) == 1)
test[1 + k] = chess_board[i3 + j + k][14 - j - k];
else test[1 + k] = 2;
/* k=5;
if (va(i3+j+k,14-j-k))
test[1+k]=chess_board[i3+j+k][14-j-k];
else test[1+k]=2;
*/
if (value == 5)
value = 90000;
if (value == 4)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 1000;
}
if (value == 3)
{
if ((test[0] == 0) && (test[5] == 0))
value = 5000;
else value = 100;
}
if (value == 2)
{
if ((test[0] == 0) && (test[5] == 0))
value = 50;
else value = 10;
}
if (value == 1)
{
if ((test[0] == 0) && (test[5] == 0))
value = 3;
}
if (value == maxvalue)
maxi++;
if (value > maxvalue)
{
maxi = 1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -