Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************
- * Operator > pour toi
- *************************/
- LEX_GT(isPlayerAlive);
- if(!isPlayerAlive && !other.isPlayerAlive)
- {
- LEX_GT(roundNb);
- }
- if(boxesLeftBeginningSimulation >= 0) {
- //C'est une variable indépendante de l'état final de la simulation, à fixer par exemple en globale avant ton SA /!\ important
- //On n'est pas en fin de partie
- LEX_GT_D(discountedScore);
- LEX_LT_D(bombCost);
- }
- LEX_LT(rank)
- //Fin de partie
- if(rank == lastAlive) {
- //On attaque
- LEX_LT(nbAliveOtherPlayers);
- LEX_GT_D(bombCost); //Attention au signe ! On maximise le coût des bombes : on en pose un max le plus tôt possible.
- LEX_LT(distToBestPlayer);
- } else {
- //On survit
- LEX_LT_D(bombCost); //On minimise le coût des bombes : poser un minimum et le plus tard possible
- LEX_GT(distToClosestPlayer);
- LEX_GT(distToMapCenter);
- LEX_LT(nbAliveOtherPlayers);
- }
- /************************
- * Operator > pour l'adversaire
- *************************/
- LEX_GT(isPlayerAlive);
- if(!isPlayerAlive && !other.isPlayerAlive)
- {
- LEX_GT(roundNb);
- }
- if(boxesLeftBeginningSimulation >= 0) {
- //C'est une variable indépendante de l'état final de la simulation, à fixer par exemple en globale avant ton SA /!\ important
- //On n'est pas en fin de partie
- LEX_GT(discountedScore);
- LEX_LT(bombCost);
- }
- //Il m'attaque
- LEX_LT(je suis vivant); //pas l'adversaire que tu es en train de simuler, ton player à toi
- LEX_GT(bombCost); //Attention au signe ! On maximise le coût des bombes : on en pose un max le plus tôt possible.
- LEX_LT(dist to me); //comme d'hab sommé à chaque tour
- /******************************/
- double discountedScore = 0.0; //début de simulation
- double bombCost = 0.0; //début de simulation
- double gamma = 0.8-(nCaissesRestantes/nCaissesDebut)*(0.99-0.8)
- discountedScore += 1.0*gamma^gameTurn; //Quand tu éclates une caisse
- discountedScore -= 0.5*gamma^gameTurn; //Quand l'adversaire éclate une caisse
- discountedScore += (3.0/(1+player.currentRange))*gamma^gameTurn; //Quand tu prends un bonus de range
- discountedScore += (3.0/(3+player.maxNBombs))*gamma^gameTurn; //Quand tu prends un bonus de nombre de bombes
- bombCost += 1.0/(3+nBombsLeft)*gamma^gameTurn; //Celui là je ne sais pas, il faudrait tenter un coût fixe (pas de gamma^gameTurn) voire même un coût divisé par gamma^gameTurn (favoriser les bombes posées plus tôt)
- int lastAlive = ; //nombre de personnes vivantes au début du tour
- distToMapCenter : il faut sommer à chaque tour la distance au point central
- distToBestPlayer et distToClosestPlayer : pareil il faut somme ça à chaque tour
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement