我目前正在建造一艘战舰
这是游戏板的图像:
对于测试,我们查看的是图块(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");
}
}
}
[[输出:不正确]
老实说,我不太自信。但是可能您正在寻找“包含”方法?喜欢:
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的评论。