Ejemplo n.º 1
0
#                                                                                                                 #                                                                                                                #
#        Every game that finishes is exported to this directory, erasing any other previous game there            #        Toute partie qui se termine est exportée dans ce dossier, en écrasant toute partie s'y trouvant         #
#                                                                                                                 #                                                                                                                #
####################################################################################################################################################################################################################################

# Time configuration
TIMING_INFORMATION = (3.0, 0.1)
TIMEOUT = None

# Other useful constants
SHOW_GUI_AND_SHELLS = True
OUTPUT_DIRECTORY = "./savedGames/previousGame/"

####################################################################################################################################################################################################################################
############################################################################################################## SCRIPT ##############################################################################################################
####################################################################################################################################################################################################################################

# We start the game
gameInfo = LaunchersLibrary.startCustomGame(MAZE_FILE_NAME, TIMING_INFORMATION,
                                            SHOW_GUI_AND_SHELLS,
                                            OUTPUT_DIRECTORY, TIMEOUT,
                                            PLAYER_FILE_NAME)

# We print the summary of the game
if gameInfo == {}:
    print("An error occurred during the game")
else:
    print(gameInfo)

####################################################################################################################################################################################################################################
####################################################################################################################################################################################################################################
MAZE_DENSITY = 0.7
MUD_PROBABILITY = 0.1
MAZE_SYMMETRIC = False
NB_PIECES_OF_CHEESE = 11

# Time configuration
TIMING_INFORMATION = (3.0, 0.1)
TIMEOUT = None

# Other useful constants
SHOW_GUI_AND_SHELLS = True
OUTPUT_DIRECTORY = "./savedGames/previousGame/"

####################################################################################################################################################################################################################################
############################################################################################################## SCRIPT ##############################################################################################################
####################################################################################################################################################################################################################################

# We start the game
gameInfo = LaunchersLibrary.startRandomGame(
    MAZE_WIDTH, MAZE_HEIGHT, MAZE_DENSITY, MUD_PROBABILITY, MAZE_SYMMETRIC,
    NB_PIECES_OF_CHEESE, TIMING_INFORMATION, SHOW_GUI_AND_SHELLS,
    OUTPUT_DIRECTORY, TIMEOUT, PLAYER_FILE_NAME)

# We print the summary of the game
if gameInfo == {}:
    print("An error occurred during the game")
else:
    print(gameInfo)

####################################################################################################################################################################################################################################
####################################################################################################################################################################################################################################
SHOW_GUI_AND_SHELLS = False
OUTPUT_DIRECTORY = "./savedGames/previousGame/"
NB_TESTS = 10

####################################################################################################################################################################################################################################
############################################################################################################## SCRIPT ##############################################################################################################
####################################################################################################################################################################################################################################

# We perform tests for all given AIs for all values of the varying parameter
meanResultsPerFile = {fileName:[] for fileName in PLAYERS_FILE_NAMES}
for nbPiecesOfCheese in NB_PIECES_OF_CHEESE :
    for fileName in PLAYERS_FILE_NAMES :
        meanResults = 0.0
        for test in range(NB_TESTS) :
            print(fileName + " -- Nb pieces of cheese " + str(nbPiecesOfCheese) + " -- Test " + str(test + 1) + "/" + str(NB_TESTS))
            gameInfo = LaunchersLibrary.startRandomGame(MAZE_WIDTH, MAZE_HEIGHT, MAZE_DENSITY, MUD_PROBABILITY, MAZE_SYMMETRIC, nbPiecesOfCheese, TIMING_INFORMATION, SHOW_GUI_AND_SHELLS, OUTPUT_DIRECTORY, TIMEOUT, fileName)
            if gameInfo == {} :
                print("An error occurred during the game")
                exit()
            meanResults += gameInfo["player1"]["totalNbMoves"] / NB_TESTS
        meanResultsPerFile[fileName].append(meanResults)

# We plot the result
for fileName in PLAYERS_FILE_NAMES :
    matplotlib.pyplot.plot(NB_PIECES_OF_CHEESE, meanResultsPerFile[fileName])
matplotlib.pyplot.xlabel("Number of pieces of cheese")
matplotlib.pyplot.ylabel("Mean number of moves")
matplotlib.pyplot.legend(PLAYERS_FILE_NAMES)
matplotlib.pyplot.show()

####################################################################################################################################################################################################################################