- Коректно
- 3 успешни тест(а)
- 0 неуспешни тест(а)
PASS ok _/tmp/d20131025-20908-jcahnh 0.011s PASS ok _/tmp/d20131025-20908-jcahnh 0.011s PASS ok _/tmp/d20131025-20908-jcahnh 0.011s
Срокът за предаване на решения е отминал
Както на всеки от нас се е случвало да скучае на лекция, винаги опираме до момента, в който драскането по листа, който предварително е предназначен за смислени записки, е единственият ни вариант.
За ваше най-голямо щастие ние ще ви дадем най-ефективния начин за убиване на горепосоченото време, чертаейки драконов фрактал. Какво е драконов фрактал? Ако последвате няколкото стъпки по-долу, ще можете да си направите свой собствен драконов фрактал.
Стъпки:
Ето и следващата итерация:
И идва време за условието на задачата. Тъй като вече знаете как се прави драконов фрактал и вероятно може да си представите какво усилие се изисква за всяка следваща итерация, вие искате да си напише програма, която да ви помага да направите красивия драконов фрактал.
Трябва да си създадете тип DragonFractal
. При всяко извикване на метода му Next() string
,
той трябва да връща посока, в която да се нарисува следващата му линийка.
Посоката трябва да бъде стринг "left"
, "right"
, "up"
или "down"
като първата стъпка винаги е "up"
.
Ето как трябва да изглеждат първите няколко итерации.
dragon := new(DragonFractal)
dragon.Next() // 'up'
dragon.Next() // 'left'
dragon.Next() // 'down'
dragon.Next() // 'left'
dragon.Next() // 'down'
dragon.Next() // 'right'
dragon.Next() // 'down'
dragon.Next() // 'left'
Hint: Вероятно вече сте осъзнали, че на всяко извикване имате нужда от предишните стъпки.
unexported
стойност, в типа в DragonFractal би ви свършила перфектна работа.
PASS ok _/tmp/d20131025-20908-jcahnh 0.011s PASS ok _/tmp/d20131025-20908-jcahnh 0.011s PASS ok _/tmp/d20131025-20908-jcahnh 0.011s
PASS ok _/tmp/d20131025-20908-uhrqnb 0.011s PASS ok _/tmp/d20131025-20908-uhrqnb 0.011s PASS ok _/tmp/d20131025-20908-uhrqnb 0.011s
PASS ok _/tmp/d20131025-20908-6r5gwz 0.011s PASS ok _/tmp/d20131025-20908-6r5gwz 0.011s PASS ok _/tmp/d20131025-20908-6r5gwz 0.011s
PASS ok _/tmp/d20131025-20908-1edsiu6 0.011s PASS ok _/tmp/d20131025-20908-1edsiu6 0.011s PASS ok _/tmp/d20131025-20908-1edsiu6 0.011s
PASS ok _/tmp/d20131025-20908-1umfk1g 0.011s PASS ok _/tmp/d20131025-20908-1umfk1g 0.011s PASS ok _/tmp/d20131025-20908-1umfk1g 0.011s
PASS ok _/tmp/d20131025-20908-1tk2i0f 0.011s PASS ok _/tmp/d20131025-20908-1tk2i0f 0.011s PASS ok _/tmp/d20131025-20908-1tk2i0f 0.011s
PASS ok _/tmp/d20131025-20908-xesfl4 0.011s PASS ok _/tmp/d20131025-20908-xesfl4 0.011s PASS ok _/tmp/d20131025-20908-xesfl4 0.011s
PASS ok _/tmp/d20131025-20908-mmg0dr 0.015s PASS ok _/tmp/d20131025-20908-mmg0dr 0.012s PASS ok _/tmp/d20131025-20908-mmg0dr 0.047s
PASS ok _/tmp/d20131025-20908-9av0a 0.011s PASS ok _/tmp/d20131025-20908-9av0a 0.011s PASS ok _/tmp/d20131025-20908-9av0a 0.011s
PASS ok _/tmp/d20131025-20908-14d4s22 0.011s PASS ok _/tmp/d20131025-20908-14d4s22 0.011s PASS ok _/tmp/d20131025-20908-14d4s22 0.011s
# _/tmp/d20131025-20908-ra67o2 ./solution_test.go:10: dragon.Next() used as value ./solution_test.go:19: dragon.Next() used as value ./solution_test.go:23: dragon.Next() used as value ./solution_test.go:27: dragon.Next() used as value ./solution_test.go:31: dragon.Next() used as value ./solution_test.go:40: dragon.Next() used as value FAIL _/tmp/d20131025-20908-ra67o2 [build failed] # _/tmp/d20131025-20908-ra67o2 ./solution_test.go:10: dragon.Next() used as value ./solution_test.go:19: dragon.Next() used as value ./solution_test.go:23: dragon.Next() used as value ./solution_test.go:27: dragon.Next() used as value ./solution_test.go:31: dragon.Next() used as value ./solution_test.go:40: dragon.Next() used as value FAIL _/tmp/d20131025-20908-ra67o2 [build failed] # _/tmp/d20131025-20908-ra67o2 ./solution_test.go:10: dragon.Next() used as value ./solution_test.go:19: dragon.Next() used as value ./solution_test.go:23: dragon.Next() used as value ./solution_test.go:27: dragon.Next() used as value ./solution_test.go:31: dragon.Next() used as value ./solution_test.go:40: dragon.Next() used as value FAIL _/tmp/d20131025-20908-ra67o2 [build failed]