Java 中国象棋 day2
00 分钟
2024-9-10
2024-9-18
tags
date
type
status
slug
summary
category
password
icon

day2

  1. 属性:默认会被赋值
    1. 写在类的{}中,方法和代码块的{}之外
    2. 实例属性: 权限修改符 数据类型 属性名 [= 初始值]
    3. 类属性: 权限修改符 static 数据类型 属性名[ = 初始值 ]
  1. 变量:
    1. 四种类型
      1. 整型:四个
        1. byte:一个字节 8位 -128~127
        2. short 两个字节 16位
        3. int 四个字节 32位
        4. long 八个字节 64位,数值后面带L或l
      2. 浮点型
        1. float 单精度 四个字节 数值后面带F或f
        2. double:双精度 八个字节
      3. 字符型,有且只有一个,默认位“”
        1. char只能用''包裹,只有一个符号(字母、数字、中文)
      4. 布尔型
        1. boolean 只有false和true
    2. 引用数据类型:三大类,无数个,默认值都为null
      1. 类:使用class关键字定义的,例如String
      2. 数组:使用[]标识
      3. 接口:使用interface 关键字定义

P7

  • 将棋子再全部放进数组中
  • 要将所有的x和y坐标放在同一个数组中
  • 另一种思路,将棋盘看成一个个坐标组合,将坐标单元设置成一个固定值,然后每个的位置就是1234递增
  • 关于第一个棋子的位置,实际上是棋子大小减去棋子边距
  • 先解决一次性画全部的办法,不要又复制一遍上面的代码,设置一个反转坐标的办法
    • 反转完,没必要再又复制上面的循环,个人觉得可以创建个方法或者再加一个循环,当内层的走完,说明画完了,接着player变1,同时的话还得修改下面的反转函数,先判断player是不是0,是的话之后内层的for循环用原始x坐标
    • 但是问题来了,如果每次都要传进去判断player是不是1再决定用不用反转后的坐标,好像也很麻烦
  • 我们这个有些问题,只能画,不能实时更新,因为这是全局变量

P8

  • 面向对象就是提取类
  • 新建的类都得有什么方法呢? —— 参考上个代码想想要定义什么
    • 先提取变量
  • 哪些变量用什么权限
    • 定义的常量,只能定义时或代码块中修改值,其他不允许修改
    • 类创建好之后,要创建类的对象
    • 对于想要获取类中的内容的变量,但是为了安全性,要将其中的变量设置为private,并且设置 set 和 get函数
      • 有些问题,数组会打印两次,同时功能都放在一起太杂了(又是创建,绘制,又是保存到数组中),要将功能分开写
      • 想要一开始运行打印棋盘,就是使用构造方法
      • 构造方法的作用:在创建对象的时候就做一些必须做的事情
        • 构造方法可以让我们自定义创建对象时,做一些必要的操作

      P10

      • 如何操作棋子
        • 点击棋盘
        • 如何获取棋子对象
        • 如何判断点击的地方是否有棋子
        • 如何区分选择、重新选择、移动、吃子
      • 添加点击事件
      • 点击之后显示点击在哪里
      • 但是点击很难精确,所以需要有个范围约束
        • 根据xy坐标计算网络对象转换思维,不是看xy的范围,站在更高的角度去看问题
        • 不能直接修改 + 要返回Point值
          • 所以创建一个Point对象,而不直接修改
        • 定义坐标范围不能超过棋盘
      • 如何找棋子,利用网格坐标p对象查找棋子对象,然后判断和数组中的棋子位置一不一样

      p11

      • super的作用:调用父类中的方法或属性
      • 为什么还是没有清除原来的痕迹呢?
        • 因为共用的是同一套坐标,改其中一个棋子的坐标,那么这个也会造成另一个被改变
        • 栈:保存局部变量对对象的引用(就是我们常说的定义类变量等)
          • 定义对象的引用 类 变量名
        • 堆:new 出来的对象
        • 方法区:
          • 常量池
        • 静态域:

      p12

      • 如何判断是不是第一次点击
        • 设置一个成员变量,如果它有值存在的话,说明不是第一次
        • 如何判断选中完第n次之后是吃子还是移动,还是重新选择

      p13

      • 如何给选中的象棋加个框框
      • 难点,如何制作移动规则

      p14 提取移动范围内

      • 判断上边还是下边
       
      上一篇
      Java 中国象棋 day3
      下一篇
      Java 中国象棋 day1

      评论
      Loading...