我有这样一段程序:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class FiveChess extends Canvas
{
LinkedList blacklist = new LinkedList();
LinkedList blacklist1 = new LinkedList();
int count1=0;
int c,c1,r1;
void init(){
this.winner();
this.addListener();
this.setSize(500,500);
this.setBackground(Color.yellow);
}
public void paint(Graphics g){
for(int x=0;x<=500;x=x+20){
g.drawLine(x,0,x,500);
}
for(int y=0;y<=500;y=y+20){
g.drawLine(0,y,500,y);
}
for (int i = 0;i < blacklist.size() ; i++)
{
if(i%2 ==0){
g.setColor(Color.black);
}
else{
g.setColor(Color.white);
}
Block b = (Block)blacklist.get(i);
g.fillOval(b.x,b.y,20,20);
}
}
void addListener(){
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
count1++;
int x = e.getX();
if((x/10)%2 == 0){
x = (x/10)*10 -10;
}
else{
x = (x/10)*10;
}
c1=x/10;
int y = e.getY();
if((y/10)%2 == 0){
y = (y/10)*10 - 10;
}
else{
y = (y/10)*10;
}
r1=y/10;
Block b = new Block(x,y);
blacklist.add(b);
repaint();
}
});
}
void winner(){
}
public static void main(String[] a){
Frame f=new Frame();
FiveChess ca=new FiveChess();
f.add(ca);
f.setBackground(Color.gray);
f.setLayout(new FlowLayout());
f.setSize(600,600);
f.setVisible(true);
ca.init();
}
}
可以运行处结果,但中间判断胜负的方法没写,请高手指教
我想知道用Java编写的五子棋怎么判断输赢
看坐标的位置x轴不变Y轴++ 或-- 他们的颜色一样的 数量>=5 就赢了; \/\/横向 Y轴不变X轴++ 或-- 他们的颜色一样的 数量>=5就赢了; \/\/纵向 X轴++ Y轴-- 或X轴--Y轴++ 他们颜色一样 数量>=5就赢了;X轴++ Y轴++ 或X轴--Y轴-- 他们颜色一样数量>=5就赢了;\/\/斜向 我...
java程序设计,五子棋判断输赢
int Map[MAX_LINE][MAX_ROW];int CheckWin() \/\/返回0表示都没赢,返回1表示白棋赢,返回2表示黑棋赢 { int i,j,k;int tmp;\/* 判断所有横行 *\/ for(i=0;i<MAX_LINE;i++){ for(j=0;j<MAX_ROW-5;j++){ tmp=Map[i][j];if( tmp != 0){ for(k=1;k<5;k++)if(Map[i...
java五子棋输赢问题
比如你确定了一个点status[i][j],需要这个点的斜向上的第n个点,就可以用status[i+n][j+n],你在for循环中同时i++,j++控制就可以了,只要加减同一个参数就是斜向了
JAVA 五子棋实现问题(辛苦)
三、胜负判断 实际上,是根据当前最后一个落子的情况来判断胜负的。实际上需要从四个位置判断,以该子为出发点的水平,竖直和两条分别为 45度角和135度角的线,目的是看在这四个方向是否最后落子的一方构成连续五个的棋子,如果是的话,就表示该盘棋局已经分出胜负。具体见下面的图示:四、搜索算法...
五子棋java多线程主要是什么方法?
五子棋是一款传统的棋类游戏,它通常使用一种称为“搜索树”的方法来判断每一步下棋的最优选择。在Java中,您可以使用多线程技术来并行处理搜索树的不同部分,以提高性能和减少延迟。通常,您可以使用Java的Thread类来创建和管理多线程,并使用多线程技术来提高您的五子棋程序的性能。
java 五子棋 源代码 在我的基础上加个悔棋 判断胜负后把胜利的一方显示...
0 --> 当前没有棋子 1 --> 黑子 2 --> 白子 比如: allChess[2][3]=2 --> 第3行第4列为白子 如果想要悔棋的话,我的理解是这样的:拿白子举例:每下一个白子后,保存两个数组,连续下两次白子之后的数组,如果想悔棋,黑方确认之后,返回到上一次白子下后的数组。楼主这样试试 ...
下了个JAVA五子棋代码不会看 求注释
color_Qizi=1; \/\/下一步棋颜色为黑色 } g.fillOval(x-10,y-10,20,20); \/\/画一个圆,前面两个参数是左上角坐标 intGame_Body[x\/20][y\/20]=color_Qizi+1; \/\/棋盘状态中这个位置上相应地添上棋子,1为白棋2为黑棋0为空位置 if (Game_win_1(x\/20,y\/20)) \/\/判断输赢,这么几个...
如何判断五子棋左斜java?
一、五子棋的口诀:先手要攻,后手要守,以攻为守,以守待攻。攻守转换,慎思变化,先行争夺,地破天惊。守取外势,攻聚内力,八卦易守,成角易攻。阻断分隔,稳如泰山,不思争先,胜如登天。初盘争二,终局抢三,留三不冲,变化万千。多个先手,细算次先,五子要点,次序在前。斜线为阴,直线...
系统框图如下 java实现五子棋程序 可以实现人人对战 人机对战 简单功能...
程序支持悔棋功能,为了实现悔棋,自定义了chessList类。这个类主要通过引入java.util.ArrayList和java.util.List实现集合的数据类型。然后自定义一些方法,如下: (1)、AddStep(chessOneStep OneStep)\/\/添加一步棋到List中 (2)、GetSize()\/\/获得当前List的大小 (3)、ClearList()\/\/清空List (4)、RemoveLast()\/\/删去...
100分帮我看看的我的编程作业怎么样,给点意见!!
第一,你这个五子棋应该是两个人玩的,所以,你应该区分黑白棋谁输谁赢。第二,一个棋位被下子后,应该不能再下,因此,这个要做判断。第三,界面这样子做比较马虎,可以考虑贴一张棋盘图到picutreBox上,然后用label代替每一个棋位,这样子就可以解决第二的再下子问题,只要被下子就屏蔽此label...