maxed out map at 10 x 10 and min at 2 x 6

This commit is contained in:
2ManyProjects 2025-03-07 16:35:00 -06:00
parent 1cce2fe244
commit 11aa2c458f
3 changed files with 17 additions and 12 deletions

View file

@ -865,10 +865,10 @@ func updateCastlingRights(fromIdx: int, toIdx: int) -> void:
else: else:
castlingRights = castlingRights.replace("k", "").replace("q", "") castlingRights = castlingRights.replace("k", "").replace("q", "")
"rook": "rook":
var startRank = 7 if piece.isWhite else 0 var startRank = boardYSize - 1 if piece.isWhite else 0
if fromIdx == startRank * 8: # Queen-side rook if fromIdx == startRank * boardYSize: # Queen-side rook
castlingRights = castlingRights.replace("Q" if piece.isWhite else "q", "") 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", "") castlingRights = castlingRights.replace("K" if piece.isWhite else "k", "")
if castlingRights == "": if castlingRights == "":
@ -881,12 +881,12 @@ func updateEnPassantTarget(fromIdx: int, toIdx: int) -> void:
return return
# Check for double pawn move # Check for double pawn move
var fromRank = fromIdx / 8 var fromRank = fromIdx / boardYSize
var toRank = toIdx / 8 var toRank = toIdx / boardYSize
if abs(fromRank - toRank) == 2: if abs(fromRank - toRank) == 2:
var file = fromIdx % 8 var file = fromIdx % boardYSize
var targetRank = (fromRank + toRank) / 2 var targetRank = (fromRank + toRank) / 2
enPassantTarget = "%s%d" % [char(97 + file), 8 - targetRank] enPassantTarget = "%s%d" % [char(97 + file), boardYSize - targetRank]
else: else:
enPassantTarget = "-" enPassantTarget = "-"

View file

@ -14,8 +14,8 @@ var starting_elo = 1000
var final_elo = 2100 var final_elo = 2100
var current_max_level = 0; 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", "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 _rng = RandomNumberGenerator.new()
var _next_id = 0 var _next_id = 0
@ -313,7 +313,8 @@ func generate_chess_data(node):
# level_unit_distribution # level_unit_distribution
# current_max_level # current_max_level
var rng = float(node.level) / int(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 unit_string = level_unit_distribution[index]
var pawn_string = "" var pawn_string = ""
@ -332,6 +333,10 @@ func generate_chess_data(node):
fen += unit_string + "/" fen += unit_string + "/"
elif x == 1: elif x == 1:
fen += pawn_string + "/" fen += pawn_string + "/"
# elif x == height - 3:
# for y in unit_string.length() - 1:
# fen += "*"
# fen += "1/"
else: else:
fen += str(unit_string.length()) + "/" fen += str(unit_string.length()) + "/"

View file

@ -38,7 +38,7 @@ static func convert_algebraic_to_location(square: String, maxRank: int) -> Strin
return "%d-%d" % [file_num, rank_num] 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 # Convert from "x-y" format to algebraic notation
var coords = location.split("-") var coords = location.split("-")
var x = int(coords[0]) 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' var file = char(97 + x) # 97 is ASCII 'a'
# Convert y to rank number (flip since our board has 0 at top) # 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 return file + rank