Compare commits
2 Commits
0fd490b97c
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d6e2fc7be9 | |||
| 3d2f98d56e |
@@ -56,6 +56,7 @@ class AiHttpGameHandler(GameHandler):
|
|||||||
MAP_PASS_MIN_SCORE = 20 # Minimum score to consider a map passed. Only used if PLAY_ALL_MAPS_PER_GENERATION is False. If True, all maps are played in a generation.
|
MAP_PASS_MIN_SCORE = 20 # Minimum score to consider a map passed. Only used if PLAY_ALL_MAPS_PER_GENERATION is False. If True, all maps are played in a generation.
|
||||||
MAP_DIFFICULTY_VARIANCE = 5 # Lower value will make the map selection more variable, higher value will make the map selection more consistent with the current performance. Only used if PLAY_ALL_MAPS_PER_GENERATION is False. A value too high may produce no evolving behavior
|
MAP_DIFFICULTY_VARIANCE = 5 # Lower value will make the map selection more variable, higher value will make the map selection more consistent with the current performance. Only used if PLAY_ALL_MAPS_PER_GENERATION is False. A value too high may produce no evolving behavior
|
||||||
CONSISTENCY_PENALTY_WEIGHT = 0.4 # Penalty for inconsistent map scores
|
CONSISTENCY_PENALTY_WEIGHT = 0.4 # Penalty for inconsistent map scores
|
||||||
|
MINIMUM_PERFORMANCE_DELTA = 0.05 # Minimum performance delta to add every generation. This ensures that the map will always change even if the ai is stuck in a local optimum. Only used if PLAY_ALL_MAPS_PER_GENERATION is False. A value too high may produce no evolving behavior
|
||||||
|
|
||||||
def __init__(self, host: str | None = None, port: int | None = None,
|
def __init__(self, host: str | None = None, port: int | None = None,
|
||||||
max_workers: int | None = None):
|
max_workers: int | None = None):
|
||||||
@@ -268,7 +269,7 @@ class AiHttpGameHandler(GameHandler):
|
|||||||
top_90_scores = sorted_scores[:top_90_count]
|
top_90_scores = sorted_scores[:top_90_count]
|
||||||
avg_top_90_score = sum(top_90_scores) / len(top_90_scores)
|
avg_top_90_score = sum(top_90_scores) / len(top_90_scores)
|
||||||
performance_delta = (avg_top_90_score - self.MAP_PASS_MIN_SCORE) / self.MAP_DIFFICULTY_VARIANCE
|
performance_delta = (avg_top_90_score - self.MAP_PASS_MIN_SCORE) / self.MAP_DIFFICULTY_VARIANCE
|
||||||
performance_delta = max(0.05, performance_delta)
|
performance_delta = max(self.MINIMUM_PERFORMANCE_DELTA, performance_delta)
|
||||||
session["performance"] = max(0.0, session.get("performance", 0.0) + performance_delta)
|
session["performance"] = max(0.0, session.get("performance", 0.0) + performance_delta)
|
||||||
# print(f"Generation {session['generation']} completed on difficulty {map_difficulty}. Best score: {best_score:.2f}. Updated performance: {session['performance']:.2f}", flush=True)
|
# print(f"Generation {session['generation']} completed on difficulty {map_difficulty}. Best score: {best_score:.2f}. Updated performance: {session['performance']:.2f}", flush=True)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,131 @@
|
|||||||
|
difficulty = 80
|
||||||
|
min_moves = 28
|
||||||
|
layout = """
|
||||||
|
####################
|
||||||
|
########## E#####
|
||||||
|
######### ##########
|
||||||
|
########## ########
|
||||||
|
########### #
|
||||||
|
############ #### #
|
||||||
|
# ## ###
|
||||||
|
# #### ^^^ ####
|
||||||
|
# ##### ### #####
|
||||||
|
#S###### ######
|
||||||
|
####################
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#000000000000000000000000000000KKKKKKKKKKKKKKKKKKXXKKKKKXXXXNWMMNNXXXNNNNNNNNWWWWWMMMMMMMMMMMMMMMMMMM
|
||||||
|
#0000000000000000000000000000000KKKKKKKKKKKKKKKKKXWWXKKKKXXXNNWNXXXXXXNNNNNNNMWWWMMMMMMMMMMMMMMMMMMMM
|
||||||
|
#00000000000000000000000000000000KKKKKKKKKKKKKKKKXMMNKKKKXXXXXXXXXXXXXXNNNNNNNWWWWMMMMMMMMMMMMMMMMMM0
|
||||||
|
#OOO0000000000000000000000000000000KKK00KKKKKKKKKKNWXKKKKXXXXXXXXXNNXXXNNNNNNNWWWWMMMMMMMMNX0OOXMMMOl
|
||||||
|
#OOOO00000000000000000000000000000KKK00000KKKKKKKKKKKKKKKKXXXXXXXXNWNXXXNNNNNNWWWWWMMMMMMNkK0xKMMMNdl
|
||||||
|
#OOOO000000000000000000000000000000KKK00000KKKKKKKKKKKKKKKKXXXXXXNWWNXXXXNNNNNNWWWWMMMMMMNXMNKXWWWOol
|
||||||
|
#OOO00000KKKKKKKXXXXKKK000000000000000000KKKKKKKKKKXXXXXKKXXKKXXNWWWWXXXXXNNNNNWWWWWMMMMMMMOkNWWWWdlc
|
||||||
|
#OO00KXNNNNWWWWWWWWWNKK0000000000000000000KKKKKOdcokooONNNNNXXKXNWWWWNXXXXNXNNNWWWWWWMMMMMMOdXWWWXolc
|
||||||
|
#OO0KKKNWNNNNNXXXXKKK00000000000000000000KKKKKd',,coc,'codOXWXXXNWWWWWXXXXXNXNNNWWWWWWMMMMMXx0NNNXool
|
||||||
|
#OOO00000000000000000000000000000000000KKKK0o,',.',,,;;cl:oookKXNWWWNNXXXXXNNNNNWWWWWWMMMMMMxxXNXKlll
|
||||||
|
#OOOOOO000000000000000000000000000000000KKKO:''',,;:ccloddkKOxokXNWWNK0XKXKx0KXNNWWWWWWWMMMM0d0K00ocl
|
||||||
|
#OOOOOOO00000000000000000000000000000000KK0x;'..';cccccoookO00OOXXXKKKKKKK0dkKXNNWNNWWWWWMMMNdkKK0xc:
|
||||||
|
#OOOOOO00000000000000000000000000000000KKKO,...';cllcclldxxkO0OkXK0000K0KKKOo0KXNNNNNWWWWWMMMkkkdl:cc
|
||||||
|
#0O0OOOO00000000000000000000000000000000KK0:...,:lol::::clooodxOXK000K000K0OoO0KXXNNNNWWWWX0x:,:c::::
|
||||||
|
#0OO0OOOO000000000000000000000000000000000O:,;';llc:,''.';lo.;cOXK000000000OdoOO0KXNNNWWWN;;::;::::::
|
||||||
|
#00OOOOOOOOOOO0000000000000000000000000000Oo';,cllccccc:;;:xddk0XK000000000000KKKKlXNNNNNOc::;;::::::
|
||||||
|
#00OOOOOOOOOOOO0000000000000000000000000000x,,;cllcc:cl:',,cdxk0XKKKKK0KK00000000KKKKOx0Oxd:;;;::;;;;
|
||||||
|
#x00OOOOOOOOOOOOOOOO00000000000000000000000kc..colc:c::;,';cdoxKXXXKK000OOOOOOOO000000dOxxk,,,,;;;;;;
|
||||||
|
#xO00OOOOOOOOOOOOOOOOOOO00000000000000000000, cllc:c;'.;odddddkO0K00000OOOkkkkkkxxddddxxcOc',,;;;;;;
|
||||||
|
#Od000OOOOOOOOOOOOOOOOOO000000000000K0KKKXO'. cllccc:;;:oddooookO000OOkxdoolccccloddxkOK0xk',,;;;,,;
|
||||||
|
#0kx000OOOOOOOO0000000000000000000KKKKKKKKx.. .:c:;:;'.,ccclldxxxkO0kl::ccllodxxkOOO000KXXx,,,,,,,,,
|
||||||
|
#00kkOO000000000OOOOO000000KKK000000000000d'... ..'......cclooddddxkOOOkdddxxkkkkOOO0000KXXk,',,,,,,,
|
||||||
|
#00OocokOkkOOOO000KKK000000000Okkxxxxxxdo:.. ....'......:o;oxdllooddxkOOOkxxkkkkkkkOOOO0KXOlc'''',,,,
|
||||||
|
#000Oxk00KK0000000000000000Oxllodddddol:..'. .;;,,,,'..,:cclxxkkocllodxkkOOkxxxxxxkkkOO00dlOl........
|
||||||
|
#00000000000000000000OOOOOkollloddxxxxd:;;x,',:ccc:::;,,:lolcddxxxdolooxxkOOkkxxxxxxkkOkcclc,:;,,....
|
||||||
|
#000000000000000OOkxxddlccllloooodxxddc....:ooccllllol:,,lddo:loddxxxoloooxO0Okxdddoool:c:c:clldo,,,,
|
||||||
|
#000000OOkxxdolccccllllolllloooddddocc....,dkxl:lxxxxxoc,;lool;:oxkkkxoloodxOK0Oxol:,',:ccllllllllloo
|
||||||
|
#kxdoolcclloodddddxxxxxxoooooddddddc,ccxl:dxxxx::kkkkkko;':lloooccooxkxooooxkOKK0dcc;.:....lllllllloo
|
||||||
|
#loddxxxxkkkxxxxxxxxxxxxloooooddxxo:..'c,lxxxddlldk00Okxc,,codxxlo:l::':cooodkO0KKOo:.,....:lllllllll
|
||||||
|
#kkkkkkkkkkkkkkkkxxxxxxxollolllodoc' .cxoc::locck000Oxc;':dxkxcO:d;;,. ;loodkO0XNN0l.'',,:cccccllll
|
||||||
|
#kkkkkkkkkkkkkxxxxxxxxxxol;dl',:l;.. .,,;...',;dl:dkOOxl;'codd:,..',,;;' ;loodk0KNWWN0c'cccccccccccl
|
||||||
|
#kkkkkkkkkkkkkxxxxxxxxxl:,,;cllooc, ,d...;:;;....,;..;ll:;,,:'........':, :lood0XXNWWWNklccc::cccccc
|
||||||
|
#kkkkkkkkkkkkkxxxxddddd:cclloooddoc'.: .:ldd:'....,,,;;.,;';:;',,;,'.... .coood0NNXNNNXxccc:::::ccc
|
||||||
|
#kkkkkkkkkkkkxxxxddddooclllloodddoc. ..'.,'..',,;clolcc:cooc;,.....'. 'looldOXXXXX0xlc:::::::::
|
||||||
|
#kkkkkkkkkkxxxxdddoooooclllooddddol' .......',:loddddolc;cdddooc;'.. .;. ,clllldxkOOOko::::::::::
|
||||||
|
#kkkkkkkxxxxxddddoooollcllooodxxdol' .';:::clloooddxxddlc:lxxkxdoc;,. ,. .,ccccccllodxx:::::;;;;;
|
||||||
|
#kkkkkkxxxxxdddoooolllllllooodxxxdo; .';:ccccllooddddxxxxoc:lxkxxxxlc:'. . .,;:;:::coo:;;;;;;:cll
|
||||||
|
#kkkkxxxxxdddooolllllllclllooodxxxkxdl,. ';:clllllloodxxxxxxdll;:xkkkxdolc,. .'.',,,,;...:llllc;,,
|
||||||
|
#kkkxxxxddddooollllllllcclllloodddxkkkkkoc;cllllcllodxxxkkOkxdxd:dO000OOxxdo:. .,,,...';:clc;;,,,,,,
|
||||||
|
#kkxxxxdddoooolllllllllc:cclllloooddxxxkxxoccllllloodddxxxkxdoc:cdlloodxxkO00k, ..:cccc:;;,,,,,,,,,,,
|
||||||
|
#kxxxxddooooollllclccccc:,,;:ccllloooooccoddoc;;cllcc:;,,oc''',,lkkd:'..'l,.:ll:cc;,,,,,,,,,,,,,,,,,,
|
||||||
|
#xxxxxddooollllccccccccccc:;.,;;::ccllc:ccccc:lxkcclc, ...;lddxO0Oddd:;;:::;,,,,,,,',,',,,',,,,,,,,
|
||||||
|
#xxxdddooollllccccccccccc::;;...,;:::;.;,,'';c;,ldkkkxxdolodxdxkxxdddoc:,,,,,''''''''''''''''''',,,,,
|
||||||
|
#xxdddoolllllccccccc::::::;;. .;;,,. ..;',clooddddxxddxdolc:,,'''''''''''''''''''''''''''''''''
|
||||||
|
#dddooolllllccccc:::::::;;,. .;:,. ..'.... .;:cllooooddo:,'''''''''''''''''''''''''''''''''''''''
|
||||||
|
#dddoolllllcccccc:::::;;;' .;;..,:looodddol:'..';::cccc'....'''.'''....'....''....''''''...''''''
|
||||||
|
#dooollllccccc::::::;;;;. .. ';,':oodddxxxxxxkkxo;. ................................ ...''''''
|
||||||
|
#ooolllccc:::::::;;;;;;. ';;codddxxxxxxxxkkkkkxl. .................................... ...''''''
|
||||||
|
#ollccccc:::::::;;;;;;, ;cloddxxxxkkxkkkkkkkxoc;;::;;;,.........................................
|
||||||
|
#lllcccc:::::;;;;;;;;;' .coodddxxxxkkkkkkkkxxd';::::::::.........................................
|
||||||
|
#lcccc::;;;;;;;;;;;,,,' clooddxxxxxkkkkkkkkxdd:.;:::::::;........................................
|
||||||
|
#cccc::;;;;;;;;,,,,,,,,. :llodddxxxxkkOOOOkkxddoc. ,::cc:;,...................................
|
||||||
|
#c::::;;;;;;,,,,,,,,'''' ;lloooddxxxxkOOOOOkkxdooc. .:c;.. ............................
|
||||||
|
#:::;;,,,,,,,,,,'''''''. .cloooddxxxxkkOOOOkxxdool; .:cc' ....................... ...
|
||||||
|
#::;;,,,,,,,,,,'''''.. ;ooooddxxxkkOOOOkxxddoolc' . .;cc;................. ......
|
||||||
|
#:;;,',,''''''''''.. ,ooooddxxxxkkOkxxddoolllc:. . ,clc........... . ......,:
|
||||||
|
#;;,'''''''''''''. :oooooooddxxkkkxddoollccc:'. . 'cc, ......;:cl
|
||||||
|
#;,'''''''''''.. 'lolllllooooddxxddoollcccc:,. .. .cc . .. .,;cccl
|
||||||
|
#;'.'''...''.. 'coollllllooooooooollcc:::::,. . .c. . . ..';:ccll
|
||||||
|
#.''........ ,loolllllllooooooollcc::::::;,. . ..';::cccl
|
||||||
Reference in New Issue
Block a user