• Sábado 9 de Noviembre de 2024, 02:20

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Alejandra_Jañez

Páginas: [1]
1
C/C++ / Re: ¿Cómo hago un programa para jugar gato en lenguaje C?
« en: Martes 7 de Julio de 2009, 19:18 »
Ya lo termine, se los comparto a ver si a alguien mas le sirve

/* este programa juega al gato o tres en linea con el usuario. I. Jañez jue 02 jul 09*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int c[9]={0,0,0,0,0,0,0,0,0}, turno, jugador;
char denuevo=' ';

char tirada(int i); /*Necesaria en print_gato, retorna 'X', 'O' o ' '*/
int ganador(); /*Deduce si hay un ganador, regresa -1, 0 o 1*/
void print_gato(); /*Imprime el tablero de Gato*/
void turno_jugador();
void turno_computadora();


int main()
{
do
{
    int h, menu;
    printf(" nMenu:n 1) Jugar. n 2) Leer instruccionesn 3) Ver creditosn 4) Salirnn");
    scanf("%d", &menu);
   
    switch(menu)
    {
         case 1:
                 
                     
                        jugador = 1;
                        turno = 0;
                        do
                        {
                              turno++;
                              if (jugador) turno_jugador(); else turno_computadora();
                              print_gato();
                         }
                         while ((!ganador())&&(turno<=8));
                         switch (ganador())
                         {
                                case 0:
                                     printf("n Empatamosn");
                                     break;
                                     
                                case 1:
                                     printf("n Tu ganasnn");
                                     break;
                               
                                case -1:
                                     printf("n o.O yo te gano n");
                                     break;
                         }
                                                                       
                 
                 break;
         
         case 2:
              printf("n Vamos a jugar GATO!nn Las casillas estan enumeradas asi:n 1 |2 |3n --+--+--n 4 |5 |6n --+--+--n 7 |8 |9n");
              printf("n Elije una casilla pulsando un numero. Una vez que tires tu, tirare yo. nGana quien haga una linea de tres caracteres iguales n ya sean horizontales, verticales o diagonalesnn");
              getchar();
              break;
         
         case 3:
              printf("n Programa que juega gato con el usuario hecho por:n Irais Jañezn");
              getchar();
              break;
           
          case 4:
               printf("t Fue un placer jugar contigo");
               getchar();
               exit(1);
              break;    
         }
         printf("Volver al menu? (s o n) ");
         scanf("%s", &denuevo);
         if (denuevo>=97) denuevo-=32;
         if ((denuevo!='s')&&(denuevo!='n'))
         for (h=0;h<=8;h++) c[h]=0;        
}
while (denuevo=='S');            
getchar();

}

void print_gato() /*esta funcion acomoda los valores en el dibujo del tablero*/
{
     printf("n %c |%c |%cn --+--+--n %c |%c |%cn --+--+--n %c |%c |%cn", tirada(c[0]), tirada(c[1]), tirada(c[2]), tirada(c[3]), tirada(c[4]), tirada(c[5]), tirada(c[6]), tirada(c[7]), tirada(c[8]));
}

char tirada(int i)
{
     switch (i)
     {
            case (-1):
                 return 'X';
                 break;
                 
            case (1):
                 return 'O';
                 break;
                 
            default:
                    return ' ';
     }
}

int ganador() /*esta funcion compara el arreglo con los patrones de posible ganador*/
{
    if ((c[0]+c[1]+c[2]==3)|| (c[3]+c[4]+c[5]==3)|| (c[6]+c[7]+c[8]==3)|| (c[6]+c[3]+c[0]==3)|| (c[7]+c[4]+c[1]==3)|| (c[8]+c[5]+c[2]==3)|| (c[6]+c[4]+c[2]==3)|| (c[8]+c[4]+c[0]==3)) return 1;
    else if ((c[0]+c[1]+c[2]==-3)|| (c[3]+c[4]+c[5]==-3)|| (c[6]+c[7]+c[8]==-3)|| (c[6]+c[3]+c[0]==-3)|| (c[7]+c[4]+c[1]==-3)|| (c[8]+c[5]+c[2]==-3)|| (c[6]+c[4]+c[2]==-3)|| (c[8]+c[4]+c[0]==-3)) return -1;
    else return 0;
}

void turno_jugador() /*coloca el caracter en la casilla seleccionada y verifica que no este ocupada*/
{
     int quieres;
     printf("n Te toca, En que casilla quieres tirar? [1-9] ");
     scanf("%d",&quieres);
     
     if ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0))
     {
                       do
                       {
                                     printf("n Esa casilla esta ocupada, intenta en otra: [1-9] ");
                                     fflush(stdin);
                                     
                                     scanf("%d",&quieres);
                       }
                       while ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0));
     }
     
     c[quieres-1]=1;
     jugador = 0;
}

void turno_computadora() /* coloca el valor de la computadora a tirar, en una posicion aleatoria*/
{
     int quiero;
     time_t t;
     printf("n Me toca, tiro en la casilla: ");
     do
     {
                  srand(time(&t));
                  quiero=rand()%9;
     }
     while (c[quiero]!=0);
     printf("%dn", quiero + 1);
     
     c[quiero]=-1;
     jugador = 1;
}

2
C/C++ / Re: ¿Cómo hago un programa para jugar gato en lenguaje C?
« en: Miércoles 1 de Julio de 2009, 03:36 »
El juego de gato (se le conoce asi en mexico) en otros lados se conoce como tres en linea o tic tac toe, formas un arreglo con dos lineas paralelas verticales y dos paralelas horizontales que las crucen, lo que te da 9 casillas(similar a #). Cada jugador (solo pueden ser dos) tira con una X o con una O, seleccionando una casilla por turno, gana el que forme una linea horizontal, vertical o cruzada.

3
C/C++ / ¿Cómo hago un programa para jugar gato en lenguaje C?
« en: Martes 30 de Junio de 2009, 00:23 »
Estoy en un curso de programación en C, ya me enviaron la parte de código que dibuja la tabla y la función que genera los números aleatorios, pero aun así no se como empezar. Agradeceré orientación, pseudocódigo y/o ideas de como resolver el problema y si tienen algunos códigos de ejemplo. (NO quiero k me haga nadie el programa)

4
C/C++ / Manejo de números grandes en C
« en: Lunes 8 de Junio de 2009, 04:01 »
Soy principiante programando con C, y estoy haciendo un programa para encriptar con algoritmo RSA. Mi problema es que para encriptar tengo que manejar números primos muy grandes y hacer potencias entre ellos. Mi pregunta es:
¿Cómo manejo numeros grandes de más de doce dígitos al programar en C?.  Tengo el siguiente código, pero no funciona, pues me dá cero como resultado:

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


int main()
{
#define Var1 545
#define Var2 503

long double Res;

Res = pow(Var1; Var2);

printf ("El resultado es %ld", Res);


getch();
}

De antemano gracias, estoy dispuesta a publicar el código completo cuando termine el programa.

Páginas: [1]