Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. void cargatab(int [][8]); //Coloca las fichas en su respectivo lugar e inicializa la interfaz grafica
  6. void impritab(int [][8]); //Imprime el Tablero
  7. void posicionar(int, int); //Subrutina que posiciona el cursor en la posicion indicada
  8. void movida_valida (int [][8],int,char,int,char, int); //Analiza los si los movimientos son validos para luego realizarlos
  9. void mover (int [][8], int, int,int, int, int); //Mueve las fichas
  10. int traducir (char); //Interpreta las coordenadas qiue introduce el usuario para luego realizar las movidas
  11. void tab(int [][8]);//solo la interfaz grafica
  12. int menu(void);
  13. int revision(int [][8], int );//revisa si no hay mas fichas de un jugador
  14. void turno(int [][8],int,char,int,char,int);
  15. char p1[30],p2[30];
  16.  
  17. int main(int argc, char *argv[]){
  18.  int tablero[8][8];
  19.  int fin_juego=0;
  20.  int f1,f2;
  21.  char c1,c2;
  22.  menu();
  23.  cargatab(tablero);
  24.  _gotoxy(1,20);
  25.     while(fin_juego==0){
  26.          turno(tablero,f1,c1,f2,c2,fin_juego);
  27.     }
  28.   return 0;
  29. }
  30. void tab(int tablero[][8]){
  31.     int i;
  32.     int b=0;
  33.     int c=8;
  34.     system("cls");
  35.     _textcolor(15);
  36.     _gotoxy(1,1);
  37.     for(i=1;i<=17;i++){
  38.         if (b%2==0){
  39.            printf("+---+---+---+---+---+---+---+---+\n");
  40.         }
  41.         else{
  42.            printf("|   |   |   |   |   |   |   |   | %d \n", c--);
  43.         }
  44.         b++;
  45.     }
  46.     _gotoxy(2 ,18);
  47.     printf(" A   B   C   D   E   F   G   H");
  48. }
  49. void cargatab(int tablero[][8]){
  50.     int i;
  51.     int b=0;
  52.     int c=8;
  53.     system("cls");
  54.     _textcolor(15);
  55.     _gotoxy(1,1);
  56.     for(i=1;i<=17;i++){
  57.         if (b%2==0){
  58.            printf("+---+---+---+---+---+---+---+---+\n");
  59.         }
  60.         else{
  61.            printf("|   |   |   |   |   |   |   |   | %d \n", c--);
  62.         }
  63.         b++;
  64.     }
  65.     _gotoxy(2 ,18);
  66.     printf(" A   B   C   D   E   F   G   H");
  67. int x,y;
  68.     for(x=0;x<8;x++){
  69.         for(y=0;y<8;y++){
  70.             tablero[x][y]=0;
  71.          }
  72.       }
  73.     for(x=0;x<8;x++){
  74.         for(y=0;y<8;y++){
  75.             if((x==0 || x==2) && (y%2)==0){
  76.                tablero[x][y]=3;
  77.               }
  78.             if(x==1 && y%2==1){
  79.                tablero[x][y]=3;
  80.              }
  81.           }
  82.        }
  83.        for(x=0;x<8;x++){
  84.            for(y=0;y<8;y++){
  85.                if((x==5 || x==7) && (y%2)==1){
  86.                   tablero[x][y]=5;
  87.                  }
  88.                if(x==6 && y%2==0){
  89.                   tablero[x][y]=5;
  90.                  }
  91.              }
  92.           }
  93.     impritab(tablero);
  94. }
  95. void impritab(int tablero[][8]){
  96. int x,y;
  97.     for(x=0;x<8;x++){
  98.         for(y=0;y<8;y++){
  99.             switch (tablero[x][y]){
  100.             case 3:
  101.                 _textcolor(15);
  102.                 posicionar(y+1,x+1);
  103.                 printf("o");
  104.                 break;
  105.             case 5:
  106.                 _textcolor(12);
  107.                 posicionar(y+1,x+1);
  108.                 printf("o");
  109.                 break;
  110.             case 0:
  111.                 _textcolor(12);
  112.                 posicionar(y+1,x+1);
  113.                 printf(" ");
  114.                 break;
  115.             }
  116.          }
  117.       }
  118. }
  119. void posicionar(int a, int b){
  120.     int x,y;
  121.     switch (a) {
  122.         case 1:
  123.             x=3;
  124.             break;
  125.         case 2:
  126.             x=7;
  127.             break;
  128.         case 3:
  129.             x=11;
  130.             break;
  131.         case 4:
  132.             x=15;
  133.             break;
  134.         case 5:
  135.             x=19;
  136.             break;
  137.         case 6:
  138.             x=23;
  139.             break;
  140.         case 7:
  141.             x=27;
  142.             break;
  143.         case 8:
  144.             x=31;
  145.             break;
  146.         }
  147.     switch (b) {
  148.         case 1:
  149.             y=16;
  150.             break;
  151.         case 2:
  152.             y=14;
  153.             break;
  154.         case 3:
  155.             y=12;
  156.             break;
  157.         case 4:
  158.             y=10;
  159.             break;
  160.         case 5:
  161.             y=8;
  162.             break;
  163.         case 6:
  164.             y=6;
  165.             break;
  166.         case 7:
  167.             y=4;
  168.             break;
  169.         case 8:
  170.             y=2;
  171.             break;
  172.         }
  173.     _gotoxy(x, y);
  174. }
  175. void mover(int tablero [][8], int a, int b, int c, int d,int fin_juego) {
  176.     a--;
  177.     c--;
  178.     if((tablero[a][b]==3 || tablero[a][b]==5) && (tablero[c][d]==0)){
  179.             tablero[c][d]=tablero[a][b];
  180.             tablero[a][b]=0;
  181.             impritab(tablero);
  182.             _gotoxy(1,20);
  183.         else{
  184.          turno(tablero,a,b,c,d,fin_juego);
  185.         }
  186.     }  
  187. }
  188. void movida_valida(int tablero [][8],int f1, char c1, int f2, char c2,int fin_juego){
  189.  
  190. }
  191. int traducir (char b){
  192.     int numero;
  193.     if (b=='a' || b=='A') { numero=0; }
  194.     if (b=='b' || b=='B') { numero=1; }
  195.     if (b=='c' || b=='C') { numero=2; }
  196.     if (b=='d' || b=='D') { numero=3; }
  197.     if (b=='e' || b=='E') { numero=4; }
  198.     if (b=='f' || b=='F') { numero=5; }
  199.     if (b=='g' || b=='G') { numero=6; }
  200.     if (b=='h' || b=='H') { numero=7; }
  201.     return numero;
  202. }
  203.  
  204. int menu(){
  205.      int opci;
  206.      printf("Bienvenido a Master Damas by Mario Acosta y Juan Carlos Vera \n");
  207.      printf("ingrese su nombre jugador 1:");
  208.      gets(p1);
  209.      printf("ingrese su nombre jugador 2:");
  210.      gets(p2);
  211.      system("cls");
  212.      printf("Bienvenidos jugadores \n");
  213.      printf("Desean ver las reglas o jugar\n");
  214.      printf("Presione 1. Para jugar\n");
  215.      printf("Presione 2. Para ver las reglas\n");
  216.      scanf("%d",&opci);
  217.      while (opci!=1 && opci!=2){
  218.           scanf("%d",&opci);          
  219.      }
  220.      if(opci==2){
  221.             system("cls");
  222.             printf("Las damas son jugadas por dos personas en un tablero de 8x8 celdas.Cada jugador dispone de 12 piezas de un mismo color (el uno rojas, el otro negras)");
  223.             printf("Empieza a jugar quien tiene las fichas obscuras(negras).");
  224.             printf("Las piezas se mueven una posicion adelante (nunca hacia atras) en diagonal a la derecha o a la izquierda, a una posicion adyacente vacia.");
  225.             printf("Para comer una pieza contraria debe estar justo delante de una de tus piezas. Se realiza siempre en direcciΓ³n de ataque y en diagonal saltando sobre la pieza que queremos <<comer>>,");
  226.             printf("y cayendo en la casilla inmediatamente detras de ella siguiendo la direccion del movimiento de nuestra pieza.");
  227.             printf("Este movimiento se puede realizar siempre y cuando la casilla final este libre.");
  228.             printf("Se puede comer en cadena, siempre y cunado haya espacio al terminar de comer");
  229.             printf("Cuando se llega al otro lado del tablero se <<corona>> y la dama se vuelve reina, esta pieza puede moverser por todo el tablero(en diagonal)y tan como asi\n \n");
  230.             system ("pause");
  231.             return 0;
  232.      }
  233.     else {
  234.                  return 0;
  235.      }
  236. }
  237. int revision(int tablero[][8], int fin_juego){
  238. int x,y;
  239. int cont1, cont2;
  240. cont1=0;
  241. cont2=0 ;
  242.     for(x=0;x<8;x++){
  243.         for(y=0;y<8;y++){
  244.            if(tablero[x][y]==3){
  245.             cont1+=1;
  246.             }
  247.            if(tablero[x][y]==5){
  248.             cont2+=1;
  249.             }
  250.         }
  251.     }
  252.     if(cont1==0 || cont2==0){
  253.         fin_juego=1;
  254.     }
  255.         return fin_juego;
  256. }
  257. void turno(int tablero[][8],int f1,char c1,int f2,char c2, int fin_juego){
  258.  printf("Introduzca movimiento: (Ej. 3 A 4 B) ");
  259.         scanf("%d %c %d %c", &f1,&c1,&f2,&c2);
  260.         mover(tablero,f1,traducir(c1), f2, traducir (c2), fin_juego);
  261.         puts (p1);
  262.         revision(tablero, fin_juego);
  263.         system("cls");
  264.         tab(tablero);
  265.         impritab(tablero);
  266.         _gotoxy(1,20);
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement