Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- int tablero_c4[7][7] = {{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0}};
- int ficha_c4;
- int jugador_c4 = 0;
- int ganador_c4 = 0;
- int columna_c4;
- char scanColumna[20];
- void inicializar_juego_c4();
- char* pedirColumna_c4(char a[20]);
- int filtroLetras_c4(char a[20]);
- void ficha_jugador_c4(int a);
- void imprimir_tablero_c4();
- int verificar_ganador_c4(int a);
- void declarar_ganador_c4(int a);
- int main(){
- inicializar_juego_c4();
- while(ganador_c4 == 0){
- char *column = pedirColumna_c4(scanColumna);
- columna_c4 = filtroLetras_c4(column);
- ficha_jugador_c4(columna_c4);
- imprimir_tablero_c4();
- ganador_c4 = verificar_ganador_c4(ganador_c4);
- }
- declarar_ganador_c4(ganador_c4);
- return 0;
- }
- void inicializar_juego_c4(){
- printf("Conecta 4\n \n");
- printf("Bienvenido a Conecta 4.\nEl primer jugador en conseguir que cuatro de sus fichas formen una linea \n(Ya sea horizontal, vertical o diagonal), gana.\n");
- printf("Este es su tablero:\n \n");
- for(int i=0; i < 6; i++){
- for(int j=0; j < 7; j++){
- printf("<O> ");
- }
- printf("\n");
- }
- printf("\nEl jugador 1 tendra las fichas amarillas, el jugador 2 las rojas.\n");
- }
- char* pedirColumna_c4(char a[20]){
- printf("Turno del jugador %i \n", jugador_c4+1);
- for(int i=0; i<20; i++){
- a[i] = 0;
- }
- printf("Porfavor, elija una columna del 1 al 7: \n");
- scanf("%s",a);
- return a;
- }
- int filtroLetras_c4(char a[20]){
- int k=0;
- while(k == 0){
- int column = (int)a[0];
- if(((column < 56) && (column > 48))){
- while(a[1]!=0){
- printf("El dato digitado no es un valor correcto. Ingrese un valor numerico correspondiente a alguna columna.\n");
- fflush(stdin);
- scanf("%s",&a);
- }
- k=1;
- break;
- }
- else{
- printf("El dato digitado no es un valor correcto. Ingrese un valor numerico correspondiente a alguna columna.\n");
- fflush(stdin);
- scanf("%s",&a);
- }
- }
- int columna = (int)a[0];
- columna -=49 ;
- return columna;
- }
- void ficha_jugador_c4(int a){
- switch(jugador_c4){
- case 0:
- ficha_c4 = 1;
- break;
- case 1:
- ficha_c4 = 2;
- break;
- }
- int l = 1;
- for (int i = 1; i <7 ; i++){
- if (tablero_c4[i][a] == 0)
- {
- tablero_c4[i][a]= ficha_c4;
- l = 0;
- break;
- }
- }
- if(l == 1){
- printf("Columna %i llena \n",a+1);
- }
- switch(jugador_c4){
- case 0:
- ficha_c4 = 1;
- break;
- case 1:
- ficha_c4 = 2;
- break;
- }
- if(l == 1){
- switch(jugador_c4){
- case 0:
- jugador_c4 = 0;
- break;
- case 1:
- jugador_c4 = 1;
- break;
- }
- }
- else{
- switch(jugador_c4){
- case 0:
- jugador_c4 = 1;
- break;
- case 1:
- jugador_c4 = 0;
- break;
- }
- }
- }
- void imprimir_tablero_c4(){
- system("CLS");
- printf("\n");
- for(int i=6; i>=1; i--){
- for(int j=0; j<7; j++ ){
- if(tablero_c4[i][j] == 1){
- printf("<A> ", tablero_c4[i][j]);
- }
- else if(tablero_c4[i][j] == 2){
- printf("<R> ", tablero_c4[i][j]);
- }
- else{
- printf("<O> ", tablero_c4[i][j]);
- }
- }
- printf("\n");
- }
- printf("\n");
- }
- int verificar_ganador_c4(int a){
- for(int j=0; j<7; j++){
- for(int i=6; i>0; i--){
- if((tablero_c4[i][j]==tablero_c4[i-1][j]) && (tablero_c4[i-1][j]==tablero_c4[i-2][j]) && (tablero_c4[i-2][j]==tablero_c4[i-3][j]) && (tablero_c4[i][j]!= 0)){
- if(tablero_c4[i][j]==1){
- a = 1;
- break;
- }
- else{
- a = 2;
- break;
- }
- }
- }
- if((a == 1) || (a == 2)){
- break;
- }
- }
- for(int i=1; i<7; i++){
- for(int j=0; j<5; j++){
- if((tablero_c4[i][j]==tablero_c4[i][j+1]) && (tablero_c4[i][j+1]==tablero_c4[i][j+2]) && (tablero_c4[i][j+2]==tablero_c4[i][j+3]) && (tablero_c4[i][j]!= 0)){
- if(tablero_c4[i][j]==1){
- a = 1;
- break;
- }
- else{
- a = 2;
- break;
- }
- }
- }
- if((a == 1) || (a == 2)){
- break;
- }
- }
- for(int i=1; i<5; i++){
- for(int j=0; j<5; j++){
- if((tablero_c4[i][j]==tablero_c4[i+1][j+1]) && (tablero_c4[i+1][j+1]==tablero_c4[i+2][j+2]) && (tablero_c4[i+2][j+2]==tablero_c4[i+3][j+3]) && (tablero_c4[i][j]!=0)){
- if(tablero_c4[i][j]==1){
- a = 1;
- break;
- }
- else{
- a = 2;
- break;
- }
- }
- }
- if((a == 1) || (a == 2)){
- break;
- }
- }
- for(int i=7; i>3; i--){
- for(int j=0; j<5; j++){
- if((tablero_c4[i][j]==tablero_c4[i-1][j+1]) && (tablero_c4[i-1][j+1]==tablero_c4[i-2][j+2]) && (tablero_c4[i-2][j+2]==tablero_c4[i-3][j+3]) && (tablero_c4[i][j]!=0)){
- if(tablero_c4[i][j]==1){
- a = 1;
- break;
- }
- else{
- a = 2;
- break;
- }
- }
- }
- if((a == 1) || (a == 2)){
- break;
- }
- }
- int contador_c4=0;
- for(int i=1; i<7; i++){
- for(int j=0; j<7; j++){
- if(tablero_c4[i][j] != 0){
- contador_c4++;
- }
- }
- if(contador_c4 == 42){
- a = 3;
- }
- }
- return a;
- }
- void declarar_ganador_c4(int a){
- switch(a){
- case 1: printf("El ganador es el jugador 1 \n");
- break;
- case 2: printf("El ganador es el jugador 2 \n");
- break;
- case 3: printf("No hay ganador en este juego \n");
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement