POJ -1753-Flip Game
5881 단어 game
이 문 제 는 깊이 파고 들 었 지만 조작 방식 이 귀 찮 았 습 니 다. o (2 ^ 16) 그리고 읽 을 때% c 를 사용 해서 비극 적 이 었 습 니 다.
#include<cstdio>
#include<cstring>
#include<cstdlib>
int map[4][4];
int dx[] = { 1, -1, 0, 0};
int dy[] = { 0, 0, -1, 1};
int min = 100;
void init()
{
char a[10];
for( int i = 0; i < 4; i ++)
{
scanf( "%s", a);
for( int j = 0; j < 4; j ++)
{
if( a[j] == 'b') map[i][j] = 1;
else
map[i][j] = 0;
}
}
}
void Flip( int x, int y)
{
if( x < 0 || x > 3 || y < 0 || y > 3)
return;
map[x][y] = !map[x][y];
}
void turn( int pos)
{
int x = pos / 4;
int y = pos % 4;
Flip( x, y);
for( int i = 0; i < 4; i ++)
{
int nx = x + dx[i];
int ny = y + dy[i];
Flip( nx, ny);
}
}
bool check()
{
int t = 0;
for( int i = 0; i < 16; i ++)
t += map[i / 4][i % 4];
return t % 16 == 0 ? true : false;
}
void dfs( int pos, int step)
{
bool ok = check();
if( ok)
{
if (min > step)
min = step;
return;
}
if( pos >= 16) return;
dfs( pos + 1, step);
turn( pos); //
dfs( pos + 1, step + 1); // , 1
turn( pos); //
}
int main()
{
init();
dfs( 0, 0);
if( min > 16)
printf( "Impossible
");
else
printf( "%d
", min);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React를 사용한 브라우저 게임이 게시물은 코드에 들어가지 않고 어떻게 수행되었는지 간략하게 설명합니다. 소스 코드를 볼 수 있습니다 플래피 버드와 같은 장애물 회피 게임은 비교적 쉽게 시도할 수 있었습니다. 우주 테마를 추가하고 수직으로 만들면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.