俄罗斯方块
Time Limit: 1000ms Memory limit: 10000K 有疑问?点这里^_^
题目描述
这个游戏大家太熟悉了,应该没有人没玩过吧,相当有创意的一个小游戏,成为了人们心中的经典。
玩这个游戏时,很关键的是正在的下落的那个图形,位置和角度,因为可以通过旋转它来调整到适当的位置,从而能够消掉更多下面的块。
今天我们想要处理的问题要简单一些:我们用数组表示那些正在下落的图形,然后会给出一个目前的状态,希望你能通过编程得出其顺时针旋转90度以后的状态,当然这里的旋转要求并不提别高,我们可以通过旋转那个包含图形的小数组来实现其旋转。
输入
输入的第一行是两个正整数r和c (3 < r,c < 20),分别表示存放下落小图形的数组的行数和列数。然后是r行数据,每行c个0或1,中间没有空格,所有的1描述出了小图形的形状.
输出
根据题目要求输出旋转后得到的状态,是一个c*r的0-1矩阵。
示例输入
4 5
00000
01110
00100
00000
示例输出
0000
0010
0110
0010
0000
- #include<stdio.h>
- struct stud
- {
- char s[22];
- }hang[21];
- int main()
- {
- int a[21][21], i, j, m, n;
- scanf("%d%d", &m, &n);
- for(i = 0; i <= m - 1; i++)
- {
- scanf("%s", &hang[i].s);
- }
- for(i = 0; i <= m - 1; i++)
- {
- for(j = 0; j <= n - 1; j++)
- {
- a[i][j] = hang[i].s[j] - 48;
- }
- }
- for(j = 0; j <= n - 1; j++)
- {
- for(i = m - 1; i >= 0; i--)
- {
- if(i == 0)
- printf("%d\n", a[i][j]);
- else
- printf("%d", a[i][j]);
- }
- }
- return 0;
- }