Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. /************************
  2. *  Operator > pour toi
  3. *************************/
  4. LEX_GT(isPlayerAlive);
  5. if(!isPlayerAlive && !other.isPlayerAlive)
  6. {
  7.     LEX_GT(roundNb);
  8. }
  9.  
  10. if(boxesLeftBeginningSimulation >= 0) {
  11.     //C'est une variable indépendante de l'état final de la simulation, à fixer par exemple en globale avant ton SA /!\ important
  12.     //On n'est pas en fin de partie
  13.  
  14.     LEX_GT_D(discountedScore);
  15.     LEX_LT_D(bombCost);
  16. }
  17. LEX_LT(rank)
  18. //Fin de partie
  19. if(rank == lastAlive) {
  20.     //On attaque
  21.     LEX_LT(nbAliveOtherPlayers);
  22.     LEX_GT_D(bombCost); //Attention au signe ! On maximise le coût des bombes : on en pose un max le plus tôt possible.
  23.     LEX_LT(distToBestPlayer);
  24. } else {
  25.     //On survit
  26.     LEX_LT_D(bombCost); //On minimise le coût des bombes : poser un minimum et le plus tard possible
  27.     LEX_GT(distToClosestPlayer);
  28.     LEX_GT(distToMapCenter);
  29.     LEX_LT(nbAliveOtherPlayers);
  30. }  
  31.  
  32.  
  33. /************************
  34. *  Operator > pour l'adversaire
  35. *************************/
  36. LEX_GT(isPlayerAlive);
  37. if(!isPlayerAlive && !other.isPlayerAlive)
  38. {
  39.     LEX_GT(roundNb);
  40. }
  41.  
  42. if(boxesLeftBeginningSimulation >= 0) {
  43.     //C'est une variable indépendante de l'état final de la simulation, à fixer par exemple en globale avant ton SA /!\ important
  44.     //On n'est pas en fin de partie
  45.  
  46.     LEX_GT(discountedScore);
  47.     LEX_LT(bombCost);
  48. }
  49.  
  50. //Il m'attaque
  51. LEX_LT(je suis vivant); //pas l'adversaire que tu es en train de simuler, ton player à toi
  52. LEX_GT(bombCost); //Attention au signe ! On maximise le coût des bombes : on en pose un max le plus tôt possible.
  53. LEX_LT(dist to me); //comme d'hab sommé à chaque tour
  54.  
  55.  
  56.  
  57.  
  58. /******************************/
  59.  
  60.  
  61. double discountedScore = 0.0; //début de simulation
  62. double bombCost = 0.0; //début de simulation
  63. double gamma = 0.8-(nCaissesRestantes/nCaissesDebut)*(0.99-0.8)
  64.  
  65. discountedScore += 1.0*gamma^gameTurn; //Quand tu éclates une caisse
  66. discountedScore -= 0.5*gamma^gameTurn; //Quand l'adversaire éclate une caisse
  67. discountedScore += (3.0/(1+player.currentRange))*gamma^gameTurn; //Quand tu prends un bonus de range
  68. discountedScore += (3.0/(3+player.maxNBombs))*gamma^gameTurn; //Quand tu prends un bonus de nombre de bombes
  69. 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)
  70.  
  71. int lastAlive = ; //nombre de personnes vivantes au début du tour
  72.  
  73. distToMapCenter : il faut sommer à chaque tour la distance au point central
  74. distToBestPlayer    et   distToClosestPlayer   : pareil il faut somme ça à chaque tour
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement