Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #define h 20
- #define w 20
- #define floodY 10
- #define floodX 10
- struct node{
- char content;
- bool visited;
- }map[h][w];
- void create(){
- for(int i=0;i<h;i++)
- for(int j=0;j<w;j++){
- if(i == 0 || i == 19 || j == 0 || j == 19){
- map[i][j].content ='#';
- map[i][j].visited = true;
- }else{
- map[i][j].content =' ';
- map[i][j].visited = false;
- }
- }
- for(int i=0;i<=9;i++){
- map[i][9].content = '#';
- map[9][i].content = '#';
- }
- for(int i=11;i<=18;i++){
- map[i][10].content = '#';
- map[10][i].content = '#';
- }
- }
- void view(){
- for(int i=0;i<h;i++){
- for(int j=0;j<w;j++){
- printf("%c", map[i][j].content);
- }
- puts("");
- }
- }
- void floodfill(int x, int y){
- if(x > 0 && y > 0 && x <19 && y < 19 && !map[x][y].visited){
- if(map[x][y].content == '#') return;
- map[x][y].content = 'x';
- map[x][y].visited = true;
- floodfill(x+1,y);
- floodfill(x,y+1);
- floodfill(x-1,y);
- floodfill(x,y-1);
- }
- }
- void check(){
- for(int i=0;i<h;i++)
- for(int j=0;j<w;j++){
- if(!map[i][j].visited){
- printf("Flood");
- return;
- }
- }
- }
- int main(){
- create();
- floodfill(floodX,floodY);
- view();
- check();
- getchar();
- return 0;
- }
Add Comment
Please, Sign In to add comment