choice[1] = new JRadioButton("フ?", new ImageIcon(white));
for(int i=0; ichoice.length; i++)
{
choice_menu.add(choice[i]);
choice_group.add(choice[i]);
}
for(int i=0; icommand.length; i++)
{
command[i] =new JMenuItem(command_str[i]);
command[i].addActionListener(this);
control_menu.add(command[i]);
}
JButton select = new JButton("絋)");
JPanel select_menu = new JPanel();
select_menu.add(select);
select.addActionListener(this);
dialog.getContentPane().add(choice_menu, BorderLayout.NORTH);
dialog.getContentPane().add(select_menu, BorderLayout.CENTER);
setIconImage(title);
setResizable(false);
setSize(300, 335);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String[] arg)
{
Gobang application = new Gobang();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent event)
{
if( event.getSource().equals(command[0]) )
{
if(steps.size()!=0)
undo();
}
else if(event.getSource().equals(command[1]) )
Save();
else if(event.getSource().equals(command[2]) )
Load();
else if(event.getSource().equals(command[3]) )
ReStart();
else
{
if(choice[1].isSelected())
{
temp=white;
white=black;
black=temp;
}
dialog.dispose();
}
}
public void WinCheck()
{
check = turn? Player: AI;
direction=oblique_1;
WinCheck2();
}
public void WinCheck2()
{
count=1;
switch(direction)
{
case oblique_1: displace_x=1;
displace_y=-1;
direction=oblique_2;
break;
case oblique_2: displace_x=displace_y=1;
direction=horizontal;
break;
case horizontal: displace_x=1;
displace_y=0;
direction=vertical;
break;
case vertical: displace_x=0;
displace_y=1;
direction=nil;
break;
}
x=locX+displace_x;
y=locY+displace_y;
while(x=0xlengthy=0ylengthgrid[x][y]==check)
{
count=count+1;
x=x+displace_x;
y=y+displace_y;
}
x=locX-displace_x;
y=locY-displace_y;
while(x=0xlengthy=0ylengthgrid[x][y]==check)
{
count=count+1;
x=x-displace_x;
y=y-displace_y;
}
if(count=5)
{
game_state=End;
winner=check;
ThreadStart();
}
else if(direction!=nil)
WinCheck2();
}
public void ReStart()
{
for(int i=0; ilength; i++)
for(int j=0; jlength; j++)
grids[i][j].Initial();
winner=0;
steps.clear();
game_state=Playing;
}
public void gobangRandom()
{
displace_y=0;
do
{
displace_x=(int)(Math.random()*8);
x =locX+dir[displace_x][0];
y =locY+dir[displace_x][1];
if(!dir2[displace_x])
{
displace_y=displace_y+1;
dir2[displace_x]=true;
}
}while((x0 || x=length || y0 || y=length || grid[x][y]!=0)displace_y8);
for(int i=0; i8; i++)
dir2[i]=false;
if(x=0xlengthy=0ylengthgrid[x][y]==0)
setMark(x, y);
else
gobangRandom2();
}
private void gobangRandom2()
{
do
{
x=(int)(Math.random()*length);
y=(int)(Math.random()*length);
}while(grid[x][y]!=0);
setMark(x, y);
}
private void gobangAI()
{
boolean play=true;
for(int i=2; i0; i--)
{
play=!play;
gobangAI4(play);
if(turn)
return;
}
for(int i=7; i=4; i--)
{
play=!play;
step=i/2;
gobangAI2(play);
if(turn)
return;
}
gobangAI5();
if(!turn)
gobangRandom();
}
private void gobangAI2(boolean player)
推荐阅读
- 保皇直播技巧,保皇游戏直播
- 云从科技新增ChatGPT概念,云从科技是什么公司
- 毕业设计模仿现有的网站吗,毕业设计论文去网上模仿
- 即时战略类游戏发展史小说,即时战略类的游戏
- linux命令逻辑符号 linux命令符号解释
- 电商如何发液体快递,液体怎么发国际快递
- 会展小程序开发功能,会展软件应用
- 无人直播图片动漫,无人直播效果怎么样
- php抓取首页数据 php获取当前页面url