Plus Codington Crescent
Qui est prêt pour une deuxième tentative?
Si vous avez déjà écouté l'émission radio "Je suis désolé, je n'en ai pas la moindre idée", alors vous avez probablement entendu parler du jeu "Mornington Crescent". Pour ceux qui ne l'ont pas fait, c'est un jeu où les joueurs nomment des stations aléatoires sur le réseau du métro de Londres. La première personne à nommer "Mornington Crescent" remporte la partie. 1
Tout comme la dernière fois , je vous présente un autre jeu de Codington Crescent .
Le défi
Le gagnant de ce défi est la première personne à publier un programme de travail qui, étant donné une liste de taille variable d'entiers positifs, renvoie la moyenne (moyenne arithmétique) de ladite liste. La liste ne sera pas vide et contiendra toujours au moins un élément. L'entrée et la sortie peuvent être données dans n'importe quel format raisonnable et pratique
Cas de test
[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
Les règles
- Chaque joueur a son propre programme pour ajouter / changer des personnages. C'est ce qu'on appelle leur programme en cours .
Chaque réponse (un tour ) doit obéir aux restrictions de source définies par les réponses précédentes. Ce sont des règles . Chaque variante dure 5 tours . Les règles se présentent sous la forme de restrictions de source restreinte.
Les programmes en cours d'exécution peuvent changer de langue entre les tours.
Les répondeurs (joueurs) peuvent soit ajouter, modifier ou supprimer (mais une seule des options) autant de personnages de leur programme en cours d'exécution par tour qu'ils le souhaitent. Alternativement, ils peuvent choisir de «passer» ( plus scientifiquement , farkle ), en n'ajoutant aucune nouvelle règle et en comptant toujours comme un tour. Cela peut être le seul choix si les règles sont en conflit les unes avec les autres. Le nombre de tours est toujours incrémenté et doit être affiché. Conseil de pro: vous voudrez probablement le marquer comme wiki de la communauté car il n'ajoute pas grand-chose.
À la fin de chaque tour, le joueur déclare une nouvelle règle qui couvrira les 5 prochains tours. Les règles doivent être objectives et un programme de vérification TIO est fortement recommandé. De plus, les règles doivent pouvoir être appliquées à toutes les langues (par exemple, ce
Programs must not error using Python 3.4.2n'est pas une règle valide).La lecture continue jusqu'à ce qu'un programme en cours atteigne le résultat cible.
Si un tour n'a pas été pris pendant une semaine, alors un farkle implicite se produira. Vous pouvez toujours prendre un tour après un farkle implicite, car cela compte comme un tour (pensez-y comme le tour de l'utilisateur de la communauté).
Règles de départ
Pour lancer le jeu, les 5 premiers tours doivent suivre ces règles:
- Les virages peuvent ne pas atteindre l'objectif final
- La longueur minimale du programme est de 10 octets
Règles permanentes
La dernière fois, il a été noté que les règles suivantes convenaient mieux en tant que règle permanente qu'aux règles à 5 tours:
Les programmes en cours d'exécution doivent être irréductibles. Irréductible dans ce cas signifie que le programme ne produit pas la sortie de l'ensemble du programme si les caractères de l'ensemble du programme sont supprimés. C'est à dire. Il n'existe pas de programme qui a la même sortie par défaut qui peut être construite en supprimant des caractères du programme d'origine.)
Un programme ne peut pas gagner dans les 5 tours suivant sa première apparition
Exemples de règles
Ce ne sont que des exemples de ce que vous pourriez ajouter comme règles au défi. Ils ne s'appliquent que si quelqu'un décide de les utiliser.
- Le premier et le dernier caractère du programme en cours d'exécution doivent être un espace
- Les programmes en cours d'exécution doivent avoir une quantité d'octets égale
- Les programmes en cours d'exécution ne doivent pas dépasser 30 octets
Règles de chaînage de réponses supplémentaires
- Vous ne pouvez pas répondre deux fois de suite. Quelqu'un d'autre doit répondre avant de recommencer.
- Les langues doivent être sur Try It Online pour être des réponses valides.
Conseil de pro: trier par plus ancien pour un flux de réponses plus cohérent
1 Le jeu original de Mornington Crescent n'a pas vraiment de règles ... C'est plutôt une activité qui ressemble à un jeu compliqué.
Modèle de réponse
# [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)
Réponses
05AB1E , tournez 3
$XY~sDOsg/*+
(Comment puis-je créer un lien vers la réponse précédente?)
Boy est-ce que j'aime Code Golf!
Explication
$ # 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
Règles actuelles
- Les virages peuvent ne pas atteindre l'objectif final - Imprime le triple de la moyenne plus un ( 2 tours à gauche! )
- La longueur minimale du programme est de 10 octets (3 tours à gauche) - La longueur du programme est de 12 octets ( 2 tours à gauche! )
- Les programmes doivent contenir le caractère ~ - Le caractère est censé pousser le OU au niveau du bit de 1 et 2 ( 3 tours à gauche! )
- Les programmes doivent avoir une valeur d'octet moyenne inférieure ou égale à 80 - La valeur d'octet moyenne du programme est de 79,25 (4 tours à gauche!)
La nouvelle règle
Roulement de tambour
Le programme doit comprendre 5 à 10 caractères non alphanumériques (5 tours à gauche!)
Io , 20 octets
Renvoie la moyenne + 1.
method(~,~average+1)
Règles
les 5 premiers tours doivent suivre ces règles:
- Les virages peuvent ne pas atteindre l'objectif final
- La longueur minimale du programme est de 10 octets
ceci s'applique à tous les programmes en cours d'exécution:
Les programmes en cours d'exécution doivent être irréductibles. Irréductible dans ce cas signifie que le programme ne produit pas la sortie de l'ensemble du programme si les caractères de l'ensemble du programme sont supprimés. C'est à dire. Il n'existe pas de programme qui a la même sortie par défaut qui peut être construite en supprimant des caractères du programme d'origine.)
Un programme ne peut pas gagner dans les 5 tours suivant sa première apparition
Nouvelle règle:
- Les programmes doivent contenir le
~caractère
Python 3 , 23 octets, tournez 2
lambda l:sum(l)/~len(l)
Entrée sous forme de liste de flottants; sorties comme un flotteur.
Règles
Règles permanentes:
Les programmes en cours d'exécution doivent être irréductibles. Irréductible dans ce cas signifie que le programme ne produit pas la sortie de l'ensemble du programme si les caractères de l'ensemble du programme sont supprimés. C'est à dire. Il n'existe pas de programme qui a la même sortie par défaut qui peut être construite en supprimant des caractères du programme d'origine.)
Un programme ne peut pas gagner dans les 5 tours suivant sa première apparition
Règles actuelles:
- Les virages peuvent ne pas atteindre l'objectif final (3 virages à gauche)
- La longueur minimale du programme est de 10 octets (3 tours à gauche)
- Les programmes doivent contenir le
~caractère (4 tours à gauche)
Ma nouvelle règle:
- Les programmes doivent avoir une valeur d'octet moyenne inférieure ou égale à 80. ( vérificateur )
Befunge-98 (PyFunge) , 13 octets, tour 5
(le virage 4 était un farkle implicite)
"PDPF"4(~FP@
Cette réponse est loin d'être gagnante, mais j'inclus certains personnages dont un programme moyen dans cette langue aura probablement besoin, et je garde le défi vivant.
Règles:
- Les programmes peuvent ne pas atteindre l'objectif final (dernier tour)
- La longueur minimale du programme est de 10 octets (dernier tour)
- Les programmes doivent contenir le caractère ~ (1 tour à gauche)
- Les programmes doivent avoir une valeur d'octet moyenne inférieure ou égale à 80. (2 tours à gauche)
- Le programme doit comprendre 5 à 10 caractères non alphanumériques (3 tours à gauche!)
- Les programmes ne peuvent pas contenir 2 lettres minuscules consécutives (5 tours à gauche)