Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #include <math.h>
- struct Card
- {
- int atk;
- int life;
- int jump;
- };
- void advance(int *i, int *j, int n, int jump)
- {
- for (int c = 0; c < jump; c++)
- {
- *j = *j + 1;
- if (*j >= n)
- {
- *j = 0;
- *i = *i + 1;
- }
- }
- if (*i >= n)
- {
- *j = n -1;
- *i = n -1;
- }
- }
- int ambrosio_wins(int life, int damage, int enemyLife, int enemyDamage)
- {
- // Your Turn
- enemyLife -= damage;
- if (enemyLife <= 0)
- {
- // You won.
- return 0;
- }
- // Enemy turn
- life -= enemyDamage;
- if (life <= 0)
- {
- // The enemy won.
- return 1;
- }
- return ambrosio_wins(life, damage, enemyLife, enemyDamage);
- }
- void NightmareGame(int n, struct Card sofiaBoard[][n], struct Card ambrosioBoard[][n], int maxRounds)
- {
- int i_ambrosio = 0;
- int j_ambrosio = 0;
- int i_sofia = 0;
- int j_sofia = 0;
- char win = 'e';
- while (maxRounds > 0)
- {
- if (maxRounds <= 0)
- {
- break;
- }
- struct Card ambrosio_card = ambrosioBoard[i_ambrosio][j_ambrosio];
- struct Card sofia_card = sofiaBoard[i_sofia][j_sofia];
- if (ambrosio_wins(sofia_card.life, sofia_card.atk, ambrosio_card.life, ambrosio_card.atk))
- {
- advance(&i_ambrosio, &j_ambrosio, n, ambrosio_card.jump);
- if (i_ambrosio >= n - 1 && j_ambrosio >= n - 1)
- {
- win = 'a';
- break;
- }
- }
- else {
- advance(&i_sofia, &j_sofia, n, sofia_card.jump);
- if (i_sofia >= n - 1 && j_sofia >= n - 1)
- {
- win = 's';
- break;
- }
- }
- maxRounds--;
- }
- printf("Sofia: (%d, %d)\n", i_sofia, j_sofia);
- printf("Ambrosio: (%d, %d)\n", i_ambrosio, j_ambrosio);
- if (win == 'a')
- {
- printf("Ambrosio venceu\n");
- }
- else if (win == 's')
- {
- printf("Sofia venceu\n");
- }
- else if (win == 'e')
- {
- printf("Ninguem venceu\n");
- }
- }
- int main()
- {
- int n;
- scanf("%d", &n);
- struct Card sofiaBoard[n][n];
- struct Card ambrosioBoard[n][n];
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- scanf("%d", &sofiaBoard[i][j].atk);
- scanf("%d", &sofiaBoard[i][j].life);
- scanf("%d", &sofiaBoard[i][j].jump);
- }
- }
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- scanf("%d", &ambrosioBoard[i][j].atk);
- scanf("%d", &ambrosioBoard[i][j].life);
- scanf("%d", &ambrosioBoard[i][j].jump);
- }
- }
- int maxRounds;
- scanf("%d", &maxRounds);
- NightmareGame(n, sofiaBoard, ambrosioBoard, maxRounds);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement