Advertisement
mantertius

pokemon_v2.c

Dec 10th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define bez_life v2
  5. #define bez_dmg d2
  6. #define clo_life v1
  7. #define clo_dmg d1 //atalho para d1
  8.  
  9. #define bez_wins 77
  10. #define clo_wins 88
  11.  
  12. #define bez_hability 121
  13. #define clo_hability 50
  14.  
  15. #define bez 95
  16. #define clo 59
  17. //Bezaliel vai atacar todos os turnos até derrotar o inimigo ou perder tentando
  18. //Clodes vai usar a habilidade de incrementar o dano de seu pokemon até chegar num ponto que não possa mais perder(qual o ponto?) e só então começar a atacar
  19. //Considere que o pokemon de Clodes é o mais rápido, ou seja, ele sempre ataca primeiro
  20.  
  21. int clo_dano[]={0}; //dano de clo em cada turno, reseta em cada stat_scan()
  22. int clo_vida[]={0}; //vida de clo em cada turno, reseta em cada stat_scan()
  23. int bez_dano[]={0}; //dano de bez em cada turno, reseta em cada stat_scan()
  24. int bez_vida[]={0}; //vida de bez em cada turno, reseta em cada stat_scan()
  25.  
  26.  
  27.  
  28. int hability(int nome, int numero_do_turno)
  29. {  
  30.    clo_vida[numero_do_turno] = clo_vida[numero_do_turno-1];
  31.    printf("\nantes da analise:{%d}\n",clo_vida[numero_do_turno]);
  32.     if (nome == bez)
  33.     {
  34.         bez_dano[numero_do_turno] = clo_dano[numero_do_turno];
  35.         printf("-1:{%d}\n",clo_vida[numero_do_turno-1]);
  36.         printf("-1:{%d}\n",bez_dano[numero_do_turno]);
  37.  
  38.         clo_vida[numero_do_turno] = clo_vida[numero_do_turno-1] - bez_dano[numero_do_turno];
  39.         printf("2:{%d}\n",clo_vida[numero_do_turno]);
  40.         return 1;
  41.     }
  42.     else if (nome == clo)
  43.     {
  44.         clo_vida[numero_do_turno] = clo_vida[numero_do_turno-1];
  45.  
  46.         if (clo_dano[numero_do_turno] == bez_vida [numero_do_turno])
  47.         {
  48.             bez_vida[numero_do_turno] = 0;
  49.         }
  50.         else
  51.         {
  52.             bez_vida[numero_do_turno]= bez_vida[numero_do_turno-1];
  53.         }
  54.         clo_dano[numero_do_turno] = clo_dano[numero_do_turno-1] + 50;
  55.         printf("\ndepois de analisar clo:[%d]",clo_vida[numero_do_turno]);
  56.         return 2;
  57.     }
  58.     else
  59.     {
  60.         return 123123123;
  61.     }
  62.    
  63. }
  64. int turn(int nome, int numero_do_turno) //analiza o turno
  65. {
  66.     if (nome == bez)
  67.     {
  68.         return hability(bez,numero_do_turno);
  69.     }
  70.     else if (nome == clo)
  71.     {
  72.         return hability(clo,numero_do_turno);
  73.     }
  74.    
  75. }
  76. int battle(int v1, int d1, int v2, int d2, int numero_do_turno) //analisa a vida dos pokemons a cada turno e retorna o vencedor
  77. {
  78.     turn(clo,numero_do_turno);
  79.     turn(bez,numero_do_turno);  
  80.     v1 = clo_vida[numero_do_turno];
  81.     v2 = bez_vida[numero_do_turno];
  82.     d1 = clo_dano[numero_do_turno];
  83.     d2 = bez_dano[numero_do_turno];
  84.    
  85.     printf("\n------------------------- RODADA %d -------------------------\n",numero_do_turno);
  86.     printf("STORAGE: clo_vida[%d] = [%d], bez_vida[%d] = [%d]\nSTORAGE: clo_dano[%d] = [%d], bez_dano[%d] = [%d]\n",numero_do_turno,clo_vida[numero_do_turno],numero_do_turno,bez_vida[numero_do_turno],numero_do_turno,clo_dano[numero_do_turno],numero_do_turno,bez_dano[numero_do_turno]);
  87.  
  88.     if (clo_life <= 0)
  89.     {
  90.         return bez_wins; //bez wins
  91.     }
  92.     if (bez_life <= 0)
  93.     {
  94.         return clo_wins;
  95.     }
  96.  
  97.  
  98.     battle(v1,d1,v2,d2,numero_do_turno+1);
  99.  
  100. }
  101.  
  102. int stat_scan (int n_battles) //recebe os inputs baseado no numero de batalhas
  103. {
  104.     if ( n_battles == 0)
  105.     {
  106.         return 42;
  107.     }
  108.     int v1;
  109.     int v2;
  110.     int d1;
  111.     int d2;
  112.     scanf("%d",&v1);
  113.     scanf("%d",&v2);
  114.     scanf("%d",&d1);
  115.     scanf("%d",&d2);
  116.  
  117.     clo_dano[0]=clo_dmg;
  118.     clo_vida[0]=clo_life;
  119.     bez_dano[0]=bez_dmg;
  120.     bez_vida[0]=bez_life;
  121.    
  122.     printf("\n======================== COMEÇO DA BATALHA ======================================\n");
  123.     printf("INPUT:            v1 = {%d},          v2 = {%d},          d1 = {%d},          v2 = {%d}\n",v1,v2,d1,d2);
  124.     printf("STORAGE: clo_vida[0] = [%d], bez_vida[0] = [%d], clo_dano[0] = [%d], bez_dano[0] = [%d]\n",clo_vida[0],bez_vida[0],clo_dano[0],bez_dano[0]);
  125.     int resultado = battle(v1,v2,d1,d2,1); //resultado da batalha
  126.  
  127.     if (resultado == bez_wins)
  128.     {
  129.         printf("Bezaliel\n");
  130.     }
  131.     if (resultado == clo_wins)
  132.     {
  133.         printf("\n!Clodes!\n");
  134.     }
  135.     stat_scan(n_battles-1);
  136.    
  137. }
  138.  
  139. int main () //recebe o numero de batalhas e começa o processo
  140. {
  141.     int n_battles;
  142.     scanf("%d",&n_battles);
  143.     stat_scan(n_battles);
  144.     return 0;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement