오리, 오리, 거위!


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

설명:

마지막으로 무작위로 설명하겠습니다. 다른 것들은 비슷하지만 0000 년 1 월 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

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

여기에 오리 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) 아래로 당신은 변경하는 경우 select에 print최종 교체 '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.