Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- void cargatab(int [][8]); //Coloca las fichas en su respectivo lugar e inicializa la interfaz grafica
- void impritab(int [][8]); //Imprime el Tablero
- void posicionar(int, int); //Subrutina que posiciona el cursor en la posicion indicada
- void movida_valida (int [][8],int,char,int,char, int); //Analiza los si los movimientos son validos para luego realizarlos
- void mover (int [][8], int, int,int, int, int); //Mueve las fichas
- int traducir (char); //Interpreta las coordenadas qiue introduce el usuario para luego realizar las movidas
- void tab(int [][8]);//solo la interfaz grafica
- int menu(void);
- int revision(int [][8], int );//revisa si no hay mas fichas de un jugador
- void turno(int [][8],int,char,int,char,int);
- char p1[30],p2[30];
- int main(int argc, char *argv[]){
- int tablero[8][8];
- int fin_juego=0;
- int f1,f2;
- char c1,c2;
- menu();
- cargatab(tablero);
- _gotoxy(1,20);
- while(fin_juego==0){
- turno(tablero,f1,c1,f2,c2,fin_juego);
- }
- return 0;
- }
- void tab(int tablero[][8]){
- int i;
- int b=0;
- int c=8;
- system("cls");
- _textcolor(15);
- _gotoxy(1,1);
- for(i=1;i<=17;i++){
- if (b%2==0){
- printf("+---+---+---+---+---+---+---+---+\n");
- }
- else{
- printf("| | | | | | | | | %d \n", c--);
- }
- b++;
- }
- _gotoxy(2 ,18);
- printf(" A B C D E F G H");
- }
- void cargatab(int tablero[][8]){
- int i;
- int b=0;
- int c=8;
- system("cls");
- _textcolor(15);
- _gotoxy(1,1);
- for(i=1;i<=17;i++){
- if (b%2==0){
- printf("+---+---+---+---+---+---+---+---+\n");
- }
- else{
- printf("| | | | | | | | | %d \n", c--);
- }
- b++;
- }
- _gotoxy(2 ,18);
- printf(" A B C D E F G H");
- int x,y;
- for(x=0;x<8;x++){
- for(y=0;y<8;y++){
- tablero[x][y]=0;
- }
- }
- for(x=0;x<8;x++){
- for(y=0;y<8;y++){
- if((x==0 || x==2) && (y%2)==0){
- tablero[x][y]=3;
- }
- if(x==1 && y%2==1){
- tablero[x][y]=3;
- }
- }
- }
- for(x=0;x<8;x++){
- for(y=0;y<8;y++){
- if((x==5 || x==7) && (y%2)==1){
- tablero[x][y]=5;
- }
- if(x==6 && y%2==0){
- tablero[x][y]=5;
- }
- }
- }
- impritab(tablero);
- }
- void impritab(int tablero[][8]){
- int x,y;
- for(x=0;x<8;x++){
- for(y=0;y<8;y++){
- switch (tablero[x][y]){
- case 3:
- _textcolor(15);
- posicionar(y+1,x+1);
- printf("o");
- break;
- case 5:
- _textcolor(12);
- posicionar(y+1,x+1);
- printf("o");
- break;
- case 0:
- _textcolor(12);
- posicionar(y+1,x+1);
- printf(" ");
- break;
- }
- }
- }
- }
- void posicionar(int a, int b){
- int x,y;
- switch (a) {
- case 1:
- x=3;
- break;
- case 2:
- x=7;
- break;
- case 3:
- x=11;
- break;
- case 4:
- x=15;
- break;
- case 5:
- x=19;
- break;
- case 6:
- x=23;
- break;
- case 7:
- x=27;
- break;
- case 8:
- x=31;
- break;
- }
- switch (b) {
- case 1:
- y=16;
- break;
- case 2:
- y=14;
- break;
- case 3:
- y=12;
- break;
- case 4:
- y=10;
- break;
- case 5:
- y=8;
- break;
- case 6:
- y=6;
- break;
- case 7:
- y=4;
- break;
- case 8:
- y=2;
- break;
- }
- _gotoxy(x, y);
- }
- void mover(int tablero [][8], int a, int b, int c, int d,int fin_juego) {
- a--;
- c--;
- if((tablero[a][b]==3 || tablero[a][b]==5) && (tablero[c][d]==0)){
- tablero[c][d]=tablero[a][b];
- tablero[a][b]=0;
- impritab(tablero);
- _gotoxy(1,20);
- else{
- turno(tablero,a,b,c,d,fin_juego);
- }
- }
- }
- void movida_valida(int tablero [][8],int f1, char c1, int f2, char c2,int fin_juego){
- }
- int traducir (char b){
- int numero;
- if (b=='a' || b=='A') { numero=0; }
- if (b=='b' || b=='B') { numero=1; }
- if (b=='c' || b=='C') { numero=2; }
- if (b=='d' || b=='D') { numero=3; }
- if (b=='e' || b=='E') { numero=4; }
- if (b=='f' || b=='F') { numero=5; }
- if (b=='g' || b=='G') { numero=6; }
- if (b=='h' || b=='H') { numero=7; }
- return numero;
- }
- int menu(){
- int opci;
- printf("Bienvenido a Master Damas by Mario Acosta y Juan Carlos Vera \n");
- printf("ingrese su nombre jugador 1:");
- gets(p1);
- printf("ingrese su nombre jugador 2:");
- gets(p2);
- system("cls");
- printf("Bienvenidos jugadores \n");
- printf("Desean ver las reglas o jugar\n");
- printf("Presione 1. Para jugar\n");
- printf("Presione 2. Para ver las reglas\n");
- scanf("%d",&opci);
- while (opci!=1 && opci!=2){
- scanf("%d",&opci);
- }
- if(opci==2){
- system("cls");
- 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)");
- printf("Empieza a jugar quien tiene las fichas obscuras(negras).");
- 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.");
- 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>>,");
- printf("y cayendo en la casilla inmediatamente detras de ella siguiendo la direccion del movimiento de nuestra pieza.");
- printf("Este movimiento se puede realizar siempre y cuando la casilla final este libre.");
- printf("Se puede comer en cadena, siempre y cunado haya espacio al terminar de comer");
- 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");
- system ("pause");
- return 0;
- }
- else {
- return 0;
- }
- }
- int revision(int tablero[][8], int fin_juego){
- int x,y;
- int cont1, cont2;
- cont1=0;
- cont2=0 ;
- for(x=0;x<8;x++){
- for(y=0;y<8;y++){
- if(tablero[x][y]==3){
- cont1+=1;
- }
- if(tablero[x][y]==5){
- cont2+=1;
- }
- }
- }
- if(cont1==0 || cont2==0){
- fin_juego=1;
- }
- return fin_juego;
- }
- void turno(int tablero[][8],int f1,char c1,int f2,char c2, int fin_juego){
- printf("Introduzca movimiento: (Ej. 3 A 4 B) ");
- scanf("%d %c %d %c", &f1,&c1,&f2,&c2);
- mover(tablero,f1,traducir(c1), f2, traducir (c2), fin_juego);
- puts (p1);
- revision(tablero, fin_juego);
- system("cls");
- tab(tablero);
- impritab(tablero);
- _gotoxy(1,20);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement