Advertisement
c_pinoleo01

c4

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