¡Pato Pato ganso!

58

¿Recuerdas el juego para niños, 'Pato, pato, ganso' ? ¿No? Yo tampoco.

El reto

  • Imprima la palabra 'pato' en líneas individuales una cantidad indeterminada de veces.
  • Imprime la palabra 'ganso'.
  • Tu programa termina.

Las normas

  • Intenta jugar el juego en la menor cantidad de bytes.
  • Debe haber al menos un pato.
  • Debe haber exactamente un ganso al final de la lista.
  • Debe haber exactamente un pájaro en cada línea. No hay líneas vacías.
  • El caso de las cadenas de salida es irrelevante.
  • El espacio en blanco dentro de una línea está bien.
  • Tu programa debe terminar.
  • Su programa no debe producir constantemente la misma cantidad de patos.

¡Que te diviertas!


Tenga en cuenta: esta pregunta no es un duplicado del código más corto para producir una salida no determinista

Las razones incluyen:

  • La asociación al juego de los niños.
  • Los requisitos de inicio y finalización definidos de la cadena de resultados. No hay salida especificada en el otro desafío.
  • Respuestas Para el otro, el desafío no duplicado está en un número de bytes de un solo dígito. El promedio para este es de alrededor de 30, o alrededor.
  • Por la cantidad de superposición entre este desafío y aquel, cualquier pregunta de código de golf que incluya la etiqueta 'aleatoria' es un duplicado. ¿Deberíamos eliminarlos a todos?
  • Las respuestas del código para este desafío coincidirían con el otro desafío (de una manera ridículamente hinchada), pero las respuestas a ese desafío no coincidirían con este.
AJFaraday
fuente
11
¿Podría definir indeterminado? ¿Podría significar cero o uno?
recursivo
1
Defina cuán aleatoriamente se debe generar esto. ¿Uniforme en rango o con disminución exponencial?
HyperNeutrino
@recursive No, pero vamos con una definición de trabajo ... El programa no presenta constantemente la misma cantidad de patos.
AJFaraday
2
Hablando como minnesotano, ¿qué pasa si el mío imprime "pato, pato, pato gris" ? :)
Mike Hill
1
@ jpmc26 Estoy seguro de que hay otros. Habría tenido que jugar con otros, para empezar.
AJFaraday

Respuestas:

9

Jalea , 13 bytes

2X“¢;ÆS»ẋ“ʋ¢»

Pruébalo en línea!

Explicación:

2X“¢;ÆS»ẋ“ʋ¢»

2X             Random number (1 or 2)
  “¢;ÆS»       Compressed string equivalent to "duck\n"
        ẋ      Repeat the "duck\n" that random number of times
         “ʋ¢»  Compresses string equivalent to "goose"
               Implicitly concatenated and returned

Versión más legible: ¡ Pruébelo en línea!

Siempre devolverá 1 o 2 patos.

usuario202729
fuente
¡Felicidades! ¡Literalmente no tengo idea de cómo funciona esto!
AJFaraday
@AJFaraday Seguí adelante y agregué una explicación para ti
PunPun1000
@ PunPun1000 Lo siento, pero ¿cuál es la pila? Jelly es un lenguaje de programación tácito.
user202729
@ user202729 Vaya, me equivoqué Jelly y 05AB1E, ¿podrías editarlo para corregir ese error? Perdón por eso
PunPun1000
¿Hay una concatenación implícita en Jelly? ¡Hurra!
MilkyWay90
43

Lenguaje de script Operation Flashpoint , 48 bytes

f={s="duck\n";s+([s,""]select random 1)+"goose"}

Siempre imprime uno o dos patos.

random 1devuelve un número (punto flotante) entre 0 y 1. Ese número se pasa como argumento selectjunto con la matriz [s,""]. El número aleatorio se redondea al entero más cercano (0 o 1), y el elemento de matriz en ese índice se selecciona de la matriz.

Llamar con:

hint call f

Salida:

Versión alternativa de 56 bytes:

f={s="duck\n";format[s+"%1goose",[s,""]select random 1]}
Steadybox
fuente
3
Siempre me alegra cuando alguien usa esto en PCG.
Nit
Bueno, olvidé que este juego existía.
Caimen
38

World of Warcraft 81 Bytes

Aquí hay una macro que puedes ejecutar en World of Warcraft.

/run for x=1,random(1,9) do SendChatMessage("Duck") end; SendChatMessage("Goose")
Kelly Lowder
fuente
11
Oh mi señor ... ¿Por qué nunca pensé en esto?
Urna de pulpo mágico
44
PVCG (Programación de videojuegos y Code Golf). La Operación Flashpoint era una cosa, pero ¿WoW? Estoy esperando las soluciones de Minecraft y Factorio de esto.
Brain Guider
2
@AnderBiguri Sospecho que el Minecraft haría un poco peor que 81 bytes (bloques?);)
Chris
55
Esto debería funcionar y /run for x=1,random(1,9)do print("Duck")end print("Goose")
reducirlo
35

Minecraft <1.13, 72 54 bytes

Lo siento, tuve que hacerlo.

Instrucciones:

  • Crea un nuevo mundo de Minecraft en modo creativo
  • Busque la carpeta de guardar para ese mundo y coloque el siguiente código en data/functions/minecraft/ddg.mcfunction
  • Ejecutar /function ddgen la consola de juegos

Cómo funciona:

Emite la palabra "pato" para cada entidad en el mundo, luego emite la palabra "ganso". Dado que las entidades están constantemente engendrando y desapareciendo, el número de "pato" no será consistente. Utilicé en tellrawlugar del mucho más corto sayporque saygenera el nombre de la entidad, mientras que tellrawgenera exactamente lo que se le dice.

execute @e ~ ~ ~ tellraw @a "duck"
tellraw @a "goose"

Captura de pantalla

ingrese la descripción de la imagen aquí

Editar: se cambió {"text": "duck"} a solo "duck" (y lo mismo con "goose")

FlyingPiMonster
fuente
1
Hermosa. Necesitamos más Minecraft en PPCG.
BradC
99
Vale la pena mencionar que usted (el jugador) es una entidad en el mundo, por lo que el número de patos nunca puede ser 0 (incluso si no hubiera mobs hostiles o pasivos).
BradC
1
@BradC debería haber desafíos completos basados ​​en Minecraft.
tox123
17

JavaScript, 45 44 42 39 37 bytes

Tiene el potencial de producir un error de desbordamiento.

f=_=>`duck
${new Date%2?f():`goose`}`

Pruébalo

o.innerText=(
f=_=>`duck
${new Date%2?f():`goose`}`
)()
<pre id=o></pre>

Lanudo
fuente
14

Octava , 38 33 bytes

Este no es el más corto (son 36 bytes), pero es mi favorito. La explicación está en la parte inferior.

disp(['duck '+~(1:1/rand)';'goose'])

Pruébalo en línea!


Algunas variaciones más cortas:

Esto funciona en principio (33 bytes), pero los intérpretes en línea agota el tiempo de espera:

disp(['duck '+~(1:now)';'goose'])

Agregar algunos bytes para acortar la salida hace que sea 35 o 36 bytes:

disp(['duck '+~(7e5:now)';'goose'])   % Works on octave-online.net
disp(['duck '+~(7.3e5:now)';'goose']) % Works on tio.run

Explicación:

Solo explicaré el último al azar. Los otros son similares, pero usan la cantidad de días desde el 1 de enero de 0000 hasta hoy.

randdevuelve un número aleatorio en el intervalo (0, 1) . Por lo tanto, 1/randdevuelve un número mayor que 1 . Dado que un rango 1:f, donde fes un flotante aleatorio mayor que 1, es idéntico a 1:floor(f), 1:1/randcrea un rango 1 .. x , donde x> = 1 .

Trataré de explicar esto como si Octave fuera un lenguaje basado en la pila.

      'duck '                           % Push the string 'duck ' to the stack
               (1:1/rand)               % Push a vector 1... floor(1/rand)
              ~(1:1/rand)'              % Negate the vector (making it all zeros)
                                        % and transpose it.
             +                          % Add 'duck ' with the vertical vector of zeros
                                        % to implicitly duplicate the string r times
     [                    ;'goose']     % Push the string 'goose' and concatenate
                                        % vertically with the rest
disp(                              )    % Display it all.
Stewie Griffin
fuente
disp(['duck '+~pwd';'goose'])? No estoy seguro si esto es lo suficientemente "indeterminado"
Luis Mendo
12

Perl 5 , 20 bytes

Primero un práctico 26 bytes:

Patos 1 a 9 veces antes de ser engullido.

say"Duck
"x(1+$^T%9),Goose

Pruébalo en línea!

Pero si tiene mucha memoria y tiempo, esta versión de 20 bytes (como lo sugiere Chris ) también funciona:

say"Duck
"x$^T,Goose

Esto también supone que el problema del año 2038 se resolverá para Perl 5 , de lo contrario será inválido durante 1 segundo dentro de 20 años.

Ton Hospel
fuente
Si cambia 1+$^T%9a solo $^T, aún funciona y ahorra 4 bytes.
Chris
@chris Obviamente tienes más memoria que yo. Aún así, tomaré tu sugerencia ya que hay computadoras razonables en las que funcionará. Gracias.
Ton Hospel
12

Python 2 , 36 34 bytes

print"duck\n"*((id(id)%5)+1),"goose"

¡Pruébelo en línea!

La sugerencia de Kevin Cruijssen nos lleva a 34 bytes:

print"duck\n"*-~(id(id)%5),"goose"
Greg Fuller
fuente
3
Bienvenido al sitio, y buena primera respuesta!
caird coinheringaahing
Bienvenido a PPCG! Puedes jugar golf dos bytes cambiando ((id(id)%5)+1)a -~(id(id)%5)para deshacerte del paréntesis. Los consejos para jugar golf en <todos los idiomas> y los consejos para jugar golf en Python pueden ser interesantes de leer. ¡Disfruta tu estancia!
Kevin Cruijssen
1
No id(id)puede ser id(0)o me estoy perdiendo algo?
Jonathan Frech
@Johnathan, mirar en id(0)un par de computadoras diferentes sugiere que es una constante.
user2699
1
Un poco más intuitivo y no más bytes serían para llamar id([]). Esto debería inicializar una lista distinta cada vez que se ejecuta el programa, lo que en teoría debería dar como resultado consistentemente direcciones de memoria diferentes.
jpmc26
11

Z Shell (+ wget y Netpbm), 168 160 150 148 145 135 120 bytes

d(){wget -O- bit.ly/$1|jpegtopnm|pamscale -w 64 -h 64};d DckDkGo|pnmtile 64 $[(RANDOM&7+1)*64]|pnmcat -tb - <(d g005eGG)

No es la solución más corta, pero tuve ganas de darle un giro a este desafío (inspirado en la solución de @ AlexG a este otro problema ).

Este script genera una imagen PPM que contiene entre 1 y 8 imágenes de patos y una imagen de un ganso en la parte inferior en la salida estándar. Descarga las dos imágenes fuente de Wikipedia, por lo que el acceso a Internet es necesario para que funcione.

Salida de muestra convertida a JPEG a través de pnmtojpeg :

ingrese la descripción de la imagen aquí

lucasb
fuente
1
¡Esto me ha alegrado totalmente el día!
AJFaraday
Me acabo de dar cuenta de que eres la misma persona que propuso ese otro desafío al que me vinculé. xD Bueno, ¡me alegra que te haya gustado esto! = D
lucasb
Sí, hay algunos temas en mis desafíos de código de golf :) Definitivamente debería dar puntos de bonificación por respuestas pictorales.
AJFaraday
¿No es esta laguna legal para obtener recursos externos?
MilkyWay90
10

R , 35 bytes

cat(rep("duck
",rexp(1)+1),"goose")

Pruébalo en línea!

rexp()produce un número aleatorio a partir de una función de disminución exponencial. +1para asegurar al menos un pato. Todas las líneas después de la primera incluyen un espacio inicial (que es el separador predeterminado cat), pero esto está permitido.

usuario2390246
fuente
1
La probabilidad de producir más de un pato es exp(-1)o alrededor del 36.8%.
Giuseppe
Pide imprimirlo en cada línea. Creo que deberías agregar "\ n" a tu "pato"
stuart stevenson el
3
@stuartstevenson Aquí he usado una nueva línea literal en lugar de hacerlo, \nya que es un byte más corto. Si visita el "Pruébelo en línea!" enlace puede ver que el efecto es el mismo.
user2390246
En un cuadro de DOS / Windows, esa nueva línea todavía sería de dos (2) bytes. 0x0d0a
encendido
10

Bash , 39 38 37 bytes

sed s/[0-9]/duck\\n/g<<<$RANDOM\goose

Pruébalo en línea!

Imprime un número de patos igual al número de dígitos en un número entero distribuido uniformemente en [0,32767] (por lo tanto, la mayoría de las veces, cinco patos (un buen número de patos)).

-1 byte cada uno gracias a @Chris y @sch señalando pares de citas que no estaban presionando su peso.

Sophia Lechner
fuente
1
Bienvenido a PPCG!
Steadybox
1
Puede guardar un byte por deshacerse de las comillas simples, siempre y cuando se reemplaza \ncon \\n.
Chris
1
Buena idea. Puede hacer algo similar con solo construcciones de bash y sin sed por 30 bytes.
Trauma digital
1
sed s/[0-9]/duck\\n/g<<<$RANDOM\goosepuede afeitarse un byte
sch
1
El sedno es completamente portátil. En algunas plataformas, puede salirse con una barra invertida \n. En otros no obtendrá una nueva línea, no importa lo que haga.
tripleee
9

Pure Bash (sin utilidades externas), 25

Basado en la respuesta de @ SophiaLechner , esto también imprime una buena cantidad de patos .

La idea de @ OlivierDulac de usar el script PID shell almacenado en el $parámetro ahorra 5 bytes.

echo "${$//?/duck
}"goose

Pruébalo en línea .

Trauma digital
fuente
1
Si suponemos que inicia un programa, obtendrá un pid diferente cada vez. La mayoría de las veces tendrá 5 dígitos, pero no siempre. por lo tanto: ¿cambiar RANDOMa $afeitar 5 bytes? Y uno también podría hacer una cadena muy larga de patos:yes duck|head -n $$;echo goose
Olivier Dulac
@OlivierDulac sí, creo que usar $$es aceptable, ¡gracias!
Digital Trauma
¡de nada! Publiqué mi otra versión ( yes duck | head -n $$;echo goose) como alternativa (más larga que la suya, pero uno tiene MUCHOS patos por 5 caracteres adicionales ^^)
Olivier Dulac
8

Rubí , 30 bytes.

puts"duck
"*rand(1..9)+"goose"

Pruébalo en línea!

Nota: realmente 31 bytes sin el \ntruco.

Turófilo
fuente
No estoy seguro de que sea un truco, estrictamente hablando.
AJFaraday
8

Bash + Coreutils, 36 27 bytes

yes duck|sed $$q;echo goose

Imprime demasiados patos (entre 2 y cat /proc/sys/kernel/pid_max), luego un ganso.

Ahorró nueve bytes gracias a Digital Trauma y Olivier Dulac.

Pruébalo en línea! (pero tenga en cuenta que puede truncarse ocasionalmente)

Misma longitud, pero sin echo:

yes duck|sed $${agoose'
q}'

Pruébalo en línea!

aes el comando anexar sedy se qcierra. Ambos solo se ejecutan en la línea $$, que corresponde al PID.

Chris
fuente
Bash tiene módulo, aunque eso aumentará el tamaño. Pruebahead -n $((1+(RANDOM % 5)))
tripleee
@tripleee Dado que este es el código de golf, es preferible aumentar el tamaño de la salida a aumentar ese tamaño del código. Y 132767 patos es francamente razonable en comparación con los mil millones o más que ves en otros lugares;)
Chris
1
Claro, solo espero ser útil en caso de que alguien realmente quiera aplicar esta investigación innovadora en la práctica algún día. Como, TIO . 44 bytes con algunos espacios extraídos.
tripleee
@OlivierDulac sugirió usar en $$lugar de $RANDOMpara mi respuesta . Creo que podrías usar lo mismo para ahorrarte 5 bytes. Ah, y prueba sedtambién:yes duck|sed 1$$q;echo goose
Digital Trauma
De hecho, yes duck|sed $$q;echo gooseestá bien: no creo que su script tenga un PID <1.
Digital Trauma
7

PowerShell , 35 30 28 bytes

,"duck"*((Random)+1)
"goose"

Pruébalo en línea! (versión modificada)

Genera una matriz de Get-Randomnúmero de artículos. Podría tomar un tiempo. Esto agrega una +1para garantizar que obtengamos al menos uno duck. La versión modificada también incluye un -maindicador ximum 5para que pueda ver que el programa funciona como se esperaba (la versión modificada se imprimirá 1, 2, 3 o 4 ducks antes de goose).

La matriz y la goosecadena solitaria se dejan en la tubería, y lo implícito Write-Outputnos da valores separados por la nueva línea de forma gratuita.

No sabes lo difícil que fue para mí no cambiar la última línea a "pato gris" ...

AdmBorkBork
fuente
Esa variante suena bastante divertida, y definitivamente vale la pena un desafío de código ... Le recomiendo que espere un par de días y la publique como un desafío propio :)
AJFaraday
1
@AdmBorkBork, este Minnesotan se unió a este grupo para hacer +1 en tu pato gris.
Milwrdfan
0..(random)|%{'duck'};'goose'parece un 29, y también generará en algún lugar hasta [int] :: MaxValue (2,1 mil millones) patos antes de un ganso. (Y 0..0imprime un pato)
TessellatingHeckler
@TessellatingHeckler Gracias, pero justo ahora se me ocurrió una versión de 28 bytes. :)
AdmBorkBork
6

Brachylog , 24 21 bytes

-3 bytes gracias a Erik the Outgolfer

"duck"ẉ4ṙ0∧"goose"w∨↰

Pruébalo en línea!

En celebración del Idioma del mes , mi primera publicación de brachylog El flujo de control en este idioma es genial.

Cómo funciona:

"duck"ẉ4ṙ0∧"goose"w∨↰
"duck"ẉ                 print duck with a new line
       4ṙ               choose a random number in the range is [0, 4]
         0              verify it equals zero
          ∧             and (short circuits)
           "goose"w     print goose without a newline
                   ∨    or (if it did not equal zero)
                    ↰   repeat the procedure
PunPun1000
fuente
Entonces, si estoy leyendo esto correctamente, ¿se lee de izquierda a derecha, de abajo hacia arriba?
AJFaraday
2
El lenguaje intenta encontrar una verdad lógica utilizando solo la primera línea del programa. Mi programa dice "Validar la segunda línea, luego imprimir ganso". Luego, la segunda línea dice "imprimir pato, luego validar un número aleatorio 0 a 4 es 0, o validar esta línea nuevamente", por lo que técnicamente de izquierda a derecha solo la línea superior, luego cualquier predicado que llame desde allí
PunPun1000
Genial, es muy interesante descubrir cómo funcionan los nuevos idiomas. Llegó a mi bandeja de entrada, pero no estoy seguro si es porque hice la pregunta o porque ya había comentado aquí.
AJFaraday
Puedes fusionar los dos predicados así y atarme.
Erik the Outgolfer
6

Geometry Dash World 2.2 Editor - 4 objetos

Imagen de Geometry Dash Level

Explicación:

El disparador BG es el disparador aleatorio actual de 2.2, por lo que alterna el ID de grupo 1 o 2.

El primer "PATO" tiene una identificación de grupo de 1, lo que hace que tenga un 50% de posibilidades de ser eliminado o no (activado).

No hay ningún objeto con el ID de grupo 2 en este nivel, por lo que hay un 50% de posibilidades de que se muestren 2 "PATO".

Cómo reproducir esto:

El primer "PATO" tiene una ID de grupo de 1.

ingrese la descripción de la imagen aquí

Goose y 2nd duck no tienen ID de grupo ingrese la descripción de la imagen aquí

Dentro del disparador aleatorio. ingrese la descripción de la imagen aquí

MilkyWay90
fuente
Siento un tema para este desafío
Benjamin Urquhart
@BenjaminUrquhart ¿Qué?
MilkyWay90
Hay presentaciones para Word of Warcraft, Minecraft y algunos otros juegos también.
Benjamin Urquhart
2
@BenjaminUrquhart Mejor encontrar más juegos para responder
MilkyWay90
5

05AB1E , 15 14 bytes

'Ðœ₁Ωи`.•zíΘ•»

Pruébalo en línea!

Imprimirá 2, 5 o 6 patos y luego ganso.

-1 byte gracias a @Emigna usando 'para una sola palabra comprimida (pato)

Kaldo
fuente
1
Puedes usarlo 'Ðœya que pato es una sola palabra.
Emigna
1
Vence a la mía:['ÐœTΩ#].•zíΘ•»
Urna de pulpo mágico
@MagicOctopusUrn Me gusta mucho tu enfoque de bucle infinito. Su respuesta es definitivamente más en el espíritu del desafío (¿o lo que debería haber sido?) Ya que puede generar una cantidad infinita de patos.
Kaldo
@Kaldo aún, 15 bytes pierden con los tuyos;)
Urna de pulpo mágico
1
Alternativo de 14 bytes:'Ðœ₁Ω.D.•zíΘ•»
Urna de pulpo mágico
5

APL (Dyalog) , 22 bytes

1 byte guardado gracias a @EriktheOutgolfer

'Goose'⍪⍨(?9)5'Duck '

Pruébalo en línea!

Uriel
fuente
Alternativa:'Goose'⊣⎕←⍣(?9)⊢'Duck'
Erik the Outgolfer
5

Retina , 17 bytes

?\\K`duck
K`goose

Pruébalo en línea!

Pruébalo en línea!

Imprime 1 o 2 patos, con la misma probabilidad.

Explicación

?\\K`duck

Establezca la cadena de trabajo ducke imprímala con un salto de línea final ( \). Luego, esto se envuelve en otra etapa de salida, pero esta tiene ?aplicada la bandera aleatoria ( ), por lo que solo se imprime con una probabilidad del 50%.

K`goose

Reemplace duckcon goose, que se imprime implícitamente al final del programa.

Aquí hay una alternativa divertida que imprime 1 pato con 50% de probabilidad, 2 patos con 25%, 3 patos con 12.5% ​​...:

\K`duck
?+\G`
K`goose
Martin Ender
fuente
5

Vim (script) en Linux, 46 43 bytes (4946 con :al inicio de la línea)

.!date +0\%N\%s6
s/6.*/goose
s/\d/duck\r/g

Ejecutado como vim -S filenameo pegado en ejecución vimcon :antes de cada línea.

jiwopene
fuente
2
Bienvenido a PPCG! Deberías poder usar \dmás [0-9]. Además, parece que vim no requiere la nueva línea final, por lo que puede ser de 45 bytes :)
H.PWiz
Bienvenido a PPCG!
Steadybox
5

> <> , 31 22 bytes

"duck"a>x
r"esoog"<>o<

Pruébalo en línea!

-9 bytes basados ​​en la revisión de No es un árbol

KSmarts
fuente
1
Puede eliminar l?!;y salir con un error.
Emigna
1
Y se podría ahorrar un poco más como este
Emigna
1
O como esta .
No es un árbol
3
@Notatree, consigo que a veces imprima "\ nkcud \ nkcud ...". Raramente se comporta correctamente
Suppen
1
@Suppen Simplemente usando una flecha en lugar de un espejo lo arregla; ver editar
KSmarts
5

Befunge 98 , 38 30 25 bytes

"esooG"v>:#,_@
"Duck"a<?<

Pruébalo en línea!

  • Gracias @JoKing por desnudar el trampolín inútil.
  • Cambiar a Befunge 98 para una nueva línea más corta: ahora Duckcabe en una sola cadena
Vincent
fuente
1
No necesitas el #en la segunda línea
Jo King
Y "técnicamente", whitespace within a line is finepara que pueda recortar un par de citas (incluso si la salida se ve rara)
Jo King
@JoKing Gracias, mira mi edición.
Vincent
5

T-SQL , 70 44 43 bytes (Muchos patos)

while rand()<.9print'duck'print'duck
goose'

Gracias @Zac Faragher!

Versión revisada, 54 43 40 bytes (1 o 2 patos)

Gracias @BradC!

if rand()<.5print'duck'print'duck
goose'


Parece que no puedo hacer que esto se ejecute correctamente en SQL Fiddle , pero funciona bien en LINQPad y SSMS.

No estoy seguro de si esta es una limitación conocida de SQL Fiddle o simplemente estoy haciendo algo mal

Probablemente
fuente
Agradable. Hasta 61 si cambia selecta printy reemplazar la final 'duck'select'goose'con 'duck(linebreak)goose'(con un salto de línea literal, por supuesto)
BradC
En realidad, puedes hacerlo while rand()<.5print'duck'print'duck(linebreak)goose'por 43.
BradC
Bien, gracias @BradC. ¿Hay otra forma de representar un salto de línea en una cadena que no sea agregar un char (13)?
Probablemente el
Sí, literalmente pon un retorno dentro de las comillas, editaré tu publicación para mostrarte (los comentarios no muestran devoluciones).
BradC
1
Ahorre 3 bytes más: cambie el primero whilea if. Imprime (al azar) uno o dos patos, lo que (creo) aún satisface el desafío.
BradC
5

Powershell - 31 30 bytes

Advertencia : lo más probable es que termines con muchos patos. Randomincluye los valores de 0, por Int32.MaxValuelo que, dependiendo de cuán aleatorio sea su número, esto podría ser una gran cantidad de graznidos.

1..(Random)|%{"Duck"};"Goose"
SomeShinyObject
fuente
No deberías necesitar el $frente de (Random). Pruébalo en línea!
AdmBorkBork
@AdmBorkBork gracias por la captura!
SomeShinyObject
4

Befunge

57 35 bytes (el perímetro de todo el campo es de 19x3 17x2 caracteres) Gracias a Karhell por la mejora.

55+"kcud",,,,,#v?
  @,,,,,"goose"<

La segunda línea pone pato y una nueva línea en la pila (al revés) y la genera como una cadena. Después de ese 75% de posibilidades de volver al inicio e imprimir pato nuevamente, 25% (cuando el signo de interrogación decida bajar) para imprimir ganso y detenerse.

rael_kid
fuente
Si se acepta un 50% de posibilidades de ganso, 55+"kcud",,,,,#v?(linebreak here) @,,,,,"goose"< reduciría su código a 35 bytes
karhell
Ah, la dulce envoltura. Tienes razón, gracias, ¡publicaré una actualización más tarde!
rael_kid