Bazen karalamalar yaparken bir dikdörtgen çizerim, köşelerden birinden köşegen bir köşeyle başlarım ve sonra dikdörtgenin bir tarafına çarptığımda "yansıtarak" bir çizgi çizerim. Dikdörtgenin başka bir köşesine gelinceye kadar devam ediyorum (ve dikdörtgemin en boy oranının irrasyonel olmadığını umuyorum;). Bu, bir lazer parlamasına bir kutuya giden yolu bulmak gibi. Bunun sonucunu ASCII sanatıyla üreteceksin.
Örnek olarak, genişlik 5
ve yükseklik bir kutu düşünün 3
. Her zaman sol üst köşeden başlayacağız. #
İşaretleri kutusunun sınırı. Genişlik ve yüksekliğin iç boyutlara atıfta bulunduğuna dikkat edin.
####### ####### ####### ####### ####### ####### #######
#\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\#
# \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/#
# \ # # \/ # # \/ # # /\/ # #\/\/ # #\/\/ # #\/\/\#
####### ####### ####### ####### ####### ####### #######
Meydan okuma
Kutunun (pozitif) genişliği ve yüksekliği göz önüne alındığında, lazerin izlenmesinin nihai sonucunu vermelisiniz. STDIN (veya en yakın alternatif), komut satırı argümanı, işlev argümanı ile giriş alarak bir program veya işlev yazabilir, sonucu STDOUT (veya en yakın alternatif) veya işlev dönüş değerleri veya argümanları aracılığıyla çıktı alabilirsiniz.
Giriş için herhangi bir uygun liste, dize veya sayı biçimini kullanabilirsiniz. Çıktı tek bir dize olmalıdır (yavaş yavaş yapabileceğiniz STDOUT'a yazdırmazsanız). Bu, ayrıca önce yüksekliği ve ikinci genişliği alabileceğiniz anlamına gelir - cevabınıza tam giriş biçimini belirtmeniz yeterlidir.
Çıktının herhangi bir satırında öncü veya iz bırakmayan boşluk olmamalıdır. İsteğe bağlı olarak tek bir izleyen yeni satır gönderebilirsiniz.
Sen alanı kullanabilir, gerekir /
, \
ve #
ve tam olarak gösterilen test durumları yeniden.
Test Kılıfları
2 2
####
#\ #
# \#
####
3 2
#####
#\/\#
#/\/#
#####
6 3
########
#\ /#
# \ / #
# \/ #
########
7 1
#########
#\/\/\/\#
#########
1 3
###
#\#
#/#
#\#
###
7 5
#########
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#/\/\/\/#
#\/\/\/\#
#########
22 6
########################
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
# /\ /\ /\ /\ /\ /#
#/ \/ \/ \/ \/ \/ #
#\ /\ /\ /\ /\ /\ #
# \/ \/ \/ \/ \/ \#
########################
X
geçişler için gerekli olacak şekilde birden fazla başlangıç noktası düşünüyordum . Belki gelecek sefere. ;)