今日编写代码如下:

  1. class ChessRule {
  2. /**卒子的移动规则*/
  3. public void armsRule(int Man,JLabel play,MouseEvent me){
  4. //黑卒向下
  5. if (Man < 21){
  6. //向下移动、得到终点的坐标模糊成合法的坐标
  7. if ((me.getY()-play.getY()) > 27 && (me.getY()-play.getY()) < 86 && (me.getX()-play.getX()) < 55 && (me.getX()-play.getX()) > 0){
  8.  
  9. //当前记录添加到集合(用于悔棋)
  10. Var.add(String.valueOf(play.isVisible()));
  11. Var.add(String.valueOf(play.getX()));
  12. Var.add(String.valueOf(play.getY()));
  13. Var.add(String.valueOf(Man));
  14.  
  15. play.setBounds(play.getX(),play.getY()+57,55,55);
  16. }
  17.  
  18. //向右移动、得到终点的坐标模糊成合法的坐标、必须过河
  19. else if (play.getY() > 284 && (me.getX() - play.getX()) >= 57 && (me.getX() - play.getX()) <= 112){
  20. play.setBounds(play.getX()+57,play.getY(),55,55);
  21. }
  22.  
  23. //向左移动、得到终点的坐标模糊成合法的坐标、必须过河
  24. else if (play.getY() > 284 && (play.getX() - me.getX()) >= 2 && (play.getX() - me.getX()) <=58){
  25. //模糊坐标
  26. play.setBounds(play.getX()-57,play.getY(),55,55);
  27. }
  28. }
  29.  
  30. //红卒向上
  31. else{
  32. //当前记录添加到集合(用于悔棋)
  33. Var.add(String.valueOf(play.isVisible()));
  34. Var.add(String.valueOf(play.getX()));
  35. Var.add(String.valueOf(play.getY()));
  36. Var.add(String.valueOf(Man));
  37.  
  38. //向上移动、得到终点的坐标模糊成合法的坐标
  39. if ((me.getX()-play.getX()) >= 0 && (me.getX()-play.getX()) <= 55 && (play.getY()-me.getY()) >27 && play.getY()-me.getY() < 86){
  40. play.setBounds(play.getX(),play.getY()-57,55,55);
  41. }
  42.  
  43. //向右移动、得到终点的坐标模糊成合法的坐标、必须过河
  44. else if (play.getY() <= 341 && (me.getX() - play.getX()) >= 57 && (me.getX() - play.getX()) <= 112){
  45. play.setBounds(play.getX()+57,play.getY(),55,55);
  46. }
  47.  
  48. //向左移动、得到终点的坐标模糊成合法的坐标、必须过河
  49. else if (play.getY() <= 341 && (play.getX() - me.getX()) >= 3 && (play.getX() - me.getX()) <=58){
  50. play.setBounds(play.getX()-57,play.getY(),55,55);
  51. }
  52. }
  53. }//卒移动结束
  54.  
  55. /**卒吃棋规则*/
  56. public void armsRule(JLabel play1,JLabel play2){
  57. //向右走
  58. if ((play2.getX() - play1.getX()) <= 112 && (play2.getX() - play1.getX()) >= 57 && (play1.getY() - play2.getY()) < 22 && (play1.getY() - play2.getY()) > -22 && play2.isVisible() && play1.getName().charAt(1)!=play2.getName().charAt(1)){
  59. //黑棋要过河才能右吃棋
  60. if (play1.getName().charAt(1) == '1' && play1.getY() > 284 && play1.getName().charAt(1) != play2.getName().charAt(1)){
  61.  
  62. play2.setVisible(false);
  63. //把对方的位置给自己
  64. play1.setBounds(play2.getX(),play2.getY(),55,55);
  65. }
  66.  
  67. //红棋要过河才左能吃棋
  68. else if (play1.getName().charAt(1) == '2' && play1.getY() < 341 && play1.getName().charAt(1) != play2.getName().charAt(1)){
  69. play2.setVisible(false);
  70. //把对方的位置给自己
  71. play1.setBounds(play2.getX(),play2.getY(),55,55);
  72. }
  73. }
  74.  
  75. //向左走
  76. else if ((play1.getX() - play2.getX()) <= 112 && (play1.getX() - play2.getX()) >= 57 && (play1.getY() - play2.getY()) < 22 && (play1.getY() - play2.getY()) > -22 && play2.isVisible() && play1.getName().charAt(1)!=play2.getName().charAt(1)){
  77. //黑棋要过河才能左吃棋
  78. if (play1.getName().charAt(1) == '1' && play1.getY() > 284 && play1.getName().charAt(1) != play2.getName().charAt(1)){
  79. play2.setVisible(false);
  80. //把对方的位置给自己
  81. play1.setBounds(play2.getX(),play2.getY(),55,55);
  82. }
  83.  
  84. //红棋要过河才能右吃棋
  85. else if (play1.getName().charAt(1) == '2' && play1.getY() < 341 && play1.getName().charAt(1) != play2.getName().charAt(1)){
  86. play2.setVisible(false);
  87. //把对方的位置给自己
  88. play1.setBounds(play2.getX(),play2.getY(),55,55);
  89. }
  90. }
  91.  
  92. //向上走
  93. else if (play1.getX() - play2.getX() >= -22 && play1.getX() - play2.getX() <= 22 && play1.getY() - play2.getY() >= -112 && play1.getY() - play2.getY() <= 112){
  94. //黑棋不能向上吃棋
  95. if (play1.getName().charAt(1) == '1' && play1.getY() < play2.getY() && play1.getName().charAt(1) != play2.getName().charAt(1)){
  96. play2.setVisible(false);
  97. //把对方的位置给自己
  98. play1.setBounds(play2.getX(),play2.getY(),55,55);
  99. }
  100.  
  101. //红棋不能向下吃棋
  102. else if (play1.getName().charAt(1) == '2' && play1.getY() > play2.getY() && play1.getName().charAt(1) != play2.getName().charAt(1)){
  103. play2.setVisible(false);
  104. //把对方的位置给自己
  105. play1.setBounds(play2.getX(),play2.getY(),55,55);
  106. }
  107. }
  108.  
  109. //当前记录添加到集合(用于悔棋)
  110. Var.add(String.valueOf(play1.isVisible()));
  111. Var.add(String.valueOf(play1.getX()));
  112. Var.add(String.valueOf(play1.getY()));
  113. Var.add(String.valueOf(Man));
  114.  
  115. //当前记录添加到集合(用于悔棋)
  116. Var.add(String.valueOf(play2.isVisible()));
  117. Var.add(String.valueOf(play2.getX()));
  118. Var.add(String.valueOf(play2.getY()));
  119. Var.add(String.valueOf(i));
  120.  
  121. }//卒吃结束0

作业七:团队项目——Alpha版本冲刺阶段-12的更多相关文章

  1. 作业七:团队项目——Alpha版本冲刺阶段

      本次作业为期三周时间,要求各组结合所选项目并阅读教材<构建之法>第六章内容,完成项目的Alpha版本.本阶段的主要内容如下:(20分) 1. 每天组织一次站立会议,讨论每个成员的昨天进 ...

  2. 作业七:团队项目——Alpha版本冲刺阶段002

    今日进展:我们终于安装好了软件,今天开始进行作业设计. 今日安排:今天开始我们要开始我们的框架的设计.

  3. 作业七:团队项目——Alpha版本冲刺阶段-13

    对项目最后进行了完善. 代码如下: public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[]){ //当前状态 ...

  4. 作业七:团队项目——Alpha版本冲刺阶段010

    今日安排:组内成员讨论 今日进程:组内成员讨论结束,并有明确的解决办法,每个人准备实践

  5. 作业七:团队项目——Alpha版本冲刺阶段009

    今日安排:组内成员讨论 今日进度:组内成员讨论分工细节以及可能遇到的问题,并提出解决方案

  6. 作业七:团队项目——Alpha版本冲刺阶段008

    今日进度:组内成员讨论 今日安排:组内成员分工

  7. 作业七:团队项目——Alpha版本冲刺阶段007

    今日进展:完善游戏主体代码. 今日安排:让游戏能运行起来.

  8. 作业七:团队项目——Alpha版本冲刺阶段006

    今日进展:完成主体代码. 今日安排:对程序主体进行编写.

  9. 作业七:团队项目——Alpha版本冲刺阶段005

    今日进展:编写代码. 今日安排:完成开始部分代码.

随机推荐

  1. vim段替换

    文件中有很多字段: dd ssdf df aaa="100" dd ssdf df aaa="200" asdf sdf sdf aaa="700&q ...

  2. rdlc报表DEMO

    rdlc报表demo  .net 4.0  vs2013 文本框,图像控件,checkbox样式的打印 下载链接

  3. mac上的git completion

    只安装bash-completion,是没有git补全的,因为此时/usr/local/etc/bash-completion.d/下面没有git-XXX.sh 解决方法是brew install g ...

  4. Cassandra-几个基本测试常识

    一 使用ycsb进行装载,每次装载都不会删除以前装载过的. 因此如果想在空数据库中装载,需要先情况数据表. drop命令删除整个表,因此需要重建标头. truncate命令删除表的所有行,只留下表头, ...

  5. 什麼是 mvc

    非常多的Web框架都實踐一個叫做MVC的軟體架構設計模式,將軟體分成三個部分: Model物件包裝了資料與商業邏輯,例如操作資料庫 View表示使用者介面,顯示及編輯表單,可內嵌Ruby程式的HTML ...

  6. 文件消息的简单样式demo

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Win10专业版激活永久可查激活信息

    Win10专业版激活永久步骤 ------在安装Win10专业版后,使用激活工具将系统激活到180天 这里附带在下屡试不爽的激活工具--百度云盘-- 链接:http://pan.baidu.com/s ...

  8. Linux三剑客之sed

    sed sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像.sed按顺序逐行读取文件.然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可 ...

  9. Java中的继承与静态static等的执行先后顺序

    package extend; public class X { Y y=new Y(); static{  System.out.println("tttt"); } X(){  ...

  10. JavaScript-location:封装当前窗口正在打开的url的对象

    location:封装当前窗口正在打开的url的对象 href:完整的url protocol:协议 host:主机名+端口 hostname:主机名 port:端口 pathname:路径 hash ...