오리, 오리, 거위!


58

아이들 게임 'Duck, Duck, Goose'를 기억 하십니까? 아니? 나도 마찬가지야

도전

  • 개별 라인에 '오리'라는 단어를 정해진 횟수만큼 인쇄하십시오.
  • 'goose'라는 단어를 인쇄하십시오.
  • 프로그램이 종료됩니다.

규칙

  • 가장 적은 바이트로 게임을 시도하십시오.
  • 오리는 하나 이상 있어야합니다.
  • 목록 끝에 거위가 정확히 하나 있어야합니다.
  • 각 줄에 정확히 하나의 새가 있어야합니다. 빈 줄이 없습니다.
  • 출력 된 문자열의 경우에는 관련이 없습니다.
  • 줄 안에 공백이 있습니다.
  • 프로그램이 완료되어야합니다.
  • 프로그램이 지속적으로 같은 수의 오리를 생산해서는 안됩니다.

즐기세요!


참고 :이 질문은 비 결정적 출력을 생성하는 가장 짧은 코드 의 사본이 아닙니다

이유는 다음과 같습니다.

  • 어린이 게임과의 관계
  • 결과 문자열의 정의 된 시작 및 끝 요구 사항 다른 챌린지에는 지정된 출력이 없습니다.
  • 답변 다른 경우, 중복되지 않은 챌린지는 한 자리 수의 바이트입니다. 이것의 평균은 약 30 정도입니다.
  • 이 도전과 그 도전 사이의 중첩 정도에 따라 '랜덤'태그를 포함한 코드 골프 질문은 중복됩니다. 모두 삭제해야합니까?
  • 이 챌린지에 대한 코드 답변은 다른 챌린지와 일치하지만 (이의도 무한 방식으로) 해당 챌린지에 대한 답변은이 챌린지와 일치하지 않습니다.

11
불확실성을 정의 할 수 있습니까? 0 또는 1을 의미 할 수 있습니까?
재귀

1
이것을 무작위로 생성하는 방법을 정의하십시오. 범위가 균일하거나 기하 급수적으로 감소합니까?
HyperNeutrino

@recursive Nope, 그러나 작업 정의를 보자 ... 프로그램은 동일한 수의 오리를 지속적으로 제시하지 않습니다.
AJFaraday

2
미네소타 어로 말하면 , 대신 "오리, 오리, 회색 오리" 를 인쇄하면 어떻게됩니까? :)
Mike Hill

1
@ jpmc26 다른 사람이 있다고 확신합니다. 당신은 시작하기 위해 다른 사람들과 그것을 연주해야 할 것입니다.
AJFaraday

답변:


9

젤리 , 13 바이트

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

온라인으로 사용해보십시오!

설명:

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

더 읽기 쉬운 버전 : 온라인으로 사용해보십시오!

항상 1 ~ 2 마리의 오리를 반환합니다.


축하합니다! 나는 이것이 어떻게 작동하는지 전혀 모른다.
AJFaraday

@AJFaraday 나는 당신을 위해 설명을 추가했다
PunPun1000

@ PunPun1000 죄송하지만 스택은 무엇입니까? 젤리는 암묵적인 프로그래밍 언어입니다.
user202729

@ user202729 죄송합니다. Jelly와 05AB1E를 머리에 엉망으로 만들었습니다. 오류를 수정하기 위해 편집 해 주시겠습니까? 죄송합니다
PunPun1000

젤리에 암시 적 연결이 있습니까? 예이!
MilkyWay90

43

작업 인화점 스크립팅 언어, 48 바이트

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

항상 한두 오리를 인쇄합니다.

random 10과 1 사이의 (부동 소수점) 숫자를 반환합니다.이 숫자는 select배열과 함께 인수로 전달됩니다 [s,""]. 그런 다음 난수가 가장 가까운 정수 (0 또는 1)로 반올림되고 해당 인덱스의 배열 요소가 배열에서 선택됩니다.

전화 :

hint call f

산출:

대체 56 바이트 버전 :

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

3
누군가가 PCG에서 이것을 사용할 때 항상 기뻐합니다.
Nit

글쎄, 나는이 게임이 존재하는 것을 잊었다.
Caimen

38

월드 오브 워크래프트 81 바이트

월드 오브 워크래프트에서 실행할 수있는 매크로는 다음과 같습니다.

/run for x=1,random(1,9) do SendChatMessage("Duck") end; SendChatMessage("Goose")

11
오 주여 ... 왜 이런 생각을 한 적이 없습니까?
Magic Octopus Urn

4
PVCG (비디오 게임 및 코드 골프 프로그래밍). 인화점 작전 이었지만 와우? 나는 이것의 Minecraft와 Factorio 솔루션을 기다리고 있습니다.
브레인 가이더

2
@AnderBiguri 나는 마인 크래프트가 81 바이트보다 조금 나쁘다고 생각한다 (블록?);)
Chris

5
이것은 작동하고 58 바이트로 줄입니다./run for x=1,random(1,9)do print("Duck")end print("Goose")
gastropner

35

마인 크래프트 <1.13, 72 54 바이트

미안 해요

명령:

  • 크리에이티브 모드에서 새로운 마인 크래프트 월드 만들기
  • 해당 세계의 저장 폴더를 찾아 다음 코드를 data/functions/minecraft/ddg.mcfunction
  • /function ddg게임 콘솔에서 실행

작동 방식 :

세계의 모든 엔터티에 대해 "duck"이라는 단어를 출력 한 다음 "goose"라는 단어를 출력합니다. 개체가 지속적으로 생성되고 데스 폰되기 때문에 "오리"의 수는 일정하지 않습니다. 엔티티의 이름을 출력하고 정확히 말한 것을 출력 하기 때문에 tellraw훨씬 짧은 대신 사용 했습니다.saysaytellraw

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

스크린 샷

여기에 이미지 설명을 입력하십시오

편집 : { "text": "duck"}을 "duck"으로 변경했습니다 ( "goose"와 동일).


1
아름다운. PPCG에는 더 많은 Minecraft가 필요합니다.
BradC

9
당신 (플레이어)이 세계의 실체 라는 것을 언급 할 가치 가 있습니다. 따라서 오리의 수는 0이 될 수 없습니다 (적대적이거나 수동적 인 군중이 없더라도).
BradC

1
@BradC는 Minecraft와 관련된 모든 과제가 있어야합니다.
tox123

17

자바 스크립트, 45 44 42 39 37 바이트

오버플로 오류가 발생할 가능성이 있습니다.

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

그것을 테스트

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


14

옥타브 , 38 33 바이트

이것은 가장 짧지 않지만 (36 바이트) 가장 좋아합니다. 설명은 하단에 있습니다.

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

온라인으로 사용해보십시오!


몇 가지 짧은 변형 :

이것은 원칙적으로 작동하지만 (33 바이트) 온라인 인터프리터가 시간 초과됩니다.

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

출력을 짧게하기 위해 일부 바이트를 추가하면 35 또는 36 바이트가됩니다.

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

설명:

마지막으로 무작위로 설명하겠습니다. 다른 것들은 비슷하지만 00001 월 1 일부터 오늘까지 의 일수를 사용합니다 .

rand(0, 1) 간격의 난수를 반환합니다 . 따라서 11/rand 보다 큰 숫자를 반환합니다 . 범위 때문에 , 보다 큰 임의의 부동 1 과 동일 , 범위를 생성 한 X ... , x> = 1 .1:ff1:floor(f)1:1/rand

Octave가 스택 기반 언어 인 것처럼 이것을 설명하려고 노력할 것입니다.

      '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.

disp(['duck '+~pwd';'goose'])? 이것이 "불확정"인지 확실하지 않은 경우
Luis Mendo

12

펄 5 , 20 바이트

먼저 실용적인 26 바이트 :

거위에 걸리기 전에 1-9 번 오리.

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

온라인으로 사용해보십시오!

그러나 많은 메모리와 시간이 있다면 Chris가 제안한이 20 바이트 버전 도 작동합니다.

say"Duck
"x$^T,Goose

이것은 또한 2038 년 문제Perl 5에 대해 해결 될 것이라고 가정하고 , 그렇지 않으면 1 초 20 년 동안 유효하지 않을 것입니다.


1+$^T%9just로 변경 $^T하면 여전히 작동하며 4 바이트를 저장합니다.
Chris

@ chris 당신은 분명히 나보다 더 많은 메모리를 가지고 있습니다. 그래도 작동 할 수있는 합리적인 컴퓨터가 있기 때문에 귀하의 제안을 받아들입니다. 감사.
Ton Hospel

12

파이썬 2 , 36 34 바이트

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

온라인으로 사용해보십시오!

Kevin Cruijssen의 제안 은 우리에게 34 바이트를 가져 옵니다 .

print"duck\n"*-~(id(id)%5),"goose"

3
사이트에 오신 것을 환영합니다.
caird coinheringaahing

PPCG에 오신 것을 환영합니다! 괄호를 제거하도록 변경 ((id(id)%5)+1)하여 2 바이트를 골프화 할 수 있습니다 -~(id(id)%5). <모든 언어> 에서의 골프 팁파이썬에서의 골프 팁은 흥미로울 것입니다. 체류를 즐길 수!
케빈 크루이 센

1
id(id)없습니다 id(0)또는 내가 뭔가를 놓친 게 뭐죠?
Jonathan Frech

@Johnathan, id(0)몇 가지 다른 컴퓨터를 살펴보면 그것이 일정하다는 것을 암시합니다.
user2699

1
약간 더 직관적이고 더 이상 바이트를 호출하지 않습니다 id([]). 이것은 프로그램이 실행될 때마다 별개의 목록을 초기화해야합니다.
jpmc26

11

Z 쉘 (+ wget & Netpbm), 168 160 150 148 145 135 120 바이트

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

가장 짧은 해결책은 아니지만 @AlexG의 다른 문제에 대한 솔루션에서 영감을 얻은이 도전에 약간의 왜곡을주는 느낌이 들었습니다 .

이 스크립트는 1-8 개의 오리 그림과 표준 출력의 맨 아래에 거위 그림이 포함 된 PPM 이미지를 생성합니다. Wikipedia에서 두 원본 그림을 다운로드하므로 작동하려면 인터넷에 연결되어 있어야합니다.

pnmtojpeg를 통해 JPEG로 변환 된 샘플 출력 :

여기에 이미지 설명을 입력하십시오


1
이것은 나의 하루를 완전히 만들었다!
AJFaraday

나는 당신이 내가 연결된 다른 도전을 제안한 사람과 같은 사람이라는 것을 깨달았습니다. xD 글쎄, 당신이 이것을 좋아해서 기쁘다! = D
lucasb

그렇습니다, 내 코드 골프 도전에는 몇 가지 테마가 있습니다.
AJFaraday

이것은 외부 자원을 얻기위한 표준 허점이 아닌가?
MilkyWay90

10

R , 35 바이트

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

온라인으로 사용해보십시오!

rexp()지수 감쇠 함수에서 난수를 생성합니다. +1적어도 하나의 오리를 확보하기 위해. 첫 번째 이후의 모든 행은 선행 공백 (에 대한 기본 구분자 cat)을 포함하지만 허용됩니다.


1
하나 이상의 오리 exp(-1)를 생산할 확률은 약 36.8 %입니다.
Giuseppe

각 줄에 인쇄하도록 요청합니다. "오리"에 "\ n"을 추가해야한다고 생각합니다.
스튜어트 스티븐슨

3
@stuartstevenson 여기서는 \n1 바이트 더 짧기 보다는 리터럴 개행을 사용했습니다 . "온라인으로 사용해보십시오!"를 방문하면 링크 효과가 동일하다는 것을 알 수 있습니다.
user2390246

DOS / Windows 상자에서 해당 줄 바꿈은 여전히 ​​2 바이트입니다. 0x0d0a
조명

10

배쉬 , 39 38 37 바이트

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

온라인으로 사용해보십시오!

[0,32767]에 균일하게 분포 된 정수의 자릿수와 동일한 수의 오리를 인쇄합니다 (따라서 5 개의 오리 (좋은 수의 오리)).

@Chris와 @sch 덕분에 -1 바이트는 무게를 당기지 않은 따옴표 쌍을 지적합니다.


1
PPCG에 오신 것을 환영합니다!
Steadybox

1
당신은 당신이 교체로 작은 따옴표를 제거하기로 한 바이트를 저장할 수 있습니다 \n\\n.
Chris

1
좋은 생각. bash 구문만으로 비슷한 작업을 수행 할 수 있으며 30 바이트에는 sed가 없습니다.
디지털 외상

1
sed s/[0-9]/duck\\n/g<<<$RANDOM\goose1 바이트를 면도 할 수 있습니다
sch

1
sed완전히 이식 할 수 없습니다. 일부 플랫폼에서는에서 단일 백 슬래시를 사용하여 벗어날 수 있습니다 \n. 다른 사람들은 당신이 무엇을하든 개행을 얻지 못할 것입니다.
tripleee

9

순수 배쉬 (외부 유틸리티 없음), 25

@SophiaLechner의 답변을 기반으로 , 이것은 또한 많은 오리를 인쇄 합니다 .

$매개 변수에 저장된 스크립트 쉘 PID를 사용하는 @OlivierDulac의 아이디어 는 5 바이트를 절약합니다.

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

온라인으로 사용해보십시오 .


1
프로그램을 시작한다고 가정하면 매번 다른 pid가 발생합니다. 많은 시간이 5 자리 길이이지만 항상 그런 것은 아닙니다. 따라서 : 변화 RANDOM하는 $5 바이트를 면도하고 하나는 오리의 매우 긴 문자열 할 수 :yes duck|head -n $$;echo goose
올리비에 Dulac

@OlivierDulac 예, 사용 $$이 가능 하다고 생각합니다 -감사합니다!
Digital Trauma

천만에요! 나는 다른 버전 ( yes duck | head -n $$;echo goose)을 대안으로 게시했습니다 (당신보다 더 길지만 하나는 5 개의 추가 문자를 위해 많은 오리를 얻습니다 ^^)
Olivier Dulac


8

Bash + Coreutils, 36 27 바이트

yes duck|sed $$q;echo goose

너무 많은 오리 (2와 사이)를 인쇄 cat /proc/sys/kernel/pid_max한 다음 거위를 한 장 인쇄 합니다.

Digital Trauma와 Olivier Dulac 덕분에 9 바이트가 절약되었습니다.

온라인으로 사용해보십시오! (그러나 때때로 잘릴 수 있음을 명심하십시오)

같은 길이지만, 아니오 echo:

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

온라인으로 사용해보십시오!

a의 추가 명령 sed이며 q종료됩니다. 둘 다 라인에서만 실행되며 $$이는 PID에 해당합니다.


Bash에는 모듈러스가 있지만 크기가 커집니다. Tryhead -n $((1+(RANDOM % 5)))
Tripleee

@tripleee 이것은 코드 골프이므로 코드의 크기를 늘리는 것보다 출력 크기를 늘리는 것이 좋습니다. 그리고 132767 오리는 당신이 다른 곳에서 볼 수있는 10 억 이상에 비해 타당합니다.)
Chris

1
누군가가 실제로이 혁신적인 연구를 실제로 하루에 적용하려고 할 때 도움이되기를 바랍니다. TIO 처럼 . 일부 공백을 제거한 44 바이트
tripleee

@OlivierDulac 사용하여 제안 $$대신 $RANDOM에 대한 내 대답 . 나는 당신이 5 바이트를 절약하기 위해 이것을 사용할 수 있다고 생각한다. 아, 그리고 시도해보십시오 sed:yes duck|sed 1$$q;echo goose
Digital Trauma

사실 yes duck|sed $$q;echo goose괜찮습니다-스크립트가 PID <1을 얻지 못할 것이라고 생각합니다.
Digital Trauma

7

PowerShell , 35 30 28 바이트

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

온라인으로 사용해보십시오! (수정 된 버전)

Get-Random많은 수의 항목을 생성 합니다. 시간이 걸릴 수 있습니다. 이것은 +1우리가 적어도 하나를 얻을 수 있도록 추가합니다 duck. 수정 된 버전에는 -maximum 플래그 도 포함되어 5있으므로 프로그램이 예상대로 작동하는 것을 볼 수 있습니다 (수정 된 버전은, 1, 2, 3 또는 4 duck초 전에 인쇄 됨 goose).

배열과 독방 goose문자열은 파이프 라인에 남아 있으며 암시 적으로 Write-Output줄 바꿈으로 구분 된 값을 무료로 제공합니다.

마지막 줄을 "회색 오리" 로 바꾸지 않는 것이 얼마나 어려운지 모르겠습니다 ...


이 변종은 꽤 재미 있고 코드 도전의 가치가 있습니다 ... 며칠 기다렸다가 자신의 도전으로 게시하는 것이 좋습니다. :)
AJFaraday

1
@AdmBorkBork,이 미네 소탄은이 그룹에 가입하여 회색 오리를 +1했습니다.
Milwrdfan

0..(random)|%{'duck'};'goose'29와 같으며 거위 이전에 최대 [int] :: MaxValue (21 억) 오리를 생성 할 것입니다. (그리고 0..0오리를 인쇄합니다)
TessellatingHeckler

@TessellatingHeckler 고맙지 만, 지금은 28 바이트 버전을 생각해 냈습니다. :)
AdmBorkBork



6

Brachylog , 24 21 바이트

Outgolfer Erik 덕분에 -3 바이트

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

온라인으로 사용해보십시오!

언어를 축하하기 위해 첫 번째 근접 글입니다. 이 언어의 제어 흐름은 멋지다.

작동 방식 :

"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

그래서, 내가 이것을 올바르게 읽고 있다면, 왼쪽에서 오른쪽으로, 아래에서 위로 읽습니까?
AJFaraday

2
언어는 프로그램의 첫 번째 줄만 사용하여 논리적 진실을 찾으려고 시도합니다. 내 프로그램은 "두 번째 줄의 유효성을 검사 한 다음 거위를 인쇄합니다"라고 말합니다. 그런 다음 두 번째 줄은 너무 기술적으로 바로 바로 맨 윗줄에 당신이 거기에서 호출 한 후 어떤 조건을 왼쪽, "인쇄 오리, 다음 중 하나를 0 4 0 인 임의의 숫자를 확인하거나, 다시이 줄을 검증"말한다
PunPun1000

멋지다, 새로운 언어가 어떻게 작동하는지 알아내는 것은 매우 재미있다. 받은 편지함에 도착했지만 질문을 제기했는지 또는 이미 여기에 댓글을 달았는지 확실하지 않습니다.
AJFaraday

당신은 두 개의 술어 병합 할 수 있습니다 같은를 나 넥타이.
Outgolfer Erik

6

형상 대시 세계 2.2 편집기 -4 개의 객체

형상 대시 레벨 그림

설명:

BG 트리거는 현재 2.2의 임의 트리거이므로 그룹 ID 1 또는 2를 토글합니다.

첫 번째 "DUCK"의 그룹 ID는 1이며, 이로 인해 제거되거나 제거되지 않을 확률이 50 %입니다.

이 레벨에는 그룹 ID 2의 오브젝트가 없으므로 "DUCK"가 2 개 표시 될 확률이 50 %입니다.

이것을 재현하는 방법 :

첫 번째 "DUCK"의 그룹 ID는 1입니다.

여기에 이미지 설명을 입력하십시오

거위와 두 번째 오리는 그룹 ID가 없습니다 여기에 이미지 설명을 입력하십시오

무작위 트리거 내부. 여기에 이미지 설명을 입력하십시오


나는이 도전에 대한 주제를 느낀다
Benjamin Urquhart

@BenjaminUrquhart 무엇?
MilkyWay90

Word of Warcraft, Minecraft 및 기타 게임에 대한 제출물도 있습니다.
Benjamin Urquhart

2
@BenjaminUrquhart 더 많은 답변을 찾을 수있는 게임을 찾으십시오
MilkyWay90

5

05AB1E , 15 14 바이트

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

온라인으로 사용해보십시오!

2, 5 또는 6 마리의 오리를 인쇄 한 다음 거위를 만듭니다.

단일 압축 단어 (duck)에 '를 사용하는 @Emigna 덕분에 -1 바이트


1
'Ðœduck은 한 단어이므로 사용할 수 있습니다 .
Emigna

1
내 친다 :['ÐœTΩ#].•zíΘ•»
Magic Octopus Urn

@MagicOctopusUrn 나는 당신의 무한 루프 접근법을 정말로 좋아합니다. 당신의 대답은 무한한 양의 오리를 출력 할 수 있기 때문에 도전의 정신 (또는 그것이 있어야했던 것)에 분명히 있습니다.
Kaldo

) @Kaldo는 여전히 15 바이트는 당신을 잃는다
매직 문어 항아리를

1
대체 14 바이 터 :'Ðœ₁Ω.D.•zíΘ•»
Magic Octopus Urn


5

레티 나 , 17 바이트

?\\K`duck
K`goose

온라인으로 사용해보십시오!

온라인으로 사용해보십시오!

같은 확률로 1 ~ 2 마리의 오리를 인쇄합니다.

설명

?\\K`duck

작업 문자열을로 설정하고 duck후행 줄 바꿈 ( \)으로 인쇄하십시오 . 그런 다음 다른 출력 단계에서 랩핑되지만이 플래그에는 임의의 플래그 ( ?)가 적용되므로 50 %의 확률로만 인쇄됩니다.

K`goose

바꾸기 duckgoose프로그램의 마지막에 암시 적으로 인쇄되는을.

여기에 오리 1 마리를 50 % 확률로, 오리 2 ​​마리를 25 %로, 오리 3 마리를 12.5 %로 인쇄하는 재미있는 대안이 있습니다.

\K`duck
?+\G`
K`goose

5

Linux의 Vim (스크립트) 46 43 바이트 (49:라인 시작시 46 )

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

로 실행 vim -S filename또는 실행에 붙여 넣기 vim:각 줄 앞에.


2
PPCG에 오신 것을 환영합니다! \d이상 을 사용할 수 있어야합니다 [0-9]. 또한 vim은 후행 줄 바꿈이 필요하지 않으므로 45 바이트가 될 수 있습니다. :
H.PWiz

PPCG에 오신 것을 환영합니다!
Steadybox

5

> <> , 31 22 바이트

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

온라인으로 사용해보십시오!

나무의 개정이 아닌 -9 바이트


1
l?!;오류와 함께 제거 하고 종료 할 수 있습니다.
Emigna

1
그리고 당신은 더 많은 같은 일부 절약 할 수있다
Emigna

1
또는 같은 .
나무가 아님

3
@Notatree 가끔 "\ nkcud \ nkcud ..."를 인쇄하도록합니다. 거의 제대로 작동하지 않습니다
Suppen

1
@Suppen 거울 대신 화살표를 사용하면 문제가 해결됩니다. 편집을 참조하십시오.
KSmarts

5

Befunge 98 , 38 30 25 바이트

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

온라인으로 사용해보십시오!

  • 쓸모없는 트램폴린을 벗겨 주셔서 감사합니다 @JoKing
  • 더 짧은 줄을 위해 Befunge 98로 전환-이제 Duck단일 문자열에 맞음

1
당신은 #두 번째 줄에 필요하지 않습니다
Jo King

그리고 "기술적으로", whitespace within a line is fine그래서 당신은 (출력이 이상하게 보일지라도) 몇 따옴표를 잘라낼 수 있습니다
Jo King

@ JoKing 감사합니다, 내 편집을 참조하십시오.
Vincent

5

T-SQL , 70 44 43 바이트 (많은 오리)

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

@Zac Faragher에게 감사합니다!

개정판, 54 43 40 바이트 (1 또는 2 오리)

@BradC 감사합니다!

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


SQL Fiddle 에서 제대로 실행되는 것처럼 보이지 않지만 LINQPad 및 SSMS에서는 제대로 작동합니다.

이것이 SQL Fiddle의 알려진 제한인지 확실하지 않거나 잘못된 일을하고 있습니다.


좋은. (61) 아래로 당신은 변경하는 경우 selectprint최종 교체 'duck'select'goose'와 함께 'duck(linebreak)goose'(물론, 문자 LINEBREAK로)
BradC

실제로, 당신은 while rand()<.5print'duck'print'duck(linebreak)goose'43을 위해 할 수 있습니다.
BradC

감사합니다. @BradC. char (13)을 추가하는 것 외에 문자열에서 줄 바꿈을 나타내는 다른 방법이 있습니까?
아마

그렇습니다. 말 그대로 따옴표 안에 반품을 넣으면 게시물을 편집하여 표시합니다 (댓글은 반품을 표시하지 않습니다).
BradC

1
3 바이트 더 절약 : 첫 번째 while를로 변경하십시오 if. 오리 1 마리 또는 2 마리를 (임의로) 인쇄하며, 이는 여전히 도전 과제를 만족시킵니다.
BradC




4

펀지

57 35 바이트 (전체 필드의 길이는 19x3 17x2 문자) 개선을위한 karhell 덕분입니다.

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

두 번째 줄은 덕과 줄 바꿈을 스택에 넣고 (뒤로) 문자열로 출력합니다. 그 후 75 %의 확률로 오리를 다시 시작하고 오리를 다시 인쇄하면 25 % (물음표가 내려 가기로 결정한 경우)가 거위를 인쇄하고 중지합니다.


거위 확률이 50 %라면 55+"kcud",,,,,#v?(linebreak here) @,,,,,"goose"< 코드를 35 바이트로 줄이십시오.
karhell

아 달콤한 랩 어라운드. 맞습니다, 감사합니다. 나중에 업데이트를 게시하겠습니다!
rael_kid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.