Friday, July 3, 2009

Malo Gato

Esta entrada vinó desde un alumno de mi clase de Inteligencia Artificial, un curso de quinto año. Debería ser un programa que puede jugar un juego perfecto de gato (Tic-Tac-Toe). Como este alumno ha llegado al quinto año sin usar funciones, no se...




#include <stdio.h>
#include <stdlib.h>

main()
{
int t,i,x,y;
char tablero[3][3];

for(t=0; t<3; ++t){
for(i=0; i<3; ++i){
tablero[t][i]='-';
}
}
for(t=0; t<3; ++t)
{
for(i=0; i<3; ++i)
printf("%c",tablero[t][i]);
printf("\n");
}

printf("seleccione posicion x:");
scanf("%d", &x);
printf("seleccione posicion y:");
scanf("%d", &y);

tablero[x][y] = 'x';
for(t=0; t<3; ++t)
{
for(i=0; i<3; ++i)
printf("%c",tablero[t][i]);
printf("\n");
}
printf("\n");

if(tablero[1][1]!='-')
{
tablero[0][0] = 'o';
}
else{
tablero[1][1]='o';
}
for(t=0; t<3; ++t)
{
for(i=0; i<3; ++i)
printf("%c",tablero[t][i]);
printf("\n");
}
printf("seleccione posicion x:");
scanf("%d", &x);
printf("seleccione posicion y:");
scanf("%d", &y);
printf("\n");

tablero[x][y]='x';

for(t=0; t<3; ++t)
{
for(i=0; i<3; ++i)
printf("%c",tablero[t][i]);
printf("\n");
}

if((tablero[1][1]=='x'){
if( (tablero[2][2]=='x')||(tablero[2][0]=='x'){
tablero[2][0]='o';
}
//if(tablero[][]){

//}
}
printf("seleccione posicion x:");
scanf("%d", &x);
printf("seleccione posicion y:");
scanf("%d", &y);
printf("\n");

tablero[x][y]='x';



}

9 comments:

  1. Si es un alumno de la Universidad donde usted hace clases profesor, creo que debería preocuparse por usted y sus colegas sobre la calidad de sus trabajos como profesores, que como dice el diccionario es la persona que ENSEÑA una ciencia o arte.
    Usted debería preocuparse por el alumno y ayudarlo en vez de publicar sus trabajos y reírse de él.
    Con este tipo de actitudes deja mucho que desear como profesor.

    Espero que ésto lo tome como una crítica constructiva.

    ReplyDelete
  2. Gracias para su commentario.

    Primero: Está me preocupa mucho. Tengo muchas dudas sobre las capacidades de mis alumnos. Yo no se como pueden llegar al punto donde yo les recibo sin el conocimiento que deberían tener. Cuando identifico estes alumnos, yo intento a ayudarlos. Este es un punto.

    Segundo: Yo doi esta tarea de cuatro semanas a un alumno de quinto año y recibí este "código". Esta me indica una falta de respecto. Este código es la resuelta de 30 minutes de trabajo, no cuatro semanas. It needs to mocked. Si un alumno quiere hacer nada y aprender nada, necesitan dejar la universidad.

    ReplyDelete
  3. I agree with you Matt.

    It's a piece of...s...code.

    Well, in my opinion, if the student does not have a minimal knowledge, then the student should be able to adjust quickly to continue. If it doesn't, mean that the student "fail the battle" and doesn't have the tools and performance to comply job objectives, and therefore should be made of "knowledge filter". If it don't exist, what type of pro are???
    Well, In this case, apparently this filter does not exist before; Maybe, you are one... If you are a good teacher (You probably say "yes"), then you could rip this student...

    ReplyDelete
  4. Si es un alumno de 5to año el problema no es el ramo actual sino por que no aprendió cosas básicas en sus años anteriores, esto lleva a preguntar por que está en 5to año y alguna respuesta que se me viene a la cabeza es de personas que pasaron sus ramos de matemáticas duras pero nunca sirvieron para programar y compraban las tareas dificiles (de las cuales he conocido muchas) programando las faciles de esta forma, una muy mal hecha.
    Igual tienen un futuro laboral, no desarrollando software aparentemente.

    ReplyDelete
  5. Primero que todo considero que es una verguenza para el lenguaje c. Y por supuesto para el curso de AI. Estimado Matt si te has atrevido a crear un wall shame, deberían tambien crear un wall's glory.

    Saludos

    ReplyDelete
  6. Entonces, en quedando con el propósito de este blog.. como podemos mejorar la programa anterior?

    ReplyDelete
  7. Un alcance, mejorarlo o hacerlo denuevo?
    Si ese es todo el código no es un gato completamente funcional por que no valida datos, sobreescribe coordenadas etc.

    ReplyDelete
  8. we simply could add some functions to it. We could use one of them to print out the matrix, other one to make the movement, other one to check if there's a winner, etc. And we also need to add a main loop to know when the program must end.

    I agree to Nicólas when he says this is a shame for the C language, even more this is a shame for any programming language xD

    Greetings!

    ReplyDelete
  9. Si, la cosa principal que este código está faltando es funciones. Si uno de ustedes quieren mejorarlo (o re-escribirlo) y enviarlo a mi, lo demostraré aquí como un follow-up de este post. Podemos comparar como fácil es para leer y entender los versiones diferentes.

    ReplyDelete