package thegreatwork;
import javafx.application.*;
import javafx.scene.control.*;
import javafx.scene.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.scene.layout.*;
import javafx.stage.*;
import javafx.event.*;
import javafx.scene.input.*;
import javafx.scene.text.*;
import javafx.geometry.*;
import java.util.*;
import java.io.*;
/*Gui2048
*目的:显示分数和2048游戏,
*颜色伴随着分数的改变而改变*/
public class Gui2048 extends Application {
private String outputBoard;
private Board board;
private static final int TILE_WIDTH = 106;
// 这是为了未来不同位数的数字提供不同的字体以便看起来美观?
private static final int TEXT_SIZE_LOW = 55;
private static final int TEXT_SIZE_MID = 45;
private static final int TEXT_SIZE_HIGH = 35;
// 不同的数字对应不同的颜色(改变的是方块的颜色的填充色)
private static final Color COLOR_EMPTY = Color.rgb(238, 228, 218, 0.35);
private static final Color COLOR_2 = Color.rgb(238, 228, 218);
private static final Color COLOR_4 = Color.rgb(237, 224, 200);
private static final Color COLOR_8 = Color.rgb(242, 177, 121);
private static final Color COLOR_16 = Color.rgb(245, 149, 99);
private static final Color COLOR_32 = Color.rgb(246, 124, 95);
private static final Color COLOR_64 = Color.rgb(246, 94, 59);
private static final Color COLOR_128 = Color.rgb(237, 207, 114);
private static final Color COLOR_256 = Color.rgb(237, 204, 97);
private static final Color COLOR_512 = Color.rgb(237, 200, 80);
private static final Color COLOR_1024 = Color.rgb(237, 197, 63);
private static final Color COLOR_2048 = Color.rgb(237, 194, 46);
private static final Color COLOR_OTHER = Color.BLACK;
private static final Color COLOR_GAME_OVER = Color.rgb(238, 228, 218, 0.5);
// 数字大小的差异可以用数字颜色的填充色来使其明显
private static final Color COLOR_VALUE_LIGHT = Color.rgb(249, 246, 242);
private static final Color COLOR_VALUE_DARK = Color.rgb(119, 110, 101);
private GridPane pane;
private int tile;
private Rectangle[][] rectangle;
private Text[][] text;
private Text txt0;
private Text txtScore;
private int[][] grid;
private StackPane pane0;
private double title;
/*start
*初始化页面框
*/
@Override
public void start(Stage primaryStage) {