Açıklama
Her hareketin aşağıdakilerden oluştuğu Tetris'in biraz basitleştirilmiş bir versiyonunu düşünüyoruz:
- parçanın saat yönünde, 0 ila 3 kez döndürülmesi
- parçanın belirli bir sütuna yerleştirilmesi
- hızlı düşme
Amaç, bu tür Tetris hareketlerinin bir listesi verilen tamamlanmış satır sayısını belirlemektir.
Tamamlanan satırlar standart Tetris kurallarına uyarak, parçalar düşerken çıkarılır.
Playfield
Oyun alanı 10 sütun genişliğindedir. Hiçbir var Oyun Bitti ve hiç Playfield yapılandırmasını önemli, yukarıdaki eylemleri gerçekleştirmek için her zaman yeterli alan ve zaman var olduğu varsayılır. Oyun alanının yüksekliği burada gerçekten önemli değil, ancak standart 22 satırı bir üst sınır olarak kullanabilirsiniz.
Tetrominoların Şekilleri
Giriş çıkış
Giriş
3 karakter ile kodlanmış Tetris hareketlerinin virgülle ayrılmış listesi. İlk iki karakter kullanılacak Tetromino şeklini ve sonuncusu düşürüldüğü konumu tanımlar.
- Tetromino:
I,O,T,L,J,Zya daSyukarıda belirtildiği gibi aynı sırada. - Saat yönü sayısı:
0için3 - Sütun:
0için9. Bu (bir işaretli birim üst sol köşesi içinde sütundurxyukarıdaki resme) dönme sonrasında bulunan 1
Verilen listedeki tüm hareketlerin geçerli olduğu varsayılmaktadır. Geçersiz girişleri denetlemeye gerek yoktur I07(yatay Işekil çok fazla sağa yerleştirilmiş).
1 Hareketin üçüncü karakteri tarafından verilen sütunda yer aldığı sürece ya gerçek bir dönme algoritması uygulamakta ya da tüm farklı şekilleri kodlamakta özgürsünüz x.
Çıktı
Tamamlanan satır sayısı.
Örnek
O00,T24birinci pozisyonu O00,T24,S02,T01,L00,Z03,O07,L06,I05üretecek ve ikinci pozisyonu oluşturacak.
Bu nedenle, aşağıdaki dizi bir Tetris üretecektir ve geri dönmelidir 4:
O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19
Test durumları
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
Test sayfası
Bir hareket listesini test etmek için bu JSFiddle'ı kullanabilirsiniz .

