比较Java中的ANSI彩色字符串

问题描述 投票:-1回答:1

我目前正在建造一艘战舰

这是游戏板的图像:

enter image description here

对于测试,我们查看的是图块(1,1),它是右上角的纯蓝色图块。纯蓝色的背景和前景颜色相同,包含一个隐藏的“〜”,另一种类型的图块包含相同的背景颜色,但前景颜色不同,仍然包含“〜”。

例如,如果玩家击中了敌方飞船,则该瓦片最初可能在另一端被标记为“ S”,因此,[知道船被撞而不是水。但是,我找不到找到两个彩色字符串是否相等的方法。

这是一组示例代码,用于创建两个相同(但颜色不同)但无法识别的图块:

class Test{
public static void main(String[] args){
    String Blank_Tile_Color = (char)27+"[34;44m";
    String Tile_Color = (char)27+"[36;44m";
    String Clear = (char)27+"[0m";

    String Tile1 = Tile_Color+"~";
    String Tile2 = Blank_Tile_Color+"~";

    System.out.println(Tile1);
    System.out.println(Tile2);


    if (Tile1.equals(Tile2)){
        System.out.println(Clear+"Correct");
    }
    else{
        System.out.println(Clear+"Incorrect");
    }
}

}

[[输出:不正确]

java string ansi
1个回答
0
投票

老实说,我不太自信。但是可能您正在寻找“包含”方法?喜欢:

String blankTileColor = (char) 27 + "[34;44m";
String tileColor = (char) 27 + "[36;44m";
String clear = (char) 27 + "[0m";

String tile1 = tileColor + "~";
String tile2 = blankTileColor + "~";
String tile3 = clear;

System.out.println(tile1.contains("~")); // true
System.out.println(tile2.contains("~")); // true
System.out.println(tile3.contains("~")); // false

但是,如果这个游戏不是一个简单的“沙盒”,我真的建议您考虑@MadProgrammer的评论。

© www.soinside.com 2019 - 2024. All rights reserved.