Beispiel #1
0
void setWater(vector<vector<char>> & grid, int y, int x) {
	grid[y][x] = '0';
	if (x >= 1 && grid[y][x-1] == '1') {
		setWater(grid, y, x-1);
	}
	if (x+1 < grid[y].size() && grid[y][x+1] == '1') {
		setWater(grid, y, x+1);
	}
	if (y >= 1 && grid[y-1][x] == '1') {
		setWater(grid, y-1, x);
	}
	if (y+1 < grid.size() && grid[y+1][x] == '1') {
		setWater(grid, y+1, x);
	}
}
Beispiel #2
0
void TerrainTile::decode(const int bitset)
{
   reset();

   if (bitset & 0x1)
   {
      setTree(true);
   }
   if (bitset & 0x2)
   {
      setRock(true);
   }
   if (bitset & 0x4)
   {
      setWater(true);
   }
   if (bitset & 0x8)
   {
      setBuilding(true);
   }
   if (bitset & 0x10)
   {
      setTree(true);
   }
   if (bitset & 0x20)
   {
      // setGarden(true);
   }
   if (bitset & 0x40)
   {
      setRoad(true);
   }
   if (bitset & 0x100)
   {
      //setAqueduct(true);
   }
   if (bitset & 0x200)
   {
      //setElevation(true);
   }
   if (bitset & 0x400)
   {
       int i=0;
       setRock( true );
      //setAccessRamp(true);
   }
   if (bitset & 0x800)
   {
      //setMeadow(true);
   }
   if (bitset & 0x4000)
   {
      //setWall(true);
   }
}
Beispiel #3
0
//--------------------------------------first solution---------------------------------------------------------
//@desc: DFS and BFS
//@time complexity: O(m*n)
//@space complexity: O(1)
int numIslands(vector<vector<char>>& grid) {
	int ret = 0;
	for (int y = 0; y < grid.size(); y++) {
		for (int x = 0; x < grid[y].size(); x++) {
			if (grid[y][x] == '1') {
				ret++;
				setWater(grid, y, x);
			}
		}
	}
	return ret;
}
Beispiel #4
0
void resetPlayer(PLAYER *whom)//int* hits, char board[8][8], char view[8][8])
{
	whom->hits = 0;
	COORDINATE target;
	for(int r=0; r<8; r++)
	{
		for(int c=0; c<8; c++)
		{
			setCoord(&target, c, r);
			setWater(&target, whom);
		}
	}
	
}
void TerrainTile::decode(const int bitset)
{
  clearFlags();

  if (bitset & 0x1)    {  setTree(true);      }
  if (bitset & 0x2)    {  setRock(true);      }
  if (bitset & 0x4)    {  setWater(true);     }
  if (bitset & 0x8)    {  setBuilding(true);  }
  if (bitset & 0x10)   {  setTree(true);      }
  if (bitset & 0x20)   {  setGarden(true);    }
  if (bitset & 0x40)   {  setRoad(true);      }
  if (bitset & 0x100)  {  setAqueduct(true);  }

  if (bitset & 0x200)  {  setElevation(true); }
  if (bitset & 0x400)  {  setRock( true );    }
  if (bitset & 0x800)  {  setMeadow(true);    }
  if (bitset & 0x4000) {  setWall(true);      }
  if (bitset & 0x8000) {  setGateHouse(true); }
}