Proyecto Final
Proyecto Final
Proyecto Final
1.Introducción………………………………………………………………… 3
2.Literatura……………………………………………………………………. 4-10
3.Análisis de la problemática…………………………………………………. 11
5.Código en C…………………………………………………………………
6.Resumen……………………………………………………………….…..
7.Conclusión……………………………………………………………………
8.Información adicional…………………………………………………....…..
9.Bibliografia……………………………………………………………....…..
1
INTRODUCCIÓN:
C forma parte de los lenguajes de programación algebraica. Fue diseñado por Dennia
Ritchie en l°" Laboratorio W. Bel, alrededor de 1972.. La popularidad de C se debe a
varios factores: en primer lugar, provee un conjunto de facilidades para manejar una amplia
variedad de aplicaciones. Tiene todo el tipo de datos útiles. Cuenta también con una librería
estándar de entrada/salida
La programación en C es eficiente. Existen varias operaciones cuyo significado se refleja
en. operaciones implantado en el hardware de la computadora. Por todo lo anterior, el
número de programadores y programa en C va en constante aumento.
EL presenta trabajo forma parte de los estudios de la asignatura de Introducción a la
programación, cuyo enfoque se interesa, en la aplicación de solución de problemas y
creación de programas que exhiban un comportamiento deseado. La programación, es
necesarias de la actualidad, y tiene una presencia importante en el mundo de la tecnología.
Al diseñar un programa, el desafío principal es crear y describir un procedimiento que esté
completamente bien definido, que no tenga ambigüedades, y que efectivamente resuelva el
problema. Este trabajo contiene la aplicación de lo aprendido durante el curso de
Introducción a la programación en el que realizaremos un programa para mostrar en
pantalla el juego “gato” o también conocido como el juego “tres en raya” demostrando que
desarrollamos la capacidad de identificar los problemas y como pueden ser resueltos a
través de la programación y diseño de los mismos.
2
LITERATURA
Propuestas 1:
Descripción: El programa hace una recreación del juego gato, en el que se requieren dos
jugadores, cada uno estará indicando su turno y la coordenada en la que desea marcar su
casilla si desean colocar x/o se deberá ingresar posición de fila y columna, la numeración
comienza desde 0 y gana el que pueda alinear tres figuras horizontal, vertical o diagonal,
también hay empate.
Características:
-Elementos básicos de C
-Entrada y salida de datos.
-Estructura condicional (if, else):
-Estructura repetitiva (for, do…while)
-Función (main)
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int jugador=1,error,empate=0,ganar=0;
char y,Y,x,X, c1 = 1 ,c2 =2,c3 = 3,c4 =4,c5 =5,c6 =6,c7 =7,c8 =8,c9
=9,tiro,marca,respuesta =y;
do{
error=1;
system("cls");
3
if(jugador==1)
{
marca X ;
}
else
{
marca=O ;
}
fflush(stdin);
scanf("%c",&tiro);
if(c1==X||c1==O);
if(c2==c1&&c3==c1)
{
ganar=1;
}
if(c4==c1&&c7==c1)
{
ganar=1;
}
}
if(c5==X||c5==O)
{
if (c1 == c5 && c9 == c5)
{ganar=1;}
4
if (c2 == c5 && c8 == c5)
{ganar=1;}
if (c4 == c5 && c6 == c5)
{ganar=1;}
if (c3 == c5 && c7 == c5)
{ganar=1;}
}
if(c9==X||c9==O)
{
if (c6 == c9 && c3 == c9)
{ganar=1;}
if (c7 == c9 && c8 == c9)
{ganar=1;}
}
if (ganar==1||empate==1)
{
system("cls");
if (ganar==1)
{
printf("Jugador: %d Gana!\n\n",jugador);
printf("\n %c | %c | %c\n",c1,c2,c3);
printf("---+---+---\n");
printf("\n %c | %c | %c\n",c4,c5,c6);
printf("---+---+---\n");
printf("\n %c | %c | %c\n\n",c7,c8,c9);
}
if (empate==1)
{
printf("Empate \n",jugador);
printf("\n %c | %c | %c\n",c1,c2,c3);
printf("---+---+---\n");
printf("\n %c | %c | %c\n",c4,c5,c6);
printf("---+---+---\n");
printf("\n %c | %c | %c\n\n",c7,c8,c9);
}
5
printf("Jugar de Nuevo: Y/N ?\n");
fflush(stdin);
scanf("%c",&respuesta);
if (respuesta==y||respuesta==Y)
{
empate=0;
jugador=2;
ganar=0;
c1=1;
c2=2;
c3=3;
c4=4;
c5=5;
c6=6;
c7=7;
c8=8;
c9=9;
}
}
if(error==1)
{
if (jugador==1)
{
jugador=2;
}
else
{
jugador=1;
}
}
}while(respuesta==y ||respuesta==Y);
system("PAUSE");
return 0;
}
6
Propuesta 2.
Descripción:
El programa hace una recreación del juego gato, en que se juega con el ordenador, el
usuario es quien obtiene la posición para el primer tiro y el compilar solicitara al usuario
fila y columna en la que desea marcar su casilla “x”, la numeración comienza desde 0 y
gana el que pueda alinear tres figuras horizontal, vertical o diagonal, también hay empate.
Características:
-Elementos básicos de C
-Entrada y salida de datos
-Estructura condicional (if, else
-Estructura repetitiva (for, do…while)
-Arreglo-matriz
-Funciones tipo (main, void)
#include<stdio.h>
#include<stdlib.h>
char matrix[3][3] = { // se declara el arreglo bidimensional tipo char
' ', ' ', ' ', // y se llenan con espacios en blanco todas las
' ', ' ', ' ', // posiciones
' ', ' ', ' ',
};
void get_player_move()
{
int x,y;
int ok=0;
printf("da las coordenadas para colocar tu X: \n");
do
{
printf("renglon ==>");
scanf("%d",&x);
printf("columna ==>");
scanf("%d",&y);
x--;
y--;
7
else
{
matrix[x][y] = 'X';
ok = 1; /* la entrada es correcta */
}
}while(ok!=1);
return;
} //fin de get_player_move()
void get_computer_move()
{
int t, i;
return;
} //fin de la función get_computer_move()
void disp_matrix()
{
int t;
for(t=0; t<3; t++)
{
printf(" %c | %c | %c",matrix[t][0],matrix[t][1],matrix [t][2]); ;
if(t!=2) printf("\n---|---|---\n");
}
printf("\n");
return;
8
}
/* funcion que checa si existe un ganador */
char check()
{
int t;
for (t=0; t<3; t++) /* revisa las columnas */
if((matrix[0][t]==matrix[1][t] &&
matrix[1][t]==matrix[2][t]) && matrix[0][t]!=' ') return (matrix[0][t]);
for(t=0; t<3; t++) /* revisa los renglones */
if((matrix[t][0]==matrix[t][1] &&
matrix[t][1]==matrix[t][2]) && matrix[t][0]!=' ') return (matrix[t][0]);
//espacio en blanco
}//fin de la funcion check
int main()
{
char done;// la variable done sirve para romper el ciclo mas abajo
// el ciclo de abajo se rompe cuando gana el usuario o
// gana la computadora
9
if (done == 'X') printf("\nTu ganaste!\n");// si la variable tiene X
else printf("\nYo gane!!!!\n"); //ganaste sino gano la
//computadora
disp_matrix(); /* muestra las posiciones finales */
system("pause");
return 0;
} //fin de la funcion main
ANALISIS DE LA PROBLEMÁTICA
10
ALGORITMO EN PSEUDOCODIGO Y DIAGRAMA DE FLUJO
Algoritmo gato
turno <-1 ;
tiros <-1;
Dimensión tablero[3,3];
//llenar para la matriz con espacios
para i <-1 hasta 3 con paso 1
Para j<-1 hasta 3 con paso 1
tablero[i,j]<-' ';
FinPara
FinPara
Escribir "++++++++++++++++++++";
para i <-1 hasta 3 con paso 1
para j <-1 hasta 3 con paso 1
Escribir tablero[i,j],","Sin Saltar;
FinPara
Escribir "";
FinPara
11
FinSi
finsi
FinSi
FinSi
finsi
FinSi
FinSi
finsi
FinSi
FinSi
finsi
FinSi
FinSi
finsi
FinSi
12
FinSi
finsi
FinSi
FinSi
finsi
FinSi
FinSi
finsi
FinSi
FinMientras
FinAlgoritmo
CODIGO EN C
RESUMEN
CONCLUSIÓN
Como objetivo general se puede concluir que el presente proyecto ha demostrado que es
muy factible la integración de nuevas tecnologías para el apoyo de la enseñanza,
dejando en claro que la tecnología no pretende hacer a un lado la enseñanza
presencial, sino simplemente reforzarla.
INFORMACIÓN EXTRA
13
BIBLIOGRAFIA
2.Bohm, C.& Jacopini, G.: “Flow diagrams, Turning machine, and languages only with two
formation rules”.Communications of the ACM, 1966, vol. 9, No.5,pp. 366-371
https://pseudocodigoejemplos.com/algoritmo-del-juego-del-gato/
https://programavideojuegos.blogspot.com/2013/06/juego-tres-en-raya-en-
c.html
14
-La función main sirve como punto de partida para la ejecución del programa.
Normalmente, controla la ejecución del programa dirigiendo las llamadas a
otras funciones del programa. Un programa deja de ejecutarse normalmente al final
de main, aunque puede finalizar en otros puntos del programa por distintos motivos
-Una función declarada como void no devolverá ningún valor
se11docótligCJ : Descripción con palabras o fónnulas de un algoritmo. resun1en general de las funciones de un
programa que se utiliza con un diagrama de tlujo para diseñar o documentar un progran1a.
15