Daha fazla Codington Crescent
İkinci deneme için kim var?
"Üzgünüm, hiçbir fikrim yok" radyo programını dinlediyseniz, muhtemelen "Mornington Crescent" adlı oyunu duymuşsunuzdur. Yapmayanlar için, oyuncuların Londra Yeraltı ağındaki rastgele istasyonları adlandırdığı bir oyundur. "Mornington Crescent" adını ilk alan kişi oyunu kazanır. 1
Geçen seferki gibi , size başka bir Codington Crescent oyunu sunuyorum .
Meydan okuma
Bu meydan okumanın galibi, değişken boyutlu pozitif tamsayılar listesi verildiğinde, söz konusu listenin ortalamasını (aritmetik ortalama) döndüren bir çalışma programı yayınlayan ilk kişidir. Liste boş olmayacak ve her zaman en az bir öğe içerecektir. Giriş ve çıkış, herhangi bir makul ve uygun formatta verilebilir
Test Durumları
[150, 541, 168, 225, 65, 191, 964, 283, 825, 5, 802, 426, 45, 326, 22, 619, 281] => 349.29411764705884
[874, 33, 423, 36, 1000, 255, 345, 902, 700, 141, 916, 959, 222, 246, 96] => 476.53333333333336
[567, 868, 680, 121, 574, 391, 233, 39, 764, 499, 455, 684, 742, 117, 376] => 474.0
[177, 372, 778, 709, 474, 796, 840, 742] => 611.0
[181, 751, 940, 782, 727, 756, 541, 762, 677, 751, 719] => 689.7272727272727
[47, 804, 782, 231, 170] => 406.8
[315, 972] => 643.5
[679, 727] => 703.0
[859, 229, 363, 468, 103, 104, 570, 772, 83, 693, 898, 672, 306, 733, 189, 717, 231] => 470.0
[228, 839] => 533.5
[395, 622, 760, 820, 70, 814, 797, 202, 277, 663, 93, 218, 564, 735] => 502.14285714285717
[724, 631, 932, 333, 605, 880, 670, 468, 703, 744, 680, 28] => 616.5
[950, 733, 305, 178, 995] => 632.2
[762, 506, 553, 284, 499, 694, 665, 998, 576, 504, 123, 658, 943, 385, 354, 732] => 577.25
[151, 919, 514, 721, 426, 333, 808, 514] => 548.25
[995] => 995.0
[891, 243, 42, 968, 458, 372, 301, 269, 559, 394, 980, 372, 804, 429, 738] => 521.3333333333334
[147, 473, 632] => 417.3333333333333
[105, 483, 225, 541, 684, 456, 328] => 403.14285714285717
[311, 1, 770, 417, 910, 185, 375, 631, 226, 266, 609] => 427.3636363636364
Kurallar
- Her oyuncunun karakter ekleyeceği / değiştireceği kendi programı vardır. Bu onların çalışan programı olarak adlandırılır .
Her cevap (bir dönüş ), önceki cevaplarla tanımlanan kaynak kısıtlamalarına uymalıdır. Bunlara kural denir . Her varyant 5 tur sürer . Kurallar, kısıtlı kaynak kısıtlamaları biçimindedir .
Çalışan programlar, dönüşler arasında dilleri değiştirebilir.
Cevap verenler (oyuncular), tur başına istedikleri kadar çalışan programlarının karakterlerini ekleyebilir, değiştirebilir veya kaldırabilir (ancak seçeneklerden yalnızca biri). Alternatif olarak, "geçmeyi" ( daha bilimsel olarak farkle ) seçebilirler , yeni kurallar eklemeyebilirler ve yine de bir dönüş olarak sayabilirler . Kurallar birbiriyle çelişiyorsa tek seçenek bu olabilir. Dönüş sayısı hala artırılır ve kaydedilecektir. Profesyonel ipucu: Muhtemelen topluluk wiki'sini işaretlemek isteyebilirsiniz çünkü fazla bir şey eklemiyor.
Her turun sonunda, oyuncu sonraki 5 turu kapsayacak yeni bir kural ilan eder. Kurallar objektif olmalıdır ve bir TIO doğrulama programı şiddetle tavsiye edilir. Ayrıca, kuralların her dile uygulanabilmesi gerekir (örneğin
Programs must not error using Python 3.4.2, geçerli bir kural değildir).Oynatma, çalışan bir program hedef sonuca ulaşana kadar devam eder.
Bir hafta boyunca bir dönüş yapılmazsa, örtük bir farkle ortaya çıkacaktır. Bir dönüş olarak sayıldığı için örtük bir farkle'den sonra her zaman bir dönüş yapabilirsiniz (bunu Topluluk kullanıcısının sırası olarak düşünün).
Başlangıç Kuralları
Maçın başlaması için ilk 5 tur şu kurallara uymalıdır:
- Dönüşler nihai hedefi başaramayabilir
- Minimum program uzunluğu 10 bayttır
Kalıcı Kurallar
Geçen sefer, aşağıdaki kuralların 5 dönüşlü kurallardan ziyade kalıcı bir kural olarak daha uygun olduğu belirtildi:
Çalışan programlar indirgenemez olmalıdır. Bu durumda indirgenemez, tüm programdan karakterler kaldırılırsa programın tüm programın çıktısını üretmeyeceği anlamına gelir. Yani. Orijinal programdan karakterleri kaldırarak oluşturulabilecek varsayılanla aynı çıktıya sahip bir program yoktur.)
Bir program ilk görünümünden itibaren 5 tur içinde kazanamaz
Örnek Kurallar
Bunlar, meydan okumaya kural olarak ekleyebileceğiniz şeylerin tamamen örnekleridir. Birisi bunları kullanmaya karar vermedikçe geçerli değildir.
- Çalışan programın ilk ve son karakteri boşluk olmalıdır
- Çalışan programların eşit miktarda bayt olması gerekir
- Çalışan programlar 30 bayttan fazla olmamalıdır
Ekstra Yanıt Zincirleme Kuralları
- Arka arkaya iki kez cevap veremezsiniz. Bir kez daha denemeden önce başka birinin cevap vermesi gerekiyor.
- Dillerin geçerli yanıtlar olması için Çevrimiçi Dene'de olması gerekir.
Uzman ipucu: daha uyumlu bir yanıt akışı için en eskiye göre sıralayın
1 Orijinal Mornington Crescent oyununun gerçekten kuralları yok ... Daha çok karmaşık bir oyun gibi görünen bir etkinlik.
Cevap Şablonu
# [Language], turn number [your turn]
<code>
[Try it online link]
[prev answer link]
## Rules
- Rule (n turns left)
- Rule (n turns left)
- Rule (n turns left)
Yanıtlar
05AB1E , dönüş 3
$XY~sDOsg/*+
(Önceki cevaba nasıl bağlanırım?)
Oğlum, Code Golf'ü seviyorum!
Açıklama
$ # Push 1 and input
X # Push 1
Y # Push 2
~ # Converts 1 and 2 to 3
s # Swap to get implicit input
D # Duplicate
O # Sum the list
s # Swap top 2 values and gets the preserved list.
g # Push the length of the list.
/ # Push the quotient of sum and length
* # Multiply with 3
+ # Add with one
Mevcut kurallar
- Dönüşler nihai hedefi gerçekleştirmeyebilir - Ortalama üç artı bir artı bir yazdırır ( 2 tur sola! )
- Minimum program uzunluğu 10 bayttır (3 dönüş sola) - Programın uzunluğu 12 bayttır ( 2 dönüş sola! )
- Programlar ~ karakterini içermelidir - Karakterin 1 ve 2'nin bitsel VEYA ( 3 tur sola! )
- Programların ortalama bayt değeri 80'den küçük veya eşit olmalıdır - Programın ortalama bayt değeri 79,25'tir (4 dönüş sola!)
Yeni kural
Drumroll
Program 5-10 alfasayısal olmayan karakter içermelidir (5 dönüş sola!)
Io , 20 bayt
Ortalama + 1'i verir.
method(~,~average+1)
Kurallar
ilk 5 dönüş şu kurallara uymalıdır:
- Dönüşler nihai hedefi başaramayabilir
- Minimum program uzunluğu 10 bayttır
bu, çalışan tüm programlar için geçerlidir:
Çalışan programlar indirgenemez olmalıdır. Bu durumda indirgenemez, tüm programdan karakterler kaldırılırsa programın tüm programın çıktısını üretmeyeceği anlamına gelir. Yani. Orijinal programdan karakterleri kaldırarak oluşturulabilecek varsayılanla aynı çıktıya sahip bir program yoktur.)
Bir program ilk görünümünden itibaren 5 tur içinde kazanamaz
Yeni kural:
- Programlar şu
~karakteri içermelidir
Python 3 , 23 bayt, 2. sıra
lambda l:sum(l)/~len(l)
Bir kayan liste olarak girdi; float olarak çıktılar.
Kurallar
Kalıcı kurallar:
Çalışan programlar indirgenemez olmalıdır. Bu durumda indirgenemez, tüm programdan karakterler kaldırılırsa programın tüm programın çıktısını üretmeyeceği anlamına gelir. Yani. Orijinal programdan karakterleri kaldırarak oluşturulabilecek varsayılanla aynı çıktıya sahip bir program yoktur.)
Bir program ilk görünümünden itibaren 5 tur içinde kazanamaz
Mevcut kurallar:
- Dönüşler nihai hedefi gerçekleştirmeyebilir (3 tur sola)
- Minimum program uzunluğu 10 bayttır (3 dönüş sola)
- Programlar
~karakteri içermelidir (4 dönüş sola)
Yeni kuralım:
- Programların ortalama bayt değeri 80'den küçük veya buna eşit olmalıdır. ( Doğrulayıcı )
Befunge-98 (PyFunge) , 13 bayt, 5. dönüş
(4. viraj üstü kapalı bir farkle idi)
"PDPF"4(~FP@
Bu cevap kazanmaktan uzaktır, ancak bu dildeki ortalama bir programın muhtemelen ihtiyaç duyacağı bazı karakterleri ekliyorum ve mücadeleyi canlı tutuyorum.
Kurallar:
- Programlar son hedefi (son dönüş) gerçekleştiremeyebilir
- Minimum program uzunluğu 10 bayttır (son dönüş)
- Programlar ~ karakterini içermelidir (sola 1 dönüş)
- Programların ortalama bayt değeri 80'den küçük veya buna eşit olmalıdır. (2 dönüş sola)
- Program 5-10 alfasayısal olmayan karakter içermelidir (3 dönüş sola!)
- Programlar art arda 2 küçük harf içeremez (5 dönüş sola)