Advertisement
c_pinoleo01

c4 2.0

Jan 23rd, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include"conecta4.h"
  4.  
  5. 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}};
  6. int ficha_c4;
  7. int jugador_c4 = 0;
  8. int ganador_c4 = 0;
  9. int columna_c4;
  10. char scanColumna[20];
  11.  
  12.  
  13. void inicializar_juego_c4();
  14.  
  15. char* pedirColumna_c4(char a[20]);
  16.  
  17. int filtroLetras_c4(char a[20]);
  18.  
  19. void ficha_jugador_c4(int a);
  20.  
  21. void imprimir_tablero_c4();
  22.  
  23. int verificar_ganador_c4(int a);
  24.  
  25. void declarar_ganador_c4(int a);
  26.  
  27. void inicializar_juego_c4(){
  28.  
  29. printf("Conecta 4\n \n");
  30. 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");
  31. printf("Este es su tablero:\n \n");
  32.  
  33. for(int i=0; i < 6; i++){
  34. for(int j=0; j < 7; j++){
  35.  
  36. printf("<O> ");
  37.  
  38. }
  39. printf("\n");
  40. }
  41.  
  42. printf("\nEl jugador 1 tendra las fichas amarillas, el jugador 2 las rojas.\n");
  43.  
  44. }
  45.  
  46. char* pedirColumna_c4(char a[20]){
  47.  
  48.  
  49. printf("Turno del jugador %i \n", jugador_c4+1);
  50.  
  51. for(int i=0; i<20; i++){
  52. a[i] = 0;
  53. }
  54.  
  55. printf("Porfavor, elija una columna del 1 al 7: \n");
  56. scanf("%s",a);
  57.  
  58. return a;
  59.  
  60. }
  61.  
  62. int filtroLetras_c4(char a[20]){
  63.  
  64.  
  65. int k=0;
  66. while(k == 0){
  67.  
  68. int column = (int)a[0];
  69.  
  70. if(((column < 56) && (column > 48))){
  71. while(a[1]!=0){
  72. printf("El dato digitado no es un valor correcto. Ingrese un valor numerico correspondiente a alguna columna.\n");
  73. fflush(stdin);
  74. scanf("%s",&a);
  75. }
  76. k=1;
  77. break;
  78. }
  79. else{
  80. printf("El dato digitado no es un valor correcto. Ingrese un valor numerico correspondiente a alguna columna.\n");
  81. fflush(stdin);
  82. scanf("%s",&a);
  83. }
  84. }
  85.  
  86.  
  87.  
  88. int columna = (int)a[0];
  89. columna -=49 ;
  90.  
  91. return columna;
  92.  
  93. }
  94.  
  95. void ficha_jugador_c4(int a){
  96.  
  97. switch(jugador_c4){
  98. case 0:
  99. ficha_c4 = 1;
  100. break;
  101.  
  102. case 1:
  103. ficha_c4 = 2;
  104. break;
  105. }
  106.  
  107. int l = 1;
  108. for (int i = 1; i <7 ; i++){
  109. if (tablero_c4[i][a] == 0)
  110. {
  111. tablero_c4[i][a]= ficha_c4;
  112. l = 0;
  113. break;
  114. }
  115.  
  116. }
  117.  
  118. if(l == 1){
  119. printf("Columna %i llena \n",a+1);
  120. }
  121.  
  122. switch(jugador_c4){
  123. case 0:
  124.  
  125. ficha_c4 = 1;
  126.  
  127. break;
  128.  
  129. case 1:
  130.  
  131. ficha_c4 = 2;
  132.  
  133. break;
  134.  
  135. }
  136.  
  137. if(l == 1){
  138.  
  139. switch(jugador_c4){
  140. case 0:
  141. jugador_c4 = 0;
  142. break;
  143.  
  144. case 1:
  145. jugador_c4 = 1;
  146. break;
  147. }
  148.  
  149. }
  150. else{
  151. switch(jugador_c4){
  152. case 0:
  153. jugador_c4 = 1;
  154. break;
  155.  
  156. case 1:
  157. jugador_c4 = 0;
  158. break;
  159. }
  160.  
  161.  
  162. }
  163. }
  164.  
  165. void imprimir_tablero_c4(){
  166.  
  167. system("CLS");
  168. printf("\n");
  169.  
  170. for(int i=6; i>=1; i--){
  171. for(int j=0; j<7; j++ ){
  172. if(tablero_c4[i][j] == 1){
  173. printf("<A> ", tablero_c4[i][j]);
  174. }
  175. else if(tablero_c4[i][j] == 2){
  176. printf("<R> ", tablero_c4[i][j]);
  177. }
  178. else{
  179. printf("<O> ", tablero_c4[i][j]);
  180. }
  181.  
  182.  
  183. }
  184. printf("\n");
  185.  
  186. }
  187.  
  188. printf("\n");
  189. }
  190.  
  191. int verificar_ganador_c4(int a){
  192.  
  193.  
  194. for(int j=0; j<7; j++){
  195.  
  196.  
  197. for(int i=6; i>0; i--){
  198.  
  199.  
  200. 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)){
  201. if(tablero_c4[i][j]==1){
  202. a = 1;
  203. break;
  204. }
  205. else{
  206. a = 2;
  207. break;
  208. }
  209.  
  210. }
  211. }
  212.  
  213. if((a == 1) || (a == 2)){
  214. break;
  215. }
  216.  
  217. }
  218.  
  219. for(int i=1; i<7; i++){
  220.  
  221.  
  222. for(int j=0; j<5; j++){
  223.  
  224.  
  225. 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)){
  226. if(tablero_c4[i][j]==1){
  227. a = 1;
  228. break;
  229. }
  230. else{
  231. a = 2;
  232. break;
  233. }
  234. }
  235. }
  236.  
  237. if((a == 1) || (a == 2)){
  238. break;
  239. }
  240.  
  241. }
  242. for(int i=1; i<5; i++){
  243.  
  244.  
  245. for(int j=0; j<5; j++){
  246.  
  247.  
  248. 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)){
  249. if(tablero_c4[i][j]==1){
  250. a = 1;
  251. break;
  252. }
  253. else{
  254. a = 2;
  255. break;
  256. }
  257. }
  258. }
  259.  
  260. if((a == 1) || (a == 2)){
  261. break;
  262. }
  263. }
  264.  
  265. for(int i=7; i>3; i--){
  266.  
  267.  
  268. for(int j=0; j<5; j++){
  269.  
  270.  
  271. 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)){
  272. if(tablero_c4[i][j]==1){
  273. a = 1;
  274. break;
  275. }
  276. else{
  277. a = 2;
  278. break;
  279. }
  280. }
  281. }
  282.  
  283. if((a == 1) || (a == 2)){
  284. break;
  285. }
  286. }
  287.  
  288. int contador_c4=0;
  289.  
  290. for(int i=1; i<7; i++){
  291.  
  292. for(int j=0; j<7; j++){
  293.  
  294. if(tablero_c4[i][j] != 0){
  295. contador_c4++;
  296. }
  297.  
  298. }
  299.  
  300. if(contador_c4 == 42){
  301. a = 3;
  302. }
  303. }
  304.  
  305. return a;
  306. }
  307.  
  308. void declarar_ganador_c4(int a){
  309.  
  310. switch(a){
  311. case 1: printf("El ganador es el jugador 1 \n");
  312. break;
  313.  
  314. case 2: printf("El ganador es el jugador 2 \n");
  315. break;
  316.  
  317. case 3: printf("No hay ganador en este juego \n");
  318. break;
  319. }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement