Commit cf9c78c3 authored by 刘家荣's avatar 刘家荣 💬
Browse files

refactor(dataType): 再整理一下下 也加了几个test

parent 017d7eb9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONObject;
import model.History;
import model.game.Game;
import model.game.dataType.GameType;
import model.dataType.GameType;
import view.AppFrame;
import view.GameForm;
import view.RoomsForm;
@@ -81,7 +81,7 @@ public class AppController {
                            Game.instance = savedGame;
                            History.instance = savedHistory;
                        } else {
                            Game.instance = new Game(GameType.LOCAL_2P, true);
                            Game.instance = new Game(GameType.LOCAL_2P);
                            History.instance = new History(Game.instance.clone());
                        }
                        break;
+17 −7
Original line number Diff line number Diff line
@@ -2,8 +2,12 @@ package controller;


import model.History;
import model.dataType.FlipStep;
import model.dataType.GameType;
import model.dataType.MoveStep;
import model.dataType.Step;
import model.game.*;
import network.Client;
import view.ChessGameFrame;
import view.ChessboardCom;
import view.SquareCom;
@@ -33,7 +37,7 @@ public enum ChessClickController {
        if (firstId == -1) {    //判断第一次点击
            if (square instanceof Chess chess) {
                if (!chess.isReversal()) {  //未翻开,翻之
                    step = Game.instance.resolveFlip(chess);
                    step = new FlipStep(chess.id);
                }else if(chess.getChessColor() == Game.instance.getCurrentColor()){
                    //选中该棋
                    firstId = chess.id;
@@ -45,16 +49,22 @@ public enum ChessClickController {
                squareCom.repaint();
                firstId = -1;
            } else {
                step = Game.instance.resolveMove(Chessboard.getInstance().getSquareById(firstId), square);
                step = new MoveStep(firstId, square.id);
            }
        }
        if(step != null){
                    //擦除记忆
            if(Game.instance.gameType == GameType.ONLINE){
                Client.getInstance().sendStep(step);
                firstId = -1;
            }else {
                step = Game.instance.resolveStep(step);
                if(step != null) {
                    History.instance.steps.add(step);
                    firstId = -1;
                }
            }
        }
        if(step != null){
            History.instance.getSteps().add(step);
        }
        //TODO: 这个咋搞
        ChessboardCom.getInstance().repaint();
        ChessGameFrame.getStatusLabel().setText(String.format("%s's TURN", Game.instance.getCurrentColor().getName()));
    }
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ public class History {
        return steps;
    }

    private ArrayList<Step> steps = new ArrayList<>();
    public final ArrayList<Step> steps = new ArrayList<>();

    private Game initialState;

+1 −1
Original line number Diff line number Diff line
package model.game.dataType;
package model.dataType;

import java.awt.*;

+1 −1
Original line number Diff line number Diff line
package model.game.dataType;
package model.dataType;

public enum ChessType {
    CANNON(5),
Loading