Hedef
Pozitif bir tamsayı alan bir program veya işlev yazın nve rastgele uzunluk dizisi (bundan böyle bir Pitch dizesi olarak adlandırılır) uzunluk oluşturur n.
Giriş
Sıfır olmayan, pozitif bir tam sayı n<= 100
Çıktı
Olası, geçerli bir uzunluk aralığı dizisini temsil eden rastgele bir dize veya karakter listesi döndürün n. Kullanılan karakterler:
- B - Top. Bunlardan 4 tanesini biriktirirseniz, hamur yürür ve vuruş bitirilir.
- S - Grev. Bunlardan 3 tane biriktirirseniz, hamur biter ve vuruş bitirilir.
- F - Faul. Ayrıca Grev sayısını artıracak ancak meyilli dışarı çıkamaz. Yani, geçerli bir karakter dizisinin son adımı faul olamaz. İki vuruş / faulü aşan fauller, Grev sayısını artırmayacaktır (meyilli zaten bu noktada 2 vuruş yapar ve 3'üncü onu çıkarır).
- H - Vur. Hamur topu oyuna soktu ve vuruşunu bitirdi.
(Bu biraz basitleştirildi, ancak bunun için endişelenme)
Geçerli zift dizeleri, grev, yürüyüş veya isabetle sonuçlanan dizelerdir.
Yani, geçersiz bir karakter dizisi ya
- 4. Top, 3. Vuruş veya Vuruştan sonra ek sahalar
- 4. top, 3. vuruş veya İsabet oluşturmadan önce sonlandırıldı.
kurallar
- Programınız belirli bir giriş için olası tüm sonuçları üretebilmelidir.
- Programınızın aynı şekilde rasgele olması gerekmez, ancak yine de bir önceki kurala uymalıdır.
- Bu kod golfü .
Örnekler
Input => Possible Outputs
1 => [H] #Can only end with a hit
2 => [S,H], [B,H], [F,H] #Can only end with a hit
3 => [S,S,S], [F,F,S], [B,B,H], ... #Can now strike-out, otherwise must end with a hit
4 => [B,B,B,B], [S,B,S,S], [B,F,S,S], [B,B,B,H], ... #Can now be walked, struck-out, or get a hit
6 => [S,B,S,B,B,H], [F,F,F,F,F,S], ... #Can now have a full-count (3 balls, 2 strikes) before finishing
Input => Invalid Outputs
1 => [S], [B] #Not enough for a strike-out/walk
2 => [S,S] #Not enough for a strike-out/walk
2 => [H,H] #Batter has already scored a hit
3 => [S,S,F] #Fouls will not cause a strike-out
4 => [S,S,S,H] #Batter has already struck out
5 => [B,B,B,B,B] #Batter has already walked
FS