Advertisement
shiogem

juego2

Jun 20th, 2015
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 17.76 KB | None | 0 0
  1. /*
  2.  * File:   main.c
  3.  * Author: shio
  4.  *
  5.  * Created on 12 de junio de 2015, 12:52 AM
  6.  */
  7. #include <stdio.h>
  8. #include <time.h>
  9. #include <stdlib.h>
  10. #include <conio.h>
  11. #include<ctype.h>
  12. #include <windows.h>
  13. #include <process.h>
  14. #define N 800
  15.  
  16.  
  17. void record(){
  18.    char plname[20],nplname[20],cha,c;
  19.    int i,j,px;
  20.    FILE *info;
  21.    info=fopen("record.txt","a+");
  22.    getch();
  23.    system("cls");
  24.    printf("Enter your name\n");
  25.    scanf("%[^\n]",plname);
  26.    //************************
  27.    for(j=0;plname[j]!='\0';j++){ //to convert the first letter after space to capital
  28.    nplname[0]=toupper(plname[0]);
  29.    if(plname[j-1]==' '){
  30.    nplname[j]=toupper(plname[j]);
  31.    nplname[j-1]=plname[j-1];}
  32.    else nplname[j]=plname[j];
  33.    }
  34.    nplname[j]='\0';
  35.    //*****************************
  36.    //sdfprintf(info,"\t\t\tPlayers List\n");
  37.    fprintf(info,"Player Name :%s\n",nplname);
  38.     //for date and time
  39.  
  40.    time_t mytime;
  41.   mytime = time(NULL);
  42.   fprintf(info,"Played Date:%s",ctime(&mytime));
  43.      //**************************
  44.      //fprintf(info,"Score:%d\n",px=Scoreonly());//call score to display score
  45.      //fprintf(info,"\nLevel:%d\n",10);//call level to display level
  46.    for(i=0;i<=50;i++)
  47.    fprintf(info,"%c",'_');
  48.    fprintf(info,"\n");
  49.    fclose(info);
  50.    printf("wanna see past records press 'y'\n");
  51.    cha=getch();
  52.    system("cls");
  53.    if(cha=='y'){
  54.    info=fopen("record.txt","r");
  55.    do{
  56.        putchar(c=getc(info));
  57.        }while(c!=EOF);}
  58.      fclose(info);
  59. }
  60.  
  61. void clrscr()
  62. {
  63.     COORD inicio = {0, 0};
  64.     DWORD n;
  65.     FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ', 80 * 25, inicio, &n);
  66. }
  67.  
  68.  void gotoxy(int x,int y){  
  69.       HANDLE hcon;  
  70.       hcon = GetStdHandle(STD_OUTPUT_HANDLE);  
  71.       COORD dwPos;  
  72.       dwPos.X = x;  
  73.       dwPos.Y= y;  
  74.       SetConsoleCursorPosition(hcon,dwPos);
  75.  }
  76.  
  77.  void imprimirMapa(int n){  
  78.    
  79.       switch(n){
  80.                 case (1):{
  81.                    
  82.                 gotoxy(5,8);
  83.                 printf("_________P_________W_____________________________________________ |\n");//20
  84.                 gotoxy(5,11);
  85.                 printf("| _________________________________________________________________\n");//20
  86.                 gotoxy(5,14);
  87.                 printf("_______M_________________________________________________________ |\n");//20
  88.                 gotoxy(5,17);
  89.                 printf("| _________________________________________________________________\n");//20
  90.                 gotoxy(5,20);
  91.                 printf("____A_____________________________________________________________F\n");//20*/
  92.      
  93.                 break;}
  94.                
  95.                
  96.                 case (2):{
  97.                    
  98.                 gotoxy(5,8);
  99.                 printf("_________P________________________________________________A______ |\n");//20
  100.                 gotoxy(5,11);
  101.                 printf("| _____M___________________________________________________________\n");//20
  102.                 gotoxy(5,14);
  103.                 printf("_______________________A_________________________________________ |\n");//20
  104.                 gotoxy(5,17);
  105.                 printf("| __P_____________________________M_________________________A______\n");
  106.                 gotoxy(5,20);
  107.                 printf("_______M___________________________________________________________\n");  
  108.                 gotoxy(5,23);
  109.                 printf("| _____________P_________________________________A_________________\n");
  110.                 gotoxy(5,26);
  111.                 printf("____A_________________________________________________________M__AF\n");  
  112.                  
  113.                 break;}
  114.                 case (3):{
  115.                    
  116.                 gotoxy(5,8);
  117.                 printf("_________P_________________________________________________A_____ |\n");//20
  118.                 gotoxy(5,11);
  119.                 printf("| _________________MM______________________________________________\n");//20
  120.                 gotoxy(5,14);
  121.                 printf("______________A______________P______________________M____A_______ |\n");//20
  122.                 gotoxy(5,17);
  123.                 printf("| ________________________________M________________________________\n");//20
  124.                 gotoxy(5,20);
  125.                 printf("_______________________________________A_________________________ |\n");
  126.                 gotoxy(5,23);
  127.                 printf("| __M___________________________________________________A______M___\n");
  128.                 gotoxy(5,26);
  129.                 printf("________________________P________________________________________ |\n");  
  130.                 gotoxy(5,29);
  131.                 printf("| __________________________________________A______________________\n");
  132.                 gotoxy(5,32);
  133.                 printf("_________________A_________M_____________________________________MF\n");  
  134.                    
  135.                 break;}
  136.          }
  137.      
  138.    
  139.      
  140.  }
  141.  
  142.  void borde(char nombre[N],int nivel){
  143.      
  144.      int i;
  145.      gotoxy(0,0);
  146.      printf("                                 RPG \n");
  147.      printf("  Nombre del Jugador: %s",nombre);                        
  148.      printf("                                   Nivel :%d\n",nivel);
  149.      gotoxy(60,2);
  150.      printf(" Score: ");//,score );
  151.  
  152.        switch(nivel){
  153.                 case (1):{
  154.                 //Lineas horizontales
  155.                  for (i=2;i<78;i++){
  156.                     gotoxy(i,3);
  157.                     printf("%c",205);
  158.                     gotoxy(i,23);
  159.                     printf("%c",205);
  160.                     }
  161.                 //Lineas Verticales
  162.                  for (i=4;i<23;i++){
  163.                     gotoxy(2,i);
  164.                     printf("%c",186);
  165.                     gotoxy(77,i);
  166.                     printf("%c",186);
  167.                
  168.      
  169.                 //Esquinas
  170.                 gotoxy(2,3); printf("%c",201);
  171.                 gotoxy(2,23); printf("%c",200);
  172.                 gotoxy(77,3); printf("%c",187);
  173.                 gotoxy(77,23); printf("%c",188);
  174.                 }
  175.                 break;}
  176.                 case (2):{
  177.                    // aqui va el marco nivel 2//
  178.                 break;}
  179.                 case (3):{
  180.                     //aqui va el marco nivel 3//
  181.                 break;}
  182.          }
  183.      
  184.  }
  185.  void load(){
  186.     int row,col,r,c,q;
  187.     gotoxy(36,14);
  188.     printf("loading...");
  189.     gotoxy(30,15);
  190.     for(r=1;r<=20;r++){
  191.     for(q=0;q<=100000000;q++);//para mostrar el recorrido del caracter despacio
  192.     printf("%c",177);}
  193.     getch();
  194.    system("cls");
  195.    
  196. }
  197.  
  198. void menu()
  199. {  clrscr();
  200.    int opc;
  201.     //GotoXY(10,12);
  202.    printf("\n\n");
  203.    printf("\t *******BIENVENIDOS A RPG******** \n");
  204.    printf("\n\n\t*******MENU*******");
  205.    printf("\n\n");
  206.    printf("\n\t1-JUEGO NUEVO");
  207.    printf("\n\t2-INSTRUCCIONES");
  208.    printf("\n\t3-SALIR");
  209.    printf("\n\n\tSelecione una opcion: ");
  210.    scanf("%d",&opc);
  211.    switch(opc){
  212.        case (1):{
  213.            load();
  214.            break;}
  215.        case (2):{
  216.            load();
  217.            system("cls");
  218.            printf("\t INSTRUCCIONES DEL JUEGO:\n");
  219.            printf("\n -Con las flechas del teclado se movera el heroe, -> DERECHA, <- IZQUIERDA \n");
  220.            printf(" \n -Cuando el heroe llegue a una casilla vacia, podra manipular el contenido de su cinturon o de su mochila. Es decir, podra retirar o usar elementos de cualquiera de sus objetos. Ademas,podra avanzar a la proxima casilla. \n");
  221.            printf("\n -Cuando el heroe llega a una casilla con un elemento, debe interactuar con este (guardarlo o descartarlo), luego de ello  debera cambiarse automaticamente a la siguiente casilla. \n");
  222.            printf("\n -Si el elemento encontrado es una pocion, podra recuperar ciertos puntos de vida. \n");
  223.            printf("\n -Cuando el heroe se encuentre con un enemigo, debe realizar el proceso de 'Batalla'(se atacaran por turnos), luego de ello debera cambiarse automaticamente a la siguiente casilla. \n");
  224.            printf("\n -Durante la Batalla, se disminuye los puntos de vida considerando las capacidades de ataque del arma del enemigo.  \n");
  225.            printf("\n -Si el heroe gana la batalla, puede continuar con el mapa, de lo contrario, el juego termina. \n");
  226.            printf("\n -Si el heroe termina de pasar todos los niveles , el juego termina. \n");
  227.            printf("\n (W) Arma \n");
  228.            printf("\n (P) Posiones \n");
  229.            printf("\n (M) Enemigo \n");
  230.            printf("\n");
  231.            printf("presiona enter para empezar el juego");
  232.            if(getch()==27);
  233.            load();
  234.            break;}
  235.        case (3):{
  236.            exit(0);
  237.            break;}  
  238.    }
  239. }  
  240. void izquierda(int *a, int *b, char camino[N],int e, char nombre[N],int *nivel, int *conta){
  241.     char C;
  242.     gotoxy(a,b);
  243.     moverHeroe(a,b);
  244.     while (camino[e] != '|'){
  245.     borde(nombre,nivel);
  246.     imprimirMapa(nivel);
  247.     C = getch();
  248.     clrscr();
  249.     moverHeroe(a,b);
  250.     if (C==75){
  251.         a--;
  252.         gotoxy(a,b);
  253.         imprimirMapa(nivel);
  254.         moverHeroe(a,b);
  255.         //verificacamino(e,camino);
  256.         conta--;
  257.         e--;
  258.     }
  259.     }
  260. }/*
  261. void verificacamino(int e, char camino[N]){
  262.     char caracter;
  263.     camino[e]= caracter;
  264.     switch(caracter){
  265.        case ('A'):{
  266.            printf("dfd");
  267.            load();
  268.            break;}
  269.        case ('M'):{
  270.            printf("fefd");
  271.            load();
  272.            break;}
  273.        case ('P'):{
  274.            load();
  275.            break;}
  276.        case ('_'):{
  277.            exit(0);
  278.            break;
  279.            
  280.        }  
  281.     }
  282. }*/
  283. void derecha(int *a, int *b, char camino[N],int e, char nombre[N],int *nivel, int *conta ){
  284.     char C;
  285.     gotoxy(a,b);
  286.     moverHeroe(a,b);
  287.     while (camino[e] != '|'){
  288.     borde(nombre,nivel);
  289.     imprimirMapa(nivel);
  290.     C = getch();
  291.     clrscr();
  292.     moverHeroe(a,b);
  293.     if (C==77){
  294.         a++;
  295.         gotoxy(a,b);
  296.         imprimirMapa(nivel);
  297.         moverHeroe(a,b);
  298.         //verificacamino(e,camino);
  299.         e++;
  300.         ;}
  301.     };
  302.     conta--;
  303.     if (conta>0){
  304.     izquierda(a,b,camino,e,nombre,nivel,conta);
  305.     }
  306.     conta--;
  307. }
  308.  
  309.   void moverHeroe(int c,int d){
  310.      
  311.     //cambio de movimiento
  312.         //cabeza
  313.         gotoxy(c,d);
  314.         printf("%c",254);
  315.         //brazos
  316.         gotoxy(c-1,d+1);
  317.         printf("%c",200);
  318.         gotoxy(c,d+1);
  319.         printf("%c",177);
  320.         gotoxy(c+1,d+1);
  321.         printf("%c",188);
  322.         //piernas
  323.         gotoxy(c,d+2);
  324.         printf("%c",186);
  325.    
  326. }
  327.  
  328. /*
  329.  
  330. void moves(char camino[N],char nombre[N],int *nivel,int *a,int *b,int *cont){  
  331.     char C;
  332.     int e=0;
  333.     gotoxy(a,b);
  334.     moverHeroe(a,b);
  335.     while (cont>=0){
  336.     borde(nombre,nivel);
  337.     imprimirMapa(nivel);
  338.     derecha(a,b,camino,e,nombre,nivel,cont);
  339.    
  340.     }
  341.  }
  342. */
  343. int main() {
  344.     char C;
  345.     char nombre[10], camino[N];
  346.     load();
  347.     int estado=1;
  348.     int i=5,j=6, nivel=1, cont;
  349.     printf("Ingrese el nombre del jugador : ");
  350.     gets(nombre);//obtenemos el nombre
  351.     menu();
  352.     system("cls");
  353.     load();
  354.       char camino1[N]={'_','_','_','_','_','_','_','_','_','P','_','_','_','_','_','_','_','_','_','W','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  355.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  356.                      '_','_','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  357.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  358.                      '_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','F'};
  359.    
  360.     char camino2[N]={'_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_',' ','|',
  361.                      '|',' ','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  362.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  363.                      '|',' ','_','_','P','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_',
  364.                      '_','_','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  365.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','P','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  366.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','_','_','A','F'};
  367.  
  368.     char camino3[N]={'_','_','_','_','_','_','_','_','_','P','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_',' ','|',
  369.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  370.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','P','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','_','_','_','_','A','_','_','_','_','_','_','_',' ','|',
  371.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  372.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  373.                      '|',' ','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','M','_','_','_','_',
  374.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','P','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',' ','|',
  375.                      '|',' ','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
  376.                      '_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','A','_','_','_','_','_','_','_','_','_','M','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','M','F'};
  377.    
  378. //iniciamos el juego//
  379.    
  380.     while(estado != 0){//comenzamos en el nivel 1
  381.          switch(nivel){
  382.                 case (1):{
  383.                 nivel=1; cont=5; camino[N]=camino1[N];
  384.                 break;}
  385.                 case (2):{
  386.                 nivel=2; cont=7; camino[N]=camino2[N];
  387.                 break;}
  388.                 case (3):{
  389.                 nivel=3; cont=9; camino[N]=camino3[N];
  390.                 break;}
  391.          }
  392.          system("cls");
  393.          borde(nombre,nivel);
  394.          gotoxy(i,j);
  395.          imprimirMapa(nivel);
  396.          moverHeroe(i,j);
  397.          borde(nombre,nivel);
  398.          
  399.          //moves(camino,nombre,&nivel,&i,&j,&cont);
  400.         //estado=0//;
  401.     }
  402.   record();
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement