Tateti en c

Iniciado por netdrag0n, 5 Diciembre 2011, 23:13 PM

0 Miembros y 1 Visitante están viendo este tema.

netdrag0n

aqui les dejo el código de mi un juego conosido hecho en c para opinen sobre el codigo y como mejorarlo este solo sirve en window para linux hay que cambiar la librería  conio.h por curse.h



// tateti por netdrag0n //

#include <stdio.h>
#include <conio.h>


int tic [3][3]={'1','2','3','4','5','6','7','8','9'},i,j,ta,ta1,ta2,ta3,ta4,ta5,ta6,ta7,a,b;
     char op,tateti,valor,jugador,valor2;
                 
  int te();  
 
  int c();
                     
     main()    
{
     
     printf("\n");
     do{
         system("cls");
           
for(i=0;i<3;i++)
              {
                     
                     printf("\n");
                     
                     for(j=0;j<3;j++)
                     {
                              if(tic[i][j]==1)
                               printf("X|");
                               
                                else if(tic[i][j]==0)
                               printf("O|");
                               
                               else
                               printf("%c|",tic[i][j]);
                               }
                               
                               
                             printf("\n------------");
                             printf("\n");
                             
                             
                               }
               if(jugador==1)
               {
                             printf("\n");
                             
              printf("\n jugador X>");
               c(jugador);
               te();
                           
                            jugador=0;
                            }
                                           
                    else if (jugador==0)
               {
                           printf("\n");
                           printf("\n jugador O>");
                           c(jugador);
                            jugador=1;
                            te();
                            }                        
               }
               
               
                 while(tateti!=1);
                     printf(" gano %c \n",op);

     char op2 = getch();
     
     }

te()
{
             
                ta=tic[0][0]+tic[0][1]+tic[0][2];
                ta1=tic[1][0]+tic[1][1]+tic[1][2];
                ta2=tic[2][0]+tic[2][1]+tic[2][2];
               
                 ta3=tic[0][0]+tic[1][0]+tic[2][0];
                 ta4=tic[0][0]+tic[1][1]+tic[2][1];
                 ta5=tic[0][2]+tic[1][2]+tic[2][2];
                 ta6=tic[0][0]+tic[1][1]+tic[2][2];
                 ta7=tic[2][0]+tic[1][1]+tic[0][2];
                 
                 if(ta==0 || ta1==0 || ta2==0 || ta3==0 || ta4==0 || ta5==0 || ta6==0 ||ta7==0)
                               {
                               tateti=1;
                               op='O';
                                    }
                                   
                             if(ta==3 || ta1==3 || ta2==3 || ta3==3 || ta4==3 || ta5==3 || ta6==3||ta7==3)
                               {
                               tateti=1;
                               op='O';
                                   
                                    }
                    return;      
                       
                     main();
                     
                     }
c()
{
            valor = getch();
             if(valor=='1')
               tic[0][0]=jugador;
               
               else if(valor=='2')
               tic[0][1]=jugador;
               
               else if(valor=='3')
               tic[0][2]=jugador;
               
               else if(valor=='4')
               tic[1][0]=jugador;
               
               else if(valor=='5')
               tic[1][1]=jugador;
               
               else if(valor=='6')
               tic[1][2]=jugador;
               
               else if(valor=='7')
               tic[2][0]=jugador;
               
                else if(valor=='8')
               tic[2][1]=jugador;
               
              else  if(valor=='9')
               tic[2][2]=jugador;
               return;
               
                     }




Ferno

Sobre conio.h, te recomiendo leer este hilo: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Por lo demás, te recomiendo leer algún buen libro de C que siga el standard.
Por ejemplo, la declaración de la función main es:

int main (int argc, char* argv[])

Cuando programás en C, todo es una función. No existen procedimientos explícitos. Por ende, todo módulo aparte debe devolver algún valor (sea entero, caracter, etc... si devuelves un tipo void, sería algo análogo a un procedimiento).
Pero en fin, te recomendaría leer algún libro, como El Lenguaje de Programación C de Kernighan & Ritchie (que en paz descanse).

theluigy13etv

A que te refieres con que no existen procedimientos ¿EXPLÍCITOS?

Ferno

Que todo en C es una función. No existen los procedimientos propiamente dichos. Puedes simular uno al programar una función que devuelva un void, pero no más que eso.

theluigy13etv

Ok. Ya te entendí. A nivel general los subprogramas se clasifican en Funciones y Procedimientos. En C solo existen funciones, y cuando se necesite un procedimiento, se hace uso de una función que devuelva el tipo void.

netdrag0n

gracias por el consejo estoy leyendo sobre c y el libro que recomendate

criskapunk

Si recién te inicias en C, te recomiendo el libro Como programar en C/C++ de Deitel&Deitel (Lo estoy siguiendo actualmente y es muy bueno para comenzar).

Lo podés encontrar en el siguiente post:
http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html

Un saludo.

theluigy13etv

Sí muy bueno el de Deithel. Tiene una teoría muy completa. También sirve mucho el "Introducción a la programación con C"

http://ubuntuone.com/p/kRe/