Mostrando entradas con la etiqueta juego. Mostrar todas las entradas
Mostrando entradas con la etiqueta juego. Mostrar todas las entradas

miércoles, 11 de septiembre de 2013

Juego Sudoku C++ y Allegro (Codigo)

Hola amig@s esta vez les traigo otro popular juego del Sudoku. Por el momento el juego Proporciona ayuda en las dificultades fácil y medio mostrando brevemente cuales números están correctamente colocados y cuales no en color verde los correctos y en rojo los erróneos.

En esta ocasión utilizaremos la herramienta de allegro llamada grabber con la cual podremos crear archivos binarios .dat donde podremos almacenar todos los archivos que utilizara nuestro juego y así llegar a ahorrarnos lineas de código  ya que no tendríamos que declarar estos archivos como lo son los BITMAP, FONT, etc. Dentro del código explico como utilizar los archivos dentro del archivo .dat.
 Capturas:





Descarga el juego mas el codigo aquí.

Descarga la herramienta grabber aquí.

domingo, 25 de agosto de 2013

Juego del Tetris en C++ y Allegro (Juego y Código fuente)

Hola amig@s esta vez les traigo el clásico juego de Tetris escrito en C++ y la librería Allegro. Pero si te gustaría saber como hacer tu propio tetris te recomiendo ver este tutorial ya que para mi fue de gran ayuda para la elaboración de este juego.

Capturas:








Descarga el juego desde aquí.
Descarga el código desde aquí.

viernes, 9 de agosto de 2013

Juego del ahorcado modo gráfico v1

Hola amig@s en esta ocasión les traigo la versión 1 de la adaptacion del juego del ahorcado en C pero esta vez en modo gráfico escrito en C++ y la librería Allegro por el momento solo les presento el ejecutable del juego y una ves que termine el juego lo pondré todo el proyecto para su descarga.

Hasta el momento al juego se puede cargar un máximo de 300 palabras x dificultad. Para agregar nuevas palabras al juego se puede hacer de 2 maneras:

   1- Manualmente abriendo cada uno de los fichero y pegando las palabras.

   2- Automaticamente con la herramienta que he añadido al estilo drag and drop (arrastrar y soltar)        
       solo tienes que crear o copiar un archivo de texto en la carpeta files y el programa agregara
       las palabras al cada uno de los ficheros de dificultad dependiendo de la longitud de cada
       palabra.


Capturas:










Descarga el juego y el proyecto desde aquí.

martes, 16 de julio de 2013

Juego del Ahorcado en C

Bueno amig@s en esta ocasion les traigo uno de los juegos mas populares que podemos encontrar como lo es el juego del ahorcado en lenguaje C.

Funciones del juego:

- Permite seleccionar entre 3 categorías de palabras (Animales, Países, Difíciles).
- Podemos ingresar nuevas palabras o utilizar las que ya están guardadas.
- Muestra el numero de oportunidades restantes.
- Podemos volver a jugar nuevamente en una categoría distinta si lo deseamos.

Capturas:








Código:

Ahorcado.c

/*Version 1.0.1*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
#include<math.h>
#include<ctype.h>

//Prototipo de funciones
void menu();
void carga();
void animales();
void paises();
void dificiles();
void juego(char palabra[50][20], int n);
void rotulo(int e);
void pieder();
void pieizq();
void made();
void maiz();
void base();
void cuerpo();
void cabeza();
void gotoxy(short x, short y);

//Funcion principal se encarga de llamar a la funciones carga y menu
int main(){
 carga();//llamada de la funcion "carga"
 menu();//llamada de la funcion "menu"
 system("pause");
return 0;
}// Termina la funcion principal
void carga(){//funcion encargada de de mostrar la barra de carga del programa
 int c, m=6;
 system("cls");
    system("color 48");
    gotoxy (30,5);printf("Cargando......");
 Sleep(200);
 for(c=15;c<=75; c++){
  m++;
     gotoxy (m,10); printf("%c",219);
     gotoxy(6,15);printf("\n\n\n\n\n\tAHORCADO V 1.0.0 ");
  Sleep(100); 
 }   
 printf("\a");system("cls");
}
void menu(){
 char op;
 do{//imprime el menu principal varias veces hasta que sea necesareo
   system("cls");
   gotoxy (30,1); printf ("JUEGO DEL AHORCADO");
   gotoxy (30,4); printf("Seleccione Categoria");fflush(stdin);
   gotoxy (30,6); printf("1.Animales");
   gotoxy (30,8); printf("2.Paises");
   gotoxy (30,10); printf("3.Dificiles");
   gotoxy (30,12); printf("4.Salir");
   gotoxy (30,14); printf("Ingrese opcion: ");
   scanf("%c",&op);
  }while(op<'1'||op>'4');//evalua los datos ingresados por el usuario
 switch(op){//seleeciona el caso ingresado por el usuario
  case '1': animales();break;// llamado a la funcion animales
  case '2': paises();break;// llamado a la funcion paises
  case '3': dificiles();break;// llamado a la funcion dificiles
  case '4':printf("\n\nGracias por utilizar nuestro programa.....\n\n");break;
 }
}
void animales(){
 char palabra[50][20]={"murcielago","tiburon","perro","chancho","gato","cerdo","gallina","elefante","vaca","serpiente","mono","rata"};
 //asignacion de palabras a una lista
 int n=0, i;
 char op;
 fflush(stdin);
 do{// muestra el menu si no se cumple la condicion
  fflush(stdin);
  system("cls");
  gotoxy (30,1); printf("CATEGORIA NOMBRE DE ANIMALES");
  gotoxy (30,4); printf("1.Ingresar nueva palabra");
  gotoxy (30,6); printf("2.Jugar con lista existente");
  gotoxy (30,8); printf("3.Retornar al menu principal");
  gotoxy (30,10); printf("    Ingrese opcion: ");
  scanf("%c",&op);
 }while(op<'1'||op>'3');//evaluacion de las datos ingresados por el usuario
  switch(op){
  case'1':// añade mas palabras a la lista 
   do{
    system("cls");
    printf("\n Digite cantidad de palabras: ");
    scanf("%d",&n);//captura el numero de palabras
   }while(n<0);
   for(i=3;i<=n+2;i++)
   {fflush(stdin);
   system("cls");
    printf("\n Ingrese palabra: ");
    gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista
   }
   juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada
  case'2':juego(palabra,n);break;//llama al funcion juego y le manda la lista con las palabras asignadas
  case'3':menu();break;// llama a la funcion menu
 }
}

void paises(){
 char palabra[50][20]={"afganistan","japon","alemania","cuba","venezuela","alemania","peru","paraguay","turquia","checoslovaquia","suriname","banladesh","africa"};
 //asignacion de palabras a una lista
 int n=0, i;
 char op;
 do{//  muestra el menu si no se cumple la condicion
  fflush(stdin);
  system("cls");
  gotoxy (30,1); printf("CATEGORIA NOMBRE DE PAISES ");
  gotoxy (30,4); printf("1.Ingresar nueva palabra");
  gotoxy (30,6); printf("2.Jugar con lista existente");
  gotoxy (30,8); printf("3.Retornar al menu principal");
  gotoxy (30,10); printf("    Ingrese opcion: ");
  scanf("%c",&op);
 }while(op<'1'||op>'3');//evalua los datos imgresados por el usuario
  switch(op){
  case'1':// añade mas palabras a la lista 
   do{system("cls");
    printf("\n Digite cantidad de palabras: ");
    scanf("%d",&n);//captura el numero de palabras
   }while(n<0);
   for(i=3;i<=n+2;i++){fflush(stdin);
    system("cls");
    printf("\n Ingrese palabra: ");
    gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista
   }
   juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada
  case'2':juego(palabra,n);break;//llama al funcion juego y le manda la lista con las palabras asignadas
  case'3':menu();break;// llama a la funcion menu
 }
}
void dificiles(){
  char palabra[50][20]={"hidraulica","clorhidrato","electrostatica","miercoles","computadora","musica","nada","sandia","puta","mundo","ahorcado","teclado","palabra"};
 //asignacion de palabras a una lista
  int n=0, i;
 char op;
 do{  // muestra el menu si no se cumple la condicion
  fflush(stdin);
  system("cls");
  gotoxy (30,1); printf("CATEGORIA PALABRAS DIFICILES");
  gotoxy (30,4); printf("1.Ingresar nueva palabra");
  gotoxy (30,6); printf("2.Jugar con lista existente");
  gotoxy (30,8); printf("3.Retornar al menu principal");
  gotoxy (30,10); printf("    Ingrese opcion: ");
  scanf("%c",&op); 
 }while(op<'1'||op>'3');//evaluacion de las datos ingresados por el usuario
  switch(op){
  case'1'://añade mas palabras a la lista 
   do{system("cls");
    printf("\n Digite cantidad de palabras: ");
    scanf("%d",&n);//captura el numero de palabras
   }while(n<0);
   for(i=3;i<=n+2;i++) {fflush(stdin);
   system("cls");
    printf("\n Ingrese palabra: ");
    gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista
   }
   juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada
  case'2':juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada
  case'3':menu();break;// llama a la funcion menu
 }
}
void juego(char palabra[50][20], int n){
 int contador,longitud,i,j, e,error, m=13;
 char palabras[30], respuesta[30], letra, res, res1;
 do{system("cls");
  gotoxy (30,1); printf ("JUEGO DEL AHORCADO");
  base();//lama a la funcion base
  rotulo(0);//llama ala funcion rotulo para ver el numero de oportunidades restantes
  srand (time (NULL));
  longitud=rand()%(m+n);//genera un numero aleatorio y lo almacena en la variable longitud
  e=0;
  contador=0;
  strcpy(palabras,palabra[longitud]);//copia en la variable una variable de la lista
  longitud=strlen(palabras);//se obtiene el tamaño de la palabra y  se almacena en longitud
  gotoxy(4,30);
  for (i=0; i<longitud ; i++){fflush(stdin);
   respuesta[i]='*';//se almacena * en un vector
   printf (" %c ", respuesta[i]);// se imprime * en el lugar de las letras 
  }
  do{
   fflush (stdin);
   gotoxy (4,32); printf ("Ingrese una letra: ");
   scanf ("%c", &letra);//captura   una letra
   letra=tolower(letra);//convierte unna letra mayuscula en minuscula
   gotoxy (21,32);printf("     ");
   error=0;//se inicializa en 0
   gotoxy(4,30);
   for(j=0; j<longitud; j++)  {
    if (letra==palabras[j]){/*compara si la letra ingresada por el usuario corresponde a una posicion de la 
     palabra*/
     if(letra!=respuesta[j]){
      respuesta[j]=letra;// la susttituye por el *
      contador++;//aumenta contador en uno
     }
    }
    else{
     error++;//aumenta error en uno 
    }
    printf (" %c ", respuesta[j]);//imprime la letra correcta 
   }
   if(error==longitud){//entra si la letra ingresada no corresponde a ninguna de la palabra a adivinar
    e++;//segun la cantidad de letras erroneas aumenta en 1
   }
   rotulo(e);//llama ala funcien rotunlo y le envia e
     switch (e){//segun nel numero de errores selecciona un caso
      case 1:cabeza();break;//llama a la funcion que dibuja la cabeza
      case 2:cuerpo();break;//llama a la funcion que dibuja el cuerpo
      case 3:made();break;//llama a la funcion que dibuja la mano derecha
      case 4:maiz();break;//llama a la funcion que dibuja la mano izquierda
      case 5:pieizq();break;//llama a la funcion que dibuja la piena izquierda
      case 6:pieder();break;//llama a la funcion que dibuja la piena derecha
     }  
  }while(contador<longitud && e<6);
 
  if(e==6){//entra si ninguna de las letras corresponden ala palabra o se cometieron 6 errores
   gotoxy(4,32);printf ("Lo siento, Usted ha perdido. \n    Presione una tecla para ver la respuesta correcta");
   getch();gotoxy(4,30);
   for(j=0; j<longitud; j++){  
    printf (" %c ", palabras[j]);//imprime la palabra
   }
  }
  if(contador==longitud){//entra si todas las letras ingresadas corresponden a la palabra o se cometieron menos de 6 errores
  
   if(e==0){//si no se cometio ningun error
    gotoxy(4,32);printf ("Felicidades, Usted ha ganado sin cometer ningun error");
   }
   else{//si se cometirooon pocos errores
    gotoxy(4,32);printf ("Felicidades, Usted ha ganado, con %d intentos fallidos", e);
   }
  }
  fflush(stdin);
  gotoxy(4,35);printf ("Precione S para continuar la misma categoria....  ");
  scanf("%s",&res);fflush(stdin);
 }while(res=='S' || res=='s');//si el caracter ingresado es S repite el juego
 gotoxy(4,37);printf ("Precione N para cambiar de categoria....  ");
 scanf("%s",&res1);
 if(res1!='N' || res1!='n'){// si el caracter ingresado es N cambia de categoria
  menu();
 }
 else{
  printf("\n Gracias por usar nuestro programa......");
 }
 
}
/*funcion que muestra el rotulo en donde menciona el numero 
 de oportunidades que quedan*/
void rotulo(int e){
 int f=0;
 f=6-e;
 gotoxy (40,3); printf(" _____________________________");
 gotoxy (40,4); printf("|                             |");
 gotoxy (40,5); printf("|    Usted tiene   %d          |",f);
 gotoxy (40,6); printf("|    Oportunidades            |");
 gotoxy (40,7); printf("|_____________________________|");
}
//Funcion que imprime la  mano derecha
void made( void){
 int j;
 for(j=0;j<3;j++){
  gotoxy(19-j,10+j);
  printf("*");
 }
}
//Funcion que imprime la  mano izquierda
void maiz(void){
 int i;
 for(i=0;i<3;i++) {
  gotoxy(23-i,12-i);
  printf("*");
 }
}
// funcion que imprime el cuerpo
void cuerpo(){
 int i;
 for(i=0;i<9;i++) {
  gotoxy(20,9+i);
  printf("*");
 }
}
//funcion que imprime  la horca
void base(){
 int x,y; 
    system("mode 80");     
 for(x=2;x<=27;x++){
  gotoxy(10,x);printf("*");
 }
 for(y=11;y<=20;y++){
  gotoxy(y,2);printf("*");
 }
 for(y=5;y<=15;y++){
  gotoxy(y,28);printf("*");
 } 
 gotoxy(20,3);printf("*");
 gotoxy(20,4);printf("*");
 }
//Funcion que imprime la pierna izquierda
void pieizq(void){
 int i;
 for(i=0;i<3;i++) {
  gotoxy(21+i,18+i);
  printf("*");
 }
}
//Funcion que imprime la pierna derecha
void pieder(void){
 int i;
 for(i=0;i<3;i++) {
  gotoxy(19-i,18+i);
  printf("*");
 }
}
//Funcion que imprime la cabeza
void cabeza(){
 int i,j;
 for(i=0;i<5;i++){
  gotoxy(18+i,4);
  printf("*");
  gotoxy(18+i,8);
  printf("*");
 } gotoxy(19,5);
 ////////////////////
 for(j=0;j<3;j++){
  gotoxy(18,5+j);
  printf("*");
  gotoxy(22,5+j);
  printf("*");
 }
}
// funcio goto x y
void gotoxy(short x, short y) {
 HANDLE hConsoleOutput;
 COORD Cursor_Pos = {x, y};
 hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
 SetConsoleCursorPosition(hConsoleOutput, Cursor_Pos);
}
puedes descargar el proyecto desde aquí.

lunes, 15 de julio de 2013

Juego del Adivinador en C

Hola amig@s esta vez les traigo un juego escrito en C, este juego como su nombre lo dice consiste en adivinar en una matriz de 10x10 una serie de figuras sin tener que encontrar el chacal si encontramos dicha figura el juego terminara.

 Capturas:


Codigo:

#include
#include
#include
#include
int menu();
void ocultar();
int aleatorio();
int ingresar();
int main()
{
 int w=2;
 while(w!=0)
 {
 w=menu();
 switch(w)
 {
 case 1:{ocultar();}break;
 }
 }
}
void gotoxy(int xpos, int ypos)//Funcion de Posicionamiento
{
  COORD scrn;
  HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
  scrn.X = xpos; scrn.Y = ypos;
  SetConsoleCursorPosition(hOuput,scrn);
}

int menu()
{
 int q,i;
 do{
 system("cls");
 system("color F1");
 gotoxy(11,8);
 for(i=9;i<25;i++)
 {
  printf("%c",177);
 }
 gotoxy(11,13);
 for(i=9;i<25;i++)
 {
  printf("%c",177);
 }
 gotoxy(11,15);
 printf("ingrese un numero:");
 gotoxy(10,10);
 printf("\t1.jugar\n\
 \t0.salir\n");
 gotoxy(11,16);
 scanf("%d",&q);
 fflush(stdin);
 }while(q<0&&q>2);
 return q;
}
void ocultar()
{
 int i,j,aciertos=0,errores=0,x1,y1;
 char ran,z[10][10];
 char oculta[10][10]={{219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},
      {219,219,219,219,219,219,219,219,219,219},};
 for(i=0;i<10;i++)
 {
  for(j=0;j<10;j++)
  {
   z[i][j]=aleatorio();
  }
 }
 do{
 ran=rand()%(1-31)+1;
 }while(ran==7||ran==8||ran==9||ran==10||ran==13);
 while(aciertos<100)
 {
 system("cls");
 system("color F1");
 printf("\ndebe en contrar a:%c Y procure no encontrar el chacal:%c\n\n",ran,2);
 printf("\t   0 1 2 3 4 5 6 7 8 9\n\n");
 for(i=0;i<10;i++)
 {
  printf("\t%d  ",i);
  for(j=0;j<10;j++)
  {
   printf("%c ",oculta[i][j]);
  }
  printf("\n\n");
 }
 x1=ingresar();
 y1=ingresar();
 for(i=0;i<10;i++)
 {
  for(j=0;j<10;j++)
  {
   if(z[i][j]==z[x1][y1])
   {
    oculta[i][j]=z[x1][y1];
    aciertos++;
   }
  }
  printf("\n");
 }
 if(oculta[x1][y1]==ran)
 {
  system("cls");
  system("color F0");
  printf("\n\n!!!!!!BIEN HECHO EN CONTRO A EL: %c  !!!!!\n\n\n",ran);
  printf("\t   0 1 2 3 4 5 6 7 8 9\n\n");
  for(i=0;i<10;i++)
  {
   printf("\t%d  ",i);
   for(j=0;j<10;j++)
   {
    printf("%c ",z[i][j]);
   }
   printf("\n\n");
  }
  aciertos=aciertos+100;
 }
 else
 {
  if(oculta[x1][y1]==2)
  {
   system("cls");
   system("color 0F");
   printf("\n!!!!PERDIO!!!\n");
   printf("ENCONTRO EL CHACAL..... %c\n\n\n",2);
   printf("\t   0 1 2 3 4 5 6 7 8 9\n\n");
   for(i=0;i<10;i++)
   {
    printf("\t%d  ",i);
    for(j=0;j<10;j++)
    {
     printf("%c ",z[i][j]);
    }
   printf("\n\n");
  }
   aciertos=aciertos+100;
  }
 }
 }
 system("pause");
}
int ingresar()
{
 int q=10;
 do{
 printf("ingrese la coordenada: ");
 scanf("%d",&q);
 fflush(stdin);
 }while(q<0||q>9);
 return q;
}
int aleatorio()
{
 char i;
 do{
 i=rand()%(1-31)+1;
 }while(i==7||i==8||i==9||i==10||i==13);
 return i;
}


descarga el codigo fuente desde aqui.