百分求教,俄罗斯方块算法。
如何让电脑自己走俄罗斯方块?
已知现在的图形和下一个图形,并知道现在的版面状态,
请问何种决策为较优或最优?如何做出正确决策?
图形有7种:
int shapes[7][4][4]=
{
{0, 0, 0, 0,
0, 1, 1, 0,
0, 1, 1, 0,
0, 0, 0, 0}, // block
{0, 0, 0, 0,
0, 0, 0, 0,
1, 1, 1, 1,
0, 0, 0, 0}, // bar
{0, 0, 0, 0,
0, 1, 0, 0,
1, 1, 1, 0,
0, 0, 0, 0}, // triple
{0, 0, 0, 0,
1, 1, 0, 0,
0, 1, 1, 0,
0, 0, 0, 0}, // lsnake
{0, 0, 0, 0,
0, 0, 1, 1,
0, 1, 1, 0,
0, 0, 0, 0}, // rsnake
{0, 0, 0, 0,
0, 0, 1, 0,
1, 1, 1, 0,
0, 0, 0, 0}, // lstick
{0, 0, 0, 0,
0, 1, 0, 0,
0, 1, 1, 1,
0, 0, 0, 0} // rstick
};
以上7种图形可顺时针和逆时针旋转。