java 五子棋控制人和电脑轮换的问题!!!

u010161550 2013-10-30 11:15:11
public static void main(String[] args) {
// TODO Auto-generated method stub
Board b=new Board();//初始化棋盘

do{

switch(n%2){
/**
* 1.人执黑先行 得到x,y,n
* 2.执行落子算法
* 3.更新棋盘
* 4.n++
* 5.跳出循环
*/
case 1://扫描棋盘得到x y,n
Board.LuoZiGengXin(xx, yy);//落子 和 更新棋盘 处理
System.out.println("人下了一个棋");
break;
/**
*
*/
case 0:
if(Board.Max_white()>=Board.Max_black()){//执行进攻算法
Board.Attack();
System.out.println("电脑进攻下了一个棋");
}else{//执行 防守算法
Board.Defence();
System.out.println("电脑防守下了一个棋");
}
break;
}




}while(Board.Over());//有没有分出胜负
Board.WinOrFail();//谁赢?
}

问题是: 我现在可以做到人点棋盘的时候得到 坐标x,y ,n。n是静态变量 表示棋盘上的棋子个数 但是不知道该怎么控制 当我点击棋盘的时候 用这个时刻点击棋盘的xyn 来 更新棋盘。 求大神啊,做完这个我就可能拿到offer 应届毕业生求大神啊!!
...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010161550 2013-10-30
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
[quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 可以具体点么 不懂什么叫标记位
失落夏天 2013-10-30
  • 打赏
  • 举报
回复
引用 3 楼 u010161550 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。
u010161550 2013-10-30
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用
u010161550 2013-10-30
  • 打赏
  • 举报
回复
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用
失落夏天 2013-10-30
  • 打赏
  • 举报
回复
2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
u010161550 2013-10-30
  • 打赏
  • 举报
回复
引用 10 楼 AA5279AA 的回复:
[quote=引用 9 楼 u010161550 的回复:] [quote=引用 8 楼 AA5279AA 的回复:] [quote=引用 6 楼 u010161550 的回复:] [quote=引用 4 楼 AA5279AA 的回复:] [quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 就是允不允许我点击 这个代码怎么写[/quote] 不是不允许点击,是点击了之后没反应。。。和不点击一样。。 比如点击触发方法click(); 方法内 public void click(){ if(flag==false)return; //下面写正常的点击后的逻辑就行了。 } [/quote] 就不在允许监听 人点击的事件怎么写?[/quote] 我崩溃,怎么解释你就听不懂呢。。 不允许监听实现起来不现实,你需要去声明取消监听状态。。 但是监听到事件时候所执行的代码和操作我们可以判断是否允许其运行。。 [/quote] 哦 我在想想 大概明白了 但是函数还不知道是哪个 我去查查
失落夏天 2013-10-30
  • 打赏
  • 举报
回复
引用 9 楼 u010161550 的回复:
[quote=引用 8 楼 AA5279AA 的回复:] [quote=引用 6 楼 u010161550 的回复:] [quote=引用 4 楼 AA5279AA 的回复:] [quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 就是允不允许我点击 这个代码怎么写[/quote] 不是不允许点击,是点击了之后没反应。。。和不点击一样。。 比如点击触发方法click(); 方法内 public void click(){ if(flag==false)return; //下面写正常的点击后的逻辑就行了。 } [/quote] 就不在允许监听 人点击的事件怎么写?[/quote] 我崩溃,怎么解释你就听不懂呢。。 不允许监听实现起来不现实,你需要去声明取消监听状态。。 但是监听到事件时候所执行的代码和操作我们可以判断是否允许其运行。。
u010161550 2013-10-30
  • 打赏
  • 举报
回复
引用 8 楼 AA5279AA 的回复:
[quote=引用 6 楼 u010161550 的回复:] [quote=引用 4 楼 AA5279AA 的回复:] [quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 就是允不允许我点击 这个代码怎么写[/quote] 不是不允许点击,是点击了之后没反应。。。和不点击一样。。 比如点击触发方法click(); 方法内 public void click(){ if(flag==false)return; //下面写正常的点击后的逻辑就行了。 } [/quote] 就不在允许监听 人点击的事件怎么写?
失落夏天 2013-10-30
  • 打赏
  • 举报
回复
引用 6 楼 u010161550 的回复:
[quote=引用 4 楼 AA5279AA 的回复:] [quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 就是允不允许我点击 这个代码怎么写[/quote] 不是不允许点击,是点击了之后没反应。。。和不点击一样。。 比如点击触发方法click(); 方法内 public void click(){ if(flag==false)return; //下面写正常的点击后的逻辑就行了。 }
失落夏天 2013-10-30
  • 打赏
  • 举报
回复
引用 5 楼 u010161550 的回复:
[quote=引用 4 楼 AA5279AA 的回复:] [quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 可以具体点么 不懂什么叫标记位 [/quote] 就是我在类里面创建一个静态的boolean形式的成员变量, static boolean flag=false; 这样每次操作我只需要对这个成员变量判断值,如果符合就执行,不符合就跳过。 如果执行的话执行完毕可以修改这个成员变量值,就不如人下完了棋等待电脑下棋了,那么我就设置为false,就不再允许监听人的点击事件了。
u010161550 2013-10-30
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
[quote=引用 3 楼 u010161550 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 2013届么? 调用repaint()方法可以刷新页面。 你的意思是不是想让我们帮你去实现Board.LuoZiGengXin(xx, yy); 方法?
不是,repaint()方法已经写了,就说下棋这个过程吧 1. 是我下棋 2.我点棋盘 得到xyn 然后在重绘棋盘 3.该电脑下棋了,电脑根据现在的情况下棋 在重绘棋盘 4. 判断输赢 没输赢继续下棋 然后就是循环这个 我的问题是 到我下棋的时候 怎么让 我点击棋盘得到xyn的时候在 重绘 没到我下棋的时候 我点击棋盘也没用 [/quote] 标记位?轮到电脑下棋的时候改为false,你点击先进行标记位判断,为false直接忽略。 电脑下完了改为true,然后就允许你点击了。[/quote] 就是允不允许我点击 这个代码怎么写

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧