Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: netdrag0n en 5 Diciembre 2011, 23:13 pm



Título: Tateti en c
Publicado por: netdrag0n en 5 Diciembre 2011, 23:13 pm
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


Código:
// 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;
                
                      }




Título: Re: Tateti en c
Publicado por: Ferno en 6 Diciembre 2011, 02:36 am
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:

Código
  1. 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).


Título: Re: Tateti en c
Publicado por: theluigy13etv en 8 Diciembre 2011, 19:11 pm
A que te refieres con que no existen procedimientos ¿EXPLÍCITOS?


Título: Re: Tateti en c
Publicado por: Ferno en 9 Diciembre 2011, 00:51 am
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.


Título: Re: Tateti en c
Publicado por: theluigy13etv en 5 Enero 2012, 17:33 pm
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.


Título: Re: Tateti en c
Publicado por: netdrag0n en 6 Enero 2012, 20:19 pm
gracias por el consejo estoy leyendo sobre c y el libro que recomendate


Título: Re: Tateti en c
Publicado por: criskapunk en 8 Enero 2012, 00:59 am
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.


Título: Re: Tateti en c
Publicado por: theluigy13etv en 22 Febrero 2012, 04:31 am
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/ (http://ubuntuone.com/p/kRe/)