Advertisement
Guest User

Batalha final

a guest
Feb 27th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5. #include <math.h>
  6.  
  7. struct Card
  8. {
  9. int atk;
  10. int life;
  11. int jump;
  12. };
  13.  
  14. void advance(int *i, int *j, int n, int jump)
  15. {
  16. for (int c = 0; c < jump; c++)
  17. {
  18. *j = *j + 1;
  19. if (*j >= n)
  20. {
  21. *j = 0;
  22. *i = *i + 1;
  23. }
  24. }
  25.  
  26. if (*i >= n)
  27. {
  28. *j = n -1;
  29. *i = n -1;
  30. }
  31. }
  32.  
  33. int ambrosio_wins(int life, int damage, int enemyLife, int enemyDamage)
  34. {
  35. // Your Turn
  36. enemyLife -= damage;
  37. if (enemyLife <= 0)
  38. {
  39. // You won.
  40. return 0;
  41. }
  42. // Enemy turn
  43. life -= enemyDamage;
  44. if (life <= 0)
  45. {
  46. // The enemy won.
  47. return 1;
  48. }
  49.  
  50. return ambrosio_wins(life, damage, enemyLife, enemyDamage);
  51. }
  52.  
  53. void NightmareGame(int n, struct Card sofiaBoard[][n], struct Card ambrosioBoard[][n], int maxRounds)
  54. {
  55. int i_ambrosio = 0;
  56. int j_ambrosio = 0;
  57. int i_sofia = 0;
  58. int j_sofia = 0;
  59.  
  60. char win = 'e';
  61.  
  62. while (maxRounds > 0)
  63. {
  64. if (maxRounds <= 0)
  65. {
  66. break;
  67. }
  68. struct Card ambrosio_card = ambrosioBoard[i_ambrosio][j_ambrosio];
  69. struct Card sofia_card = sofiaBoard[i_sofia][j_sofia];
  70.  
  71. if (ambrosio_wins(sofia_card.life, sofia_card.atk, ambrosio_card.life, ambrosio_card.atk))
  72. {
  73. advance(&i_ambrosio, &j_ambrosio, n, ambrosio_card.jump);
  74.  
  75. if (i_ambrosio >= n - 1 && j_ambrosio >= n - 1)
  76. {
  77. win = 'a';
  78. break;
  79. }
  80. }
  81. else {
  82. advance(&i_sofia, &j_sofia, n, sofia_card.jump);
  83.  
  84. if (i_sofia >= n - 1 && j_sofia >= n - 1)
  85. {
  86. win = 's';
  87. break;
  88. }
  89. }
  90. maxRounds--;
  91. }
  92.  
  93. printf("Sofia: (%d, %d)\n", i_sofia, j_sofia);
  94. printf("Ambrosio: (%d, %d)\n", i_ambrosio, j_ambrosio);
  95.  
  96. if (win == 'a')
  97. {
  98. printf("Ambrosio venceu\n");
  99. }
  100. else if (win == 's')
  101. {
  102. printf("Sofia venceu\n");
  103. }
  104. else if (win == 'e')
  105. {
  106. printf("Ninguem venceu\n");
  107. }
  108. }
  109.  
  110. int main()
  111. {
  112. int n;
  113. scanf("%d", &n);
  114.  
  115. struct Card sofiaBoard[n][n];
  116. struct Card ambrosioBoard[n][n];
  117.  
  118. for (int i = 0; i < n; i++)
  119. {
  120. for (int j = 0; j < n; j++)
  121. {
  122. scanf("%d", &sofiaBoard[i][j].atk);
  123. scanf("%d", &sofiaBoard[i][j].life);
  124. scanf("%d", &sofiaBoard[i][j].jump);
  125. }
  126. }
  127.  
  128. for (int i = 0; i < n; i++)
  129. {
  130. for (int j = 0; j < n; j++)
  131. {
  132. scanf("%d", &ambrosioBoard[i][j].atk);
  133. scanf("%d", &ambrosioBoard[i][j].life);
  134. scanf("%d", &ambrosioBoard[i][j].jump);
  135. }
  136. }
  137.  
  138. int maxRounds;
  139. scanf("%d", &maxRounds);
  140.  
  141. NightmareGame(n, sofiaBoard, ambrosioBoard, maxRounds);
  142.  
  143. return 0;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement