Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
4CS 1.91 KB | None | 0 0
  1. void grafik_init(void)
  2. {
  3.     int anzahlschwarz = 6;
  4.  
  5.     if(!global_menuvorhanden)
  6.     {
  7.         insert_menue();
  8.         global_menuvorhanden = 1;
  9.     }
  10.  
  11.     //Feld generieren
  12.     for (i = 0; i < kaestchen; i++)
  13.     {
  14.         for (j = 0; j < kaestchen; j++)
  15.         {
  16.             feld[i][j] = 0;
  17.             zahlen[i][j] = 0;
  18.         }
  19.     }
  20.  
  21.     // Zufällige graue Felder generieren
  22.     for (i = 0; i < anzahlschwarz;)
  23.     {
  24.         int randomX = rand() % kaestchen;
  25.         int randomY = rand() % kaestchen;
  26.         int erlaubt = 1;
  27.         if (feld[randomX][randomY] != 1)
  28.         {
  29.             if(randomX < (kaestchen-1) && feld[randomX+1][randomY] == 1)
  30.                 erlaubt = 0;
  31.             if(randomX > 0 && feld[randomX-1][randomY] == 1)
  32.                 erlaubt = 0;
  33.             if(randomY < (kaestchen-1) && feld[randomX][randomY+1] == 1)
  34.                 erlaubt = 0;
  35.             if(randomY > 0 && feld[randomX][randomY-1] == 1)
  36.                 erlaubt = 0;
  37.             if (erlaubt)
  38.             {
  39.                 feld[randomX][randomY] = 1;
  40.                 i++;
  41.             }
  42.         }
  43.     }
  44.  
  45.     // Fill numbers
  46.     for (x = 0; x < kaestchen; x++)
  47.     {
  48.         for (y = 0; y < kaestchen; y++)
  49.         {
  50.             int FreieFelder = 1;
  51.             // . . . . . . . . . .
  52.             // <--- (x, y) . . . .
  53.             // . . . . . . . . . .
  54.             for (i = x - 1; i >= 0; i--)
  55.                 if (feld[i][y] != 1)
  56.                     FreieFelder++;
  57.                 else
  58.                     break;
  59.             // . . . . . . . . .
  60.             // . . . (x, y) --->
  61.             // . . . . . . . . .
  62.             for (i = x + 1; i < kaestchen; i++)
  63.                 if (feld[i][y] != 1)
  64.                     FreieFelder++;
  65.                 else
  66.                     break;
  67.             // . . . . ^  . . . .
  68.             // . . . (x, y) . . .
  69.             // . . . . . . . . .
  70.             for (j = y - 1; j >= 0; j--)
  71.                 if (feld[x][j] != 1)
  72.                     FreieFelder++;
  73.                 else
  74.                     break;
  75.             // . . . .  . . . . .
  76.             // . . . (x, y) . . .
  77.             // . . . . v . . . . .
  78.             for (j = y + 1; j < kaestchen; j++)
  79.                 if (feld[x][j] != 1)
  80.                     FreieFelder++;
  81.                 else
  82.                     break;
  83.  
  84.             if (feld[x][y] == 1)
  85.                 FreieFelder = 0;
  86.  
  87.             //int neueZahl = bereichneFreieFelder(i, j);
  88.             zahlen[x][y] = FreieFelder;
  89.         }
  90.     }
  91.  
  92.     //TODO: Optionally check if solvable else startover
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement