Ing. en informatica

Solo disponible en BuenasTareas
  • Páginas : 4 (997 palabras )
  • Descarga(s) : 4
  • Publicado : 19 de julio de 2010
Leer documento completo
Vista previa del texto
#include "stdio.h"
#include "dos.h"
#define SI 1
#define NO 0
// TIPOS
typedef struct {
char tablero[9];
int f;
} TipoTablero;
//VARIABLES
struct
{
TipoTablero Tm;
int g;int UTc;
TipoTablero Tc[7];
} arbol[8];
int UTiradaMaq;
TipoTablero juego;
char Linea[100];
// PROTOTIPOS
void desplegaTablero (void);
int esValida (int tirada);
void generaTiradasMaq(void);
void generaTiradasContrario (int iTiradaMaq);
void creaTiradaMaq (int i);
void creaTc (int iTiradaMaq, int i);
void CalculaF (TipoTablero * t);
int revisaFin (int max);
void
main (void){
int fin, valida, tiradaContrario, i;
int iTiradaMaq, iTiradaContrario;
int min, max, cualTm, vacias;
// INICIALIZA EL TABLERO DE JUEGO
for (i = 0; i < 9; i++)
juego.tablero[i] =' ';
// MIENTRAS NO SEA FIN JUEGA
fin = NO;
while (fin == NO)
{
desplegaTablero ();
// TOMA LA TIRADA DEL CONTRARIO HASTA QUE SEA VALIDA
valida = NO;
while(valida == NO)
{
printf ("¿Donde tiras? [1..9] 0 = salir?\n");
gets (Linea);
tiradaContrario = atoi (Linea) - 1;
valida = esValida (tiradaContrario);
switch(valida)
{
case 0:
fin = SI;
valida = SI;
break;
case 1:
valida = SI;
break;
case 2:
printf ("Posición Ocupada, indica otra\n");valida = NO;
break;
case 3:
printf ("Posición Erronea, indica otra [1..9]\n");
valida = NO;
break;
}
} // SI DECIDIO TERMINAR, SALIRSEif (fin == SI)
continue; // COLOCA LA TIRADA DEL CONTRARIO
juego.tablero[tiradaContrario] = ' ';
desplegaTablero ();
CalculaF (&juego);
if (juego.f < -9000)
{printf ("Ganaste\n");
fin = SI;
continue;
} // GENERA POSIBLES TIRADAS DE LA MAQUINA
UTiradaMaq = 0;
generaTiradasMaq ();
// PARA CADA TIRADA DE LA MAQUINA...
tracking img