• 大小: 16KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: AI  人工智能  java  

资源简介

这是一个爱因斯坦博弈棋,已经实现了人工智能,还有点缺陷,没有做界面,

资源截图

代码片段和文件信息

import java.util.*;
class STONE
{
public int Position = -1;
public boolean IsExist = false;
public int Distance = 0;
}

public class Einstein
{
final int DISTANCE[] = 
{
44444
43333
43222
43211
43210
};
public Random random;
public int Board[];
public STONE Stone[];

Einstein()
{
Board = new int[25];
Stone = new STONE[13];
random = new Random();
for(int i=0;i<13;i++)
{
Stone[i] = new STONE();
}
InitBoard();
Init();
}

void InitBoard()
{

int i=0;
int cn[] = {123456};
int hn[] = {123456};
int cPos[] = {0 1 2 5 6 10};
int hPos[] = {14 18 19 22 23 24};

for(i=0; i<25; i++)
{
Board[i] = 0;
}

i = 0;
//初始化电脑方棋盘
int Rand = random.nextInt(6);

while (i<6)
{
if (cn[Rand] != 0)
{
Board[cPos[i]] = cn[Rand];
cn[Rand] = 0;
i++;
}
Rand = random.nextInt(6);
}
//初始化玩家方棋盘
Rand = random.nextInt(6);
i=0;
while (i<6)
{
if (hn[Rand] != 0)
{
Board[hPos[i]] = hn[Rand]+6;
hn[Rand] = 0;
i++;
}
Rand = random.nextInt(6);
}
}

public void Print()
{
for(int i=0;i<25;i++)
{
if(Board[i]!=0)
{
if(Board[i]<7)
{
System.out.print(“ --B“+Board[i]+“-- “);
}
else
{
System.out.print(“ --G“+(Board[i]-6)+“-- “);
}
}
else
{
System.out.print(“ ------ “);
}
if((i+1)%5==0)
{
System.out.println();
}
}
System.out.println();
}

public void GetBoard(int[] board)
{
for(int i=0;i<25;i++)
{
Board[i] = board[i];
}
Init();
}

public int[] SetBoard()
{
return Board;
}

public void Init()
{
for (int i=0; i<25; i++)
{
Stone[Board[i]].Position = i;
Stone[Board[i]].IsExist = Board[i]>0?true:false;
Stone[Board[i]].Distance = Board[i]<7 ? DISTANCE[i]:DISTANCE[24-i];
}
}

public int GetBlueDice()
{
return random.nextInt(6*100000)%6 +1;
}

public int GetGreenDice()
{
return random.nextInt(6*100000)%6 + 7;
}

public boolean IsBlueWin()
{
return ( (Board[24] < 7 && Board[24] >0) 
 || (!Stone[7].IsExist && !Stone[8].IsExist 
 && !Stone[9].IsExist && !Stone[10].IsExist 
   && !Stone[11].IsExist && !Stone[12].IsExist) );
}

public boolean IsGreenWin()
{
return ( (Board[0] > 6) 
 || (!Stone[1].IsExist && !Stone[2].IsExist 
 && !Stone[3].IsExist && !Stone[4].IsExist 
   && !Stone[5].IsExist && !Stone[6].IsExist) );
}

public boolean IsBlueVaild(int Diceint moveFromint moveTo)
{
int m = Dice;

if( moveTo > 24 || moveFrom < 0 )
return false;
//查找大于或等于骰子数Dice的第一个骰子
while(m<7 && !Stone[m].IsExist)
{
m++;
}

if(Stone[m].Position == moveFrom)
{
if(moveFrom >19 && moveFrom < 25)
{
return moveTo == moveFrom+1;
}
else if((moveFrom+1)%5 == 0)
{
return 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4870  2014-05-23 22:13  Einstein-1\Einstein.class

     文件       7672  2014-03-26 12:27  Einstein-1\Einstein.java

     文件       1071  2014-05-23 22:13  Einstein-1\GameThread.class

     文件        661  2014-03-26 11:17  Einstein-1\GameThread.java

     文件       8161  2014-05-23 22:13  Einstein-1\McSearch.class

     文件      13891  2014-03-26 12:13  Einstein-1\McSearch.java

     文件        222  2014-05-23 22:13  Einstein-1\MoveList.class

     文件        313  2014-05-23 22:13  Einstein-1\MoveListAndCount.class

     文件        308  2014-05-23 22:13  Einstein-1\STONE.class

     文件        297  2014-05-23 22:13  Einstein-1\Sum.class

     文件       4204  2014-07-10 14:15  Einstein-1\Windows.class

     文件       4587  2014-07-10 14:15  Einstein-1\Windows.java

     文件       4674  2014-07-10 14:14  Einstein-1\Windows.java.bak

     目录          0  2014-12-30 23:24  Einstein-1

----------- ---------  ---------- -----  ----

                50931                    14


评论

共有 条评论