大家好,我正在尝试编码一个可以从左向右移动的笑脸。我设法编码了笑脸并打印出来。但我无法对其进行编码,因此它可以从左向右移动。
以下是我的代码:
#include <stdio.h>
#include <stdlib.h>
int charprint(char x[][8], int X, int Y)
{
for (int i = 0 ; i<X ; i++)
{
for (int j = 0; j<Y; j++ )
{
if( x[i][j]== '1')
{
printf(" ");
}
else
{
printf("%c", 219);
}
}
printf("\n");
}
}
int main()
{
char bitmap [8][8] =
{
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'X', '1', '1', '1', '1', '1', '1','X'},
{'1', 'X', '1', '1', '1', '1', 'X','1'},
{'1', '1', 'X', 'X', 'X', 'X', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
};
charprint(bitmap, 8, 8);
return 0;
}
答案 0 :(得分:0)
你必须考虑“在移动后移动和填充空白”和“环绕移动”之间的区别。
for each line:
temp = wrap ? (moveleft() ? line[0] : line[7]) : '1'
memmove(line + moveleft() ? 0 : 1, line + moveleft() ? 1 : 0, 7)
line[moveleft() ? 7 : 0] = temp