diff --git a/Systems/Game/ChessGame.gd b/Systems/Game/ChessGame.gd index b04000b..2c2d3a0 100644 --- a/Systems/Game/ChessGame.gd +++ b/Systems/Game/ChessGame.gd @@ -865,10 +865,10 @@ func updateCastlingRights(fromIdx: int, toIdx: int) -> void: else: castlingRights = castlingRights.replace("k", "").replace("q", "") "rook": - var startRank = 7 if piece.isWhite else 0 - if fromIdx == startRank * 8: # Queen-side rook + var startRank = boardYSize - 1 if piece.isWhite else 0 + if fromIdx == startRank * boardYSize: # Queen-side rook castlingRights = castlingRights.replace("Q" if piece.isWhite else "q", "") - elif fromIdx == startRank * 8 + 7: # King-side rook + elif fromIdx == startRank * boardYSize + 7: # King-side rook castlingRights = castlingRights.replace("K" if piece.isWhite else "k", "") if castlingRights == "": @@ -881,12 +881,12 @@ func updateEnPassantTarget(fromIdx: int, toIdx: int) -> void: return # Check for double pawn move - var fromRank = fromIdx / 8 - var toRank = toIdx / 8 + var fromRank = fromIdx / boardYSize + var toRank = toIdx / boardYSize if abs(fromRank - toRank) == 2: - var file = fromIdx % 8 + var file = fromIdx % boardYSize var targetRank = (fromRank + toRank) / 2 - enPassantTarget = "%s%d" % [char(97 + file), 8 - targetRank] + enPassantTarget = "%s%d" % [char(97 + file), boardYSize - targetRank] else: enPassantTarget = "-" diff --git a/Systems/Game/Map/MapGenerator.gd b/Systems/Game/Map/MapGenerator.gd index 5c5a729..9889623 100644 --- a/Systems/Game/Map/MapGenerator.gd +++ b/Systems/Game/Map/MapGenerator.gd @@ -14,8 +14,8 @@ var starting_elo = 1000 var final_elo = 2100 var current_max_level = 0; # var level_unit_distribution = ["", "", "", "nkr", "rnkr", "rnkbr", "rnqkbr", "rnqkbnr", "rnbqkbnr", "rbnqknbnr", "rnbnqknbnr", "rnbnqknbnbr", "rbnbnqknbnbr"] -var level_unit_distribution = ["", "", "nkr", "rnkr", "rnkr", "rnkbr", "rnqkbr", "rnqkbnr", "rnbqkbnr", "rbnqknbnr", "rnbnqknbnr", "rnbnqknbnbr", "rbnbnqknbnbr"] - +var level_unit_distribution = ["", "nk", "nkr", "rnkr", "rnkr", "rnkbr", "rnqkbr", "rnqkbnr", "rnbqkbnr", "rbnqknbnr", "rnbnqknbnr"] +# ["", "", "nkr", "rnkr", "rnkr", "rnkbr", "rnqkbr", "rnqkbnr", "rnbqkbnr", "rbnqknbnr", "rnbnqknbnr", "rnbnqknbnbr", "rbnbnqknbnbr"] var _rng = RandomNumberGenerator.new() var _next_id = 0 @@ -313,7 +313,8 @@ func generate_chess_data(node): # level_unit_distribution # current_max_level var rng = float(node.level) / int(current_max_level) - var index = map_to_array_index(node.level, 2, current_max_level - 2, 3, level_unit_distribution.size() - 1); + # (current_value, min_value, max_value, min_index, max_index) + var index = map_to_array_index(node.level, 2, current_max_level - 2, 1, level_unit_distribution.size() - 1); var unit_string = level_unit_distribution[index] var pawn_string = "" @@ -332,6 +333,10 @@ func generate_chess_data(node): fen += unit_string + "/" elif x == 1: fen += pawn_string + "/" + # elif x == height - 3: + # for y in unit_string.length() - 1: + # fen += "*" + # fen += "1/" else: fen += str(unit_string.length()) + "/" diff --git a/Utils/Utils.gd b/Utils/Utils.gd index 7caa003..b89691b 100644 --- a/Utils/Utils.gd +++ b/Utils/Utils.gd @@ -38,7 +38,7 @@ static func convert_algebraic_to_location(square: String, maxRank: int) -> Strin return "%d-%d" % [file_num, rank_num] -static func location_to_algebraic(location: String) -> String: +static func location_to_algebraic(location: String, maxRank: int) -> String: # Convert from "x-y" format to algebraic notation var coords = location.split("-") var x = int(coords[0]) @@ -48,7 +48,7 @@ static func location_to_algebraic(location: String) -> String: var file = char(97 + x) # 97 is ASCII 'a' # Convert y to rank number (flip since our board has 0 at top) - var rank = str(8 - y) + var rank = str(maxRank - y) return file + rank