elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1]
1  Programación / Ejercicios / duda sobre programa en c. en: 4 Enero 2018, 19:51 pm
buenas puede ayudarme con este programa de tres en raya con matrices en el cual no soy capaz de hacer que cuando un jugador marque 'x' en por ejemplo la casilla 2, el otro jugador no pueda marcar 'o' en la misma casilla. aun asi no se si he cometido algun error.

Código
  1. [
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(){
  6. int i,j,a,b,fallo,cont,jugador;
  7. char numero,ficha,tablero[3][3];
  8. char nombre1[30],nombre2[30];
  9. printf("NOMBRE DE JUGADOR 1: ");
  10. scanf("%s",nombre1);
  11. printf("NOMBRE DE JUGADOR 2: ");
  12. scanf("%s",nombre2);
  13. numero='1';
  14. for(i=0;i<3;i++){
  15. for(j=0;j<3;j++){
  16. tablero[i][j]=numero++;
  17. }
  18. }
  19.  
  20. printf("\n---------------\n");
  21. for(i=0;i<3;i++){
  22. for(j=0;j<3;j++){
  23. printf("| %c |",tablero[i][j]);
  24. }
  25. printf("\n---------------\n");
  26.  
  27. }
  28. cont=0;
  29.  
  30. do{
  31. do{
  32. if(cont==0||cont==1||cont==4||cont==5||cont==8||cont==9){jugador=1;}
  33. else{jugador=2;}
  34.  
  35. if(jugador==1){
  36. printf("%s seleccione posicion:  ",nombre1);
  37. scanf("%c",&ficha);
  38. }
  39. else{
  40. printf("%s seleccione posicion:  ",nombre2);
  41. scanf("%c",&ficha);
  42. }
  43. fallo=0;
  44. switch(ficha){
  45. case '1':{
  46. if(tablero[0][0]=='X'||tablero[0][0]=='O')
  47. fallo=1;
  48. printf("casilla esta ocupada\n");
  49. if(jugador==1){tablero[0][0]='X';}
  50. else{tablero[0][0]='O';}
  51.  
  52. break;
  53. }
  54. case '2':{
  55. if(jugador==1){tablero[0][1]='X';}
  56. else{tablero[0][1]='O';}
  57. break;
  58. }
  59. case '3':{
  60. if(jugador==1){tablero[0][2]='X';}
  61. else{tablero[0][2]='O';}
  62. break;
  63. }
  64. case '4':{
  65. if(jugador==1){tablero[1][0]='X';}
  66. else{tablero[1][0]='O';}
  67. break;
  68. }
  69. case '5':{
  70. if(jugador==1){tablero[1][1]='X';}
  71. else{tablero[1][1]='O';}
  72. break;
  73. }
  74. case '6':{
  75. if(jugador==1){tablero[1][2]='X';}
  76. else{tablero[1][2]='O';}
  77. break;
  78. }
  79. case '7':{
  80. if(jugador==1){tablero[2][0]='X';}
  81. else{tablero[2][0]='O';}
  82. break;
  83. }
  84. case '8':{
  85. if(jugador==1){tablero[2][1]='X';}
  86. else{tablero[2][1]='O';}
  87. break;
  88. }
  89. case '9':{
  90. if(jugador==1){tablero[2][2]='X';}
  91. else{tablero[2][2]='O';}
  92. break;
  93. }
  94.  
  95.  
  96. }
  97. }while(fallo==1);
  98. cont++;
  99.  
  100. system("cls");
  101. printf("\n---------------\n");
  102. for(i=0;i<3;i++){
  103. for(j=0;j<3;j++){
  104. printf("| %c |",tablero[i][j]);
  105. }
  106. printf("\n---------------\n");
  107.  
  108. }
  109.  
  110. }while(cont<=16);
  111.  
  112.  
  113.  
  114.  
  115. system("pause");
  116. return 0;
  117. }
  118. ]


· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines