Köpeğim bana havlıyor, ama onu yürüyüşe çıkaramayacak kadar tembelim. Bir fikrim var! Code Golf'teki insanları benim için yapmasını sağlayacağım!
Zorluklarınız bir köpeğin yürüyüşünü simüle etmektir. Köpek yürüyüş kuralları:
- İnsan (
H)0,0bir (Kartezyen) koordinat düzleminde başlar ve her saniye rastgele bir boşluk yukarı, sola, sağa veya aşağı gider. - Köpek (
D) aynı yerden başlayacak ve her saniye yukarı, sola, sağa veya aşağıya sıfır, bir, iki veya üç boşluk bırakacaktır (rastgele). Köpek daha az tahmin edilebilir ve bazen daha hızlı çalışır veya tamamen durur. - Köpek asla tasma uzunluğu (
L) olan insandan (Öklid mesafesindeki) belirli bir miktardan daha fazla uzaklaşmayacaktır . Örneğin,Lbir6, geçerli bir pozisyon olacaktırH(0,0) D(4,4)(mesafe 5.65 birimleri hakkında olduğu) için değil,H(0,0) D(5,4)(6,4 birim).- Köpek hareket ettiğinde, tasma mesafesi gereksinimini ihlal ederse, mesafe gereksinimini ihlal etmediği belirlenen yönde mümkün olduğunca uzağa gitmelidir. Örneğin, konum
H(0,0) D(3,4)ve köpek rastgele 3 boşluk sağa hareket etmeye karar verilirse,D(4,4)6 birimden fazla uzaklaşmadan gidebileceği en uzağa gideceği için gidecektir. (Bunun 0 boşluk hareketine neden olabileceğini unutmayın, yani hiç hareket yok!)
- Köpek hareket ettiğinde, tasma mesafesi gereksinimini ihlal ederse, mesafe gereksinimini ihlal etmediği belirlenen yönde mümkün olduğunca uzağa gitmelidir. Örneğin, konum
- Çeşitli kurallar: önce insan harekete geçer. İnsan hareket halindeyken tasma uzunluğunu aşmamalıdır. Eğer öyleyse, başka bir yön seçmelidir. "Rastgele", "eşit dağılımlı ve desensiz" anlamına gelir.
Giriş bu biçimde verilecektir (STDIN, fonksiyon parametresi, dosya vb. Olabilir):
"<amount of seconds the walk will last> <leash length>"
Örneğin:
300 6 // a 5 minute walk with a 6 yard leash
Bu biçimde çıktı vermelisiniz (STDOUT, işlev dönüş değeri, dosya vb. Olabilir):
H(0,0) D(0,0)
H(0,1) D(2,0)
H(1,1) D(2,1)
H(1,0) D(2,-1)
...
(Çizgilerin miktarı çıkış olacaktır seconds + 1, çünkü H(0,0) D(0,0)hattı sayılmaz.)
Bu kod golf , bu yüzden bayt içindeki en kısa kod kazanacak!
