Advertisement
Guest User

mazeB_c_0.1

a guest
Oct 9th, 2015
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <time.h>
  5.  
  6. short i,i2,maxx,maxy,i3,i4,randnum;
  7. bool running = true, blocked = false, isolated = true;
  8. short playerX,playerY,genX,genY;
  9.  
  10. int main () {
  11.     srand(time(NULL));
  12.      
  13.     printf("Dimensiones: \n");
  14.     scanf("%d%d",&maxx,&maxy);
  15.      
  16.     char grid[maxy][maxx];
  17.     playerX=rand()%maxx;
  18.     playerY=rand()%maxy;
  19.     genX=playerX;
  20.     genY=playerY;
  21.      
  22.     //Generacion de grid inicial
  23.     for(i = 0;i < maxy;i++) {for(i2=0;i2<maxx;i2++){
  24.         if(i%2==0 && i2%2==0 || i==playerY && i2==playerX) {grid[i][i2] = ' ';}
  25.         else {grid[i][i2] = '#';}
  26.     }}
  27.      
  28.     //Generacion de pasillos
  29.     /*for(i = 0;i < maxy;i++) {for(i2=0;i2<maxx;i2++){
  30.         if(grid[i][i2] == ' ') {
  31.             randnum = rand()%5;
  32.             switch (randnum) {
  33.                 case 1:
  34.                     grid[i][i2+1] = ' ';
  35.                     break;
  36.                 case 2:
  37.                     grid[i][i2-1] = ' ';
  38.                     break;
  39.                 case 3:
  40.                     grid[i+1][i2] = ' ';
  41.                     break;
  42.                 case 4:
  43.                     grid[i-1][i2] = ' ';
  44.                     break;
  45.                 default: break;
  46.             }  
  47.         }  
  48.     }}*/
  49.      
  50.     while(blocked==false) {
  51.         randnum=rand()%5;
  52.         switch (randnum) {
  53.             case 1:
  54.                 if(grid[genY][genX+2] == ' ') {
  55.                     grid[genY][genX+1] = ' ';
  56.                     genX=genX+2;
  57.                 }
  58.                 break;
  59.             case 2:
  60.                 if(grid[genY][genX-2] == ' ') {
  61.                     grid[genY][genX-1] = ' ';
  62.                     genX=genX-2;
  63.                 }
  64.                 break;
  65.             case 3:
  66.                 if(grid[genY+2][genX] == ' ') {
  67.                     grid[genY+1][genX] = ' ';
  68.                     genY=genY+2;
  69.                 }
  70.                 break;
  71.             case 4:
  72.                 if(grid[genY-2][genX] == ' ') {
  73.                     grid[genY-1][genX] = ' ';
  74.                     genY=genY-2;
  75.                 }
  76.                 break;
  77.             default: break;
  78.         }
  79.         //if(grid[genY-1][genX] == ' ' && grid[genY+1][genX] == ' ' && grid[genY][genX-1] == ' ' && grid[genY][genX+1] == ' ') {blocked = true;}
  80.         for(i = 0;i < maxy;i=i+2) {for(i2=0;i2<maxx;i2=i2+2){
  81.             if(grid[i-1][i2] != ' ' && grid[i+1][i2] != ' ' && grid[i][i2-1] != ' ' && grid[i][i2+1] != ' ') {isolated = true;}
  82.             else {isolated = false;}
  83.         }}
  84.         if(isolated==false) {blocked=true;}
  85.     }
  86.      
  87.     //Juego en si:
  88.     while(running) {
  89.         //Controles y colisiones
  90.         switch(getch()) {
  91.             case 'H':       //Arriba
  92.                 if(grid[playerY-1][playerX] == ' ') {playerY--;}
  93.                 break;
  94.             case 'K':       //Izquierda
  95.                 if(grid[playerY][playerX-1] == ' ') {playerX--;}
  96.                 break;
  97.             case 'P':       //Abajo
  98.                 if(grid[playerY+1][playerX] == ' ') {playerY++;}
  99.                 break;
  100.             case 'M':       //Derecha
  101.                 if(grid[playerY][playerX+1] == ' ') {playerX++;}
  102.                 break;
  103.             case 27:        //Escape
  104.                 running = false;
  105.                 break;
  106.             default:
  107.                 printf("http://media.giphy.com/media/ZTMAhfbqpSMP6/giphy.gif"); //Nosotros en grupo dándole al coco
  108.                 break;
  109.         }
  110.          
  111.         system("cls");      //Vaciar terminal
  112.          
  113.         //Mostrar todo en pantalla
  114.         for(i3 = 1;i3 < maxy;i3++) {
  115.             for(i4 = 1;i4 < maxx;i4++){
  116.                 if(i3 == playerY && i4 == playerX) {printf("x");}
  117.                 else{printf("%c",grid[i3][i4]);}
  118.             }
  119.             printf("\n");
  120.         }
  121.     }
  122. }
  123.      
  124.      
  125. /*
  126.          ___------__
  127.   |\__-- /\       _ -  
  128.   |/_   __       _
  129.   // \ /  \     /__
  130.   |  o|  0|__      --_
  131.   \\____-/ __ \   ___ -
  132.   (@@   ___/  / /_
  133.      -_____---   --_
  134.      //  \ \\       -
  135.    //|\__/  \\   ___ -
  136.    \_\\_____/  \-|
  137.        // \\--\|
  138.   ____//  ||_
  139.  /___//_\ /__|
  140.  Sladkoto Ivi
  141.  
  142.  Property of the La-Li-Lu-Le-Lo © Illuminati 420 B.C. - 2016 A.D.
  143.  Do not matrix with stereo sound. Do not compile in Bloodshed Dev-C++.
  144.  Full or partial copy of this file is punishable by death penalty.
  145.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement