Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void grafik_init(void)
- {
- int anzahlschwarz = 6;
- if(!global_menuvorhanden)
- {
- insert_menue();
- global_menuvorhanden = 1;
- }
- //Feld generieren
- for (i = 0; i < kaestchen; i++)
- {
- for (j = 0; j < kaestchen; j++)
- {
- feld[i][j] = 0;
- zahlen[i][j] = 0;
- }
- }
- // Zufällige graue Felder generieren
- for (i = 0; i < anzahlschwarz;)
- {
- int randomX = rand() % kaestchen;
- int randomY = rand() % kaestchen;
- int erlaubt = 1;
- if (feld[randomX][randomY] != 1)
- {
- if(randomX < (kaestchen-1) && feld[randomX+1][randomY] == 1)
- erlaubt = 0;
- if(randomX > 0 && feld[randomX-1][randomY] == 1)
- erlaubt = 0;
- if(randomY < (kaestchen-1) && feld[randomX][randomY+1] == 1)
- erlaubt = 0;
- if(randomY > 0 && feld[randomX][randomY-1] == 1)
- erlaubt = 0;
- if (erlaubt)
- {
- feld[randomX][randomY] = 1;
- i++;
- }
- }
- }
- // Fill numbers
- for (x = 0; x < kaestchen; x++)
- {
- for (y = 0; y < kaestchen; y++)
- {
- int FreieFelder = 1;
- // . . . . . . . . . .
- // <--- (x, y) . . . .
- // . . . . . . . . . .
- for (i = x - 1; i >= 0; i--)
- if (feld[i][y] != 1)
- FreieFelder++;
- else
- break;
- // . . . . . . . . .
- // . . . (x, y) --->
- // . . . . . . . . .
- for (i = x + 1; i < kaestchen; i++)
- if (feld[i][y] != 1)
- FreieFelder++;
- else
- break;
- // . . . . ^ . . . .
- // . . . (x, y) . . .
- // . . . . . . . . .
- for (j = y - 1; j >= 0; j--)
- if (feld[x][j] != 1)
- FreieFelder++;
- else
- break;
- // . . . . . . . . .
- // . . . (x, y) . . .
- // . . . . v . . . . .
- for (j = y + 1; j < kaestchen; j++)
- if (feld[x][j] != 1)
- FreieFelder++;
- else
- break;
- if (feld[x][y] == 1)
- FreieFelder = 0;
- //int neueZahl = bereichneFreieFelder(i, j);
- zahlen[x][y] = FreieFelder;
- }
- }
- //TODO: Optionally check if solvable else startover
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement