Опис
Ми розглядаємо трохи спрощену версію Tetris, де кожен хід складається з:
- обертаючи шматок за годинниковою стрілкою, від 0 до 3 разів
- позиціонування шматка в заданій колонці
- швидка крапля
Мета - визначити кількість виконаних рядків з урахуванням переліку таких рухів тетрісу.
Завершені ряди видаляються у міру скидання шматочків, дотримуючись стандартних правил Tetris.
Ігрове поле
Поле шириною 10 колонок. Ніякої гри не закінчено, і передбачається, що для виконання вищезазначених дій завжди достатньо місця та часу, незалежно від конфігурації ігрового поля. Висота ігрового поля тут насправді не має значення, але ви можете використовувати стандартні 22 ряди як верхню межу.
Форми тетроміно
Введення-виведення
Вхідні дані
Список переміщених комами тетріс кодується з 3 символами. Перші два символи описують форму Tetromino, яку слід використати, а останній описує положення, де вона випала.
- Tetromino:
I
,O
,T
,L
,J
,Z
абоS
, в тому ж порядку , як зазначено вище. - Кількість обертів за годинниковою стрілкою:
0
до3
- Стовпець:
0
до9
. Це стовпець, в якомуx
після обертання розташований верхній лівий кут фрагмента (позначений символом на наведеному вище малюнку) 1
Передбачається, що всі рухи в наданому списку є дійсними. Немає необхідності перевіряти наявність недійсних записів, таких як I07
(горизонтальна I
форма поставлена занадто далеко справа).
1 Ви можете або реалізувати алгоритм реального повороту, або твердо кодувати всі різні фігури, доки "" x
знаходиться в стовпці, заданому третім символом ходу.
Вихідні дані
Кількість виконаних рядків.
Приклад
O00,T24
буде генерувати першу позицію і O00,T24,S02,T01,L00,Z03,O07,L06,I05
генерувати другу позицію.
Тому наступна послідовність породжує тетріс і повинна повернутися 4
:
O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19
Тестові справи
1) "O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19" -> 4
2) "S00,J03,L27,Z16,Z18,I10,T22,I01,I05,O01,L27,O05,S13" -> 5
3) "I01,T30,J18,L15,J37,I01,S15,L07,O03,O03,L00,Z00,T38,T01,S06,L18,L14" -> 4
4) "S14,T00,I13,I06,I05,I19,L20,J26,O07,Z14,Z10,Z12,O01,L27,L04,I03,S07,I01,T25,J23,J27,O01,
I10,I10" -> 8
5) "O00,T24,L32,T16,L04,Z11,O06,L03,I18,J30,L23,Z07,I19,T05,T18,L30,I01,I01,I05,T02" -> 8
Тестова сторінка
Ви можете використовувати цю JSFiddle для тестування списку переміщень.