比较 Java 中的 ANSI 彩色字符串
Comparing ANSI-Colored Strings in Java
我正在制作战舰
这是游戏板的图片:
对于测试,我们正在查看图块 (1,1),它是右上角的实心蓝色图块。
Solid Blue 的背景色和前景色相同,包含一个隐藏的“~”,另一种类型的图块包含相同的背景色,但前景色不同,仍然包含“~”。
我需要一种方法来确定所选方块是否包含波浪号的天气,例如:如果玩家击中敌方船只,该方块最初可能在另一端标记为 "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");
}
}
}
[输出:不正确]
老实说,我不太自信。但可能您正在寻找 "contains" 方法?
喜欢:
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
但是,如果这个游戏不是简单的"sandbox",我真的建议您考虑一下@MadProgrammer 的评论。
我正在制作战舰
这是游戏板的图片:
对于测试,我们正在查看图块 (1,1),它是右上角的实心蓝色图块。 Solid Blue 的背景色和前景色相同,包含一个隐藏的“~”,另一种类型的图块包含相同的背景色,但前景色不同,仍然包含“~”。
我需要一种方法来确定所选方块是否包含波浪号的天气,例如:如果玩家击中敌方船只,该方块最初可能在另一端标记为 "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");
}
}
}
[输出:不正确]
老实说,我不太自信。但可能您正在寻找 "contains" 方法? 喜欢:
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
但是,如果这个游戏不是简单的"sandbox",我真的建议您考虑一下@MadProgrammer 的评论。