Ördek, ördek, kaz!


58

Çocuk oyununu hatırla, 'Ördek, Ördek, Kaz' ? Hayır? Ben de değil.

Meydan okuma

  • 'Duck' kelimesini ayrı ayrı satırlara belirsiz miktarda yazdırın.
  • 'Kaz' kelimesini yazdır.
  • Programın bitti.

Kurallar

  • Oyunu en az baytta oynamaya çalışın.
  • En az bir ördek olmalı.
  • Listenin sonunda, tam olarak bir kaz olmalı.
  • Her satırda tam olarak bir kuş olmalı. Boş satır yok.
  • Çıkarılan dizelerin durumu önemsizdir.
  • Bir çizgideki beyaz boşluk gayet iyi.
  • Programınız bitmeli.
  • Programınız sürekli olarak aynı sayıda ördek üretmemelidir.

İyi eğlenceler!


Lütfen dikkat: Bu soru deterministik olmayan çıktılar üretmek için en kısa kodun bir kopyası değildir.

Sebepler:

  • Bir çocuk oyununa dernek
  • Sonuç dizesinin tanımlanmış başlangıç ​​ve bitiş gereksinimleri. Diğer mücadelede belirli bir çıktı yoktur.
  • Yanıtlar Diğerleri için, yinelenmeyen meydan okuma tek basamaklı bayt sayısındadır. Bunun için ortalama 30 civarında veya orada.
  • Bu meydan okuma ile bu meydan okuma arasındaki örtüşme miktarına göre, 'rastgele' etiketi de dahil olmak üzere herhangi bir kod-golf sorusu bir kopyadır. Hepsini silmeli miyiz?
  • Bu mücadeleye ilişkin kod cevapları diğer mücadeleyle (saçma bir şekilde şişirilmiş şekilde) eşleşir, ancak bu mücadeleye verilen cevaplar bununla eşleşmez.

11
Belirsiz tanımlayabilir misiniz? Sıfır mı yoksa bir mi olabilir?
özyinelemeli

1
Lütfen bunun ne kadar rasgele üretileceğini tanımlayın. Menzildeki üniforma mı, yoksa üstel azalma mı?
HyperNeutrino

@Recursive No, ancak çalışan bir tanım ile gidelim ... Program sürekli aynı sayıda ördek sunmuyor.
AJFaraday

2
Minnesotan gibi konuşan, peki ya benim yerine "ördek, ördek, gri ördek" basarsa? :)
Mike Hill

1
@ jpmc26 Başkaları olduğundan eminim. Başlamak için başkalarıyla oynamak zorunda kalacaktın.
AJFaraday

Yanıtlar:


9

Jöle , 13 bayt

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

Çevrimiçi deneyin!

Açıklama:

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

Daha okunabilir sürüm: Çevrimiçi deneyin!

Her zaman 1 veya 2 ördek geri döner.


Tebrikler! Bunun nasıl çalıştığı hakkında hiçbir fikrim yok!
AJFaraday

@AJFaraday Ben devam ettim ve sizin için bir açıklama ekledim
PunPun1000

@ PunPun1000 Üzgünüz, ama yığın nedir? Jelly tam bir programlama dilidir.
user202729 16:18

@ user202729 Hata! Jelly ve 05AB1E kafamda karıştı, bu hatayı düzeltmek için lütfen düzenleyebilir misiniz? Bunun için üzgünüm
PunPun1000

Jelly'te gizli bir birleşme var mı? Yuppi!
MilkyWay90

43

İşlem Flashpoint kodlama dili, 48 bayt

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

Her zaman bir veya iki ördek yazdırır.

random 10 ile 1 arasında bir (kayan nokta) sayı döndürür. Bu sayı, selectdiziyle birlikte bir argüman olarak iletilir [s,""]. Rasgele sayı daha sonra en yakın tam sayıya (0 veya 1) yuvarlanır ve bu dizindeki dizi öğesi diziden seçilir.

İle ara:

hint call f

Çıktı:

Alternatif 56 bayt sürümü:

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

3
PCG'de birileri bunu kullandığında her zaman beni mutlu ediyor.
Nit

Bu oyunun var olduğunu unuttum.
Caimen

38

World of Warcraft 81 Bayt

İşte World of Warcraft'ta çalıştırabileceğiniz bir makro.

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

11
Ah lordum ... Neden bunu hiç düşünmedim.
Magic Octopus Urn,

4
PVCG (Programlama Video Oyunları ve Code Golf). Flashpoint Operasyonu bir şeydi ama WoW? Bunun Minecraft ve Factorio çözümlerini bekliyorum.
Brain Guider

2
@AnderBiguri Minecraft'in 81 bayttan biraz daha kötü bir şey yapacağından şüpheleniyorum;)
Chris

5
Bu işe yarar ve sizi 58 bayta /run for x=1,random(1,9)do print("Duck")end print("Goose")
indirir

35

Minecraft <1.13, 72 54 bayt

Üzgünüm, zorundaydım.

Talimatlar:

  • Creative Mode'da yeni bir Minecraft dünyası yaratın
  • Bu dünya için kaydetme klasörünü bulun ve aşağıdaki kodu data/functions/minecraft/ddg.mcfunction
  • /function ddgOyun konsolunda koş

Nasıl çalışır:

Dünyadaki her varlık için "ördek" kelimesini çıkardıktan sonra "kaz" kelimesini çıkarır. Varlıklar sürekli yumurtlama ve umutsuzluk yarattığından, "ördek" lerin sayısı tutarlı olmayacaktır. Çok tellrawdaha kısa yerine kullandım , sayçünkü sayvarlığın adını çıkarırken, tellrawtam olarak ne söylendiğini çıkarır.

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

Ekran görüntüsü

görüntü tanımını buraya girin

Düzenleme: {"text": "duck"} sadece "ördek" olarak değiştirildi (ve "kaz" ile aynı)


1
Güzel. PPCG'de daha fazla Minecraft'a ihtiyacımız var.
BradC

9
Siz (oyuncu) dünyadaki bir varlık olduğundan bahsetmeye değer , yani ördek sayısı asla 0 olamaz (düşmanca ya da pasif çeteciler olmasa bile).
BradC

1
@ Brac Minecraft çevresinde tüm zorluklar olmalıdır.
tox123

17

JavaScript, 45 44 42 39 37 bayt

Taşma hatası üretme potansiyeli vardır.

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

Dene

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


14

Octave , 38 33 bayt

Bu en kısa değil (36 bayt), fakat en sevdiğim. Açıklama altta.

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

Çevrimiçi deneyin!


Bazı kısa varyasyonlar:

Bu prensipte (33 bayt) çalışır, ancak çevrimiçi tercümanlar zaman aşımına uğraır:

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

Çıktıyı kısaltmak için bazı baytlar eklemek, onu 35 veya 36 bayt yapar:

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

Açıklama:

Son rastgele olanı açıklayacağım. Diğerleri benzer, ancak bugüne kadar 1 Ocak 0000’den bu yana geçen gün sayısını kullanıyor .

randaralıkta rasgele bir sayı döndürür (0, 1) . Böylece, 1'den1/rand büyük bir sayı döndürür . 1'den büyük rastgele bir düzlemin olduğu bir aralık olduğu için , 1 > x aralığını oluşturur , burada x> = 1 olur .1:ff1:floor(f)1:1/rand

Bunu Octave yığın tabanlı bir dilmiş gibi açıklamaya çalışacağım.

      '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'])? Bu yeterince "belirsiz" olup olmadığından emin değil
Luis Mendo

12

Perl 5 , 20 bayt

İlk önce pratik bir 26 bayt:

Kazlanmadan önce 1 ila 9 kez ördekler.

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

Çevrimiçi deneyin!

Ancak çok fazla hafıza ve zamana sahipseniz, bu 20 baytlık versiyon ( Chris tarafından önerilen şekilde ) da işe yarıyor:

say"Duck
"x$^T,Goose

Bu aynı zamanda, 2038 Yılı Probleminin Perl 5 için çözüleceğini , aksi takdirde 1 saniye 20 yıl boyunca geçersiz olacağını varsaymaktadır .


1+$^T%9Sadece ile değiştirirseniz $^T, hala çalışır ve 4 bayt kaydedin.
Chris

@chris Belli ki benden daha fazla hafızan var. Yine de, üzerinde çalışacağı makul bilgisayarlar olduğu için önerinizi kabul ediyorum. Teşekkürler.
Ton Hospel

12

Python 2 , 36 34 bayt

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

Çevrimiçi Deneyin!

Kevin Cruijssen tarafından öneri bizi 34 bayta götürür :

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

3
Siteye Hoşgeldiniz ve güzel ilk cevap!
caird coinheringaahing

PPCG'ye Hoşgeldiniz! Sen golf değiştirerek iki bayt olabilir ((id(id)%5)+1)için -~(id(id)%5)parantez kurtulmak için. İçinde golf için ipuçları <tüm diller> ve Python golf için ipuçları okumak ilginç olabilir. Kaldınız!
Kevin Cruijssen

1
Can id(id)olmayabilir id(0)veya bir şey eksik?
Jonathan Frech,

@ Johnathan, id(0)birkaç farklı bilgisayara bakmak bunun bir sabit olduğunu gösteriyor.
user2699 14:18

1
Biraz daha sezgisel ve daha fazla bayt aramak olmazdı id([]). Bu, program her çalıştığında farklı bir liste başlatmalı ve teorik olarak sürekli olarak farklı bellek adreslerine yol açmalıdır.
jpmc26

11

Z Kabuğu (+ wget & Netpbm), 168 160 150 148 145 135 120 bayt

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

En kısa çözüm değil, ancak bu zorluğa bir tür bükülme vermek gibi hissettim ( @ AlexG'nin bu diğer soruna çözümünden esinlenerek ).

Bu komut dosyası, 1-8 arası ördek resmi ve altta standart bir çıktıyla bir kaz resmi içeren bir PPM görüntüsü oluşturur. İki kaynak resmi Wikipedia'dan indirir, bu nedenle çalışması için internet erişimi gereklidir.

Pnmtojpeg ile JPEG'e dönüştürülen örnek çıktı :

görüntü tanımını buraya girin


1
Bu tamamen günümü yarattı!
AJFaraday

Bağlantılı olduğum diğer mücadeleyi öneren aynı kişi olduğunuzu fark ettim. xD Peki, bu hoşunuza gittiğine sevindim! = D
lucasb

Evet, benim kod golf zorlukları bazı temalar var :) Kesinlikle resimsel cevaplar için bonus puan vermeliyim.
AJFaraday

Bu, dış kaynakları edinmek için standart bir boşluk değil mi?
MilkyWay90

10

R , 35 bayt

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

Çevrimiçi deneyin!

rexp()üstel bir bozulma fonksiyonundan rastgele bir sayı üretir. +1en az bir ördek sağlamak için. İlk satırdan sonraki tüm satırlar (bunun için varsayılan ayırıcı olan cat) bir satır aralığı içerir, ancak buna izin verilir.


1
Birden fazla ördek çıkma olasılığı exp(-1)% 36,8 civarındadır.
Giuseppe

Her satıra yazdırmayı ister. Sanırım "
örde

3
@stuartstevenson Burada \n, bir bayt kısa olduğundan ziyade değişmez bir yeni satır kullandım . Ziyaret ederseniz "Çevrimiçi deneyin!" Bağlantı efekti aynı olduğunu görebilirsiniz.
user2390246,

Bir DOS / Windows kutusunda, bu yeni satır hala iki (2) bayt olacaktır. 0x0d0a
yaktı

10

Bash , 39 38 37 bayt

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

Çevrimiçi deneyin!

[0,32767] 'de eşit şekilde dağıtılmış bir tamsayıdaki rakam sayısına eşit sayıda ördek yazdırır (yani, beş ördeğe (çok fazla sayıda ördek).

@Chris ve @sch sayesinde her biri -1 byte, ağırlıklarını çekmeyen tırnak çiftlerini gösteriyor.


1
PPCG'ye Hoşgeldiniz!
Steadybox

1
Sen sürece değiştirmek olarak tek tırnak kurtularak bir bayt kaydedebilirsiniz \nile \\n.
Chris

1
İyi fikir. Sadece bash yapılarıyla benzer olan ve 30 byte sed olmayan bir şey yapabilirsiniz .
Dijital Travma

1
sed s/[0-9]/duck\\n/g<<<$RANDOM\goosebir bayt tıraş olabilir
sch

1
sedTamamen taşınabilir değildir. Bazı platformlarda tek bir ters eğik çizgi ile kurtulabilirsiniz \n. Diğerlerinde ne yaparsanız yapın yeni bir hat alamazsınız.
üçlü 13.03.2018

9

Saf Bash (harici yardımcı program yoktur), 25

@ SophiaLechner'ın cevabına dayanarak , bu da çok sayıda ördek yazdırır .

@ OlivierDulac'ın PID betiğini kabuk $parametresinde kullanma fikri, parametre parametresinde saklandığı gibi 5 bayt kazandırır.

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

Çevrimiçi deneyin .


1
Bir program başlattığınızı varsayalım, her seferinde farklı bir ödeme alacak. çoğu zaman 5 rakam uzunluğunda olacak, fakat her zaman değil. bu nedenle: 5 bayt'ı tıraş RANDOMedecek $şekilde değiştirilsin mi? Ve biri çok uzun bir ördekler dize de yapabilirdi:yes duck|head -n $$;echo goose
Olivier Dulac

@OlivierDulac evet, kullanarak $$kabul edilebilir olduğunu düşünüyorum - teşekkürler!
Dijital Travma

rica ederim! Diğer versiyonumu ( yes duck | head -n $$;echo goose) alternatif olarak yayınladım (sizinkinden daha uzun, ama biri 5 ekstra karakter için bir sürü ördek alıyor. ^^)
Olivier Dulac


8

Bash + Coreutils, 36 27 bayt

yes duck|sed $$q;echo goose

Çok fazla ördek yazdırır (2 ile 2 arasında cat /proc/sys/kernel/pid_max), sonra bir kaz.

Digital Trauma ve Olivier Dulac sayesinde dokuz bayt kurtarıldı.

Çevrimiçi deneyin! (ama zaman zaman kesilebileceğini unutmayın)

Aynı uzunluk, ancak no echo:

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

Çevrimiçi deneyin!

aappend komutu içeri girer sedve qçıkar. Her ikisi de yalnızca PID'ye $$karşılık gelen satırda çalışır .


Bash'in modülo var, ancak bu boyutu artıracak. Deneyinhead -n $((1+(RANDOM % 5)))
üçlü 13.03.2018

@ tripleee Bu kod golf olduğundan, kodun boyutunu artırmak için çıktının boyutunu artırmak tercih edilir. 132767 ördek, başka bir yerde gördüğünüz milyarlarca veya daha fazlaya kıyasla düpedüz makul;)
Chris

1
Elbette, birinin gerçekten bu çığır açan araştırmayı bir gün pratikte uygulamak istemesi durumunda yardımcı olacağını umuyorum. Gibi, TIO . Bazı boşluklar ile 44 bayt.
üçlü,

@OlivierDulac kullanarak önerdi $$yerine $RANDOMilişkin cevabım . Sanırım 5 bayttan tasarruf etmek için de aynısını kullanabilirsin. Oh ve sedyes duck|sed 1$$q;echo goose
Dijital Travma

Aslında yes duck|sed $$q;echo goosesorun değil - Senaryonun hiç PID alacağını sanmıyorum <1
Digital Trauma,

7

PowerShell , 35 , 30 28 bayt

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

Çevrimiçi deneyin! (değiştirilmiş sürüm)

Bir dizi madde üretir Get-Random. Biraz zaman alabilir. Bu +1en az bir tane aldığımızdan emin olmak için bir ekler duck. Değiştirilen sürüm ayrıca bir -max işaretini de içerir , 5böylece programın beklendiği gibi çalıştığını görebilirsiniz (değiştirilen sürüm, 1, 2, 3 veya 4 ducks'den önce basacaktır goose).

Dizi ve yalnız goosedizi, boru hattında bırakılır ve örtük Write-Output, bize newline ile ayrılmış değerleri bedava verir.

Son çizgiyi "gri ördek" olarak değiştirmemin benim için ne kadar zor olduğunu bilmiyorsun ...


Bu değişken kulağa oldukça eğlenceli geliyor ve kesinlikle bir kod yarışmasına değiyor ... Birkaç gün beklemenizi ve kendinize ait bir meydan okuma olarak göndermenizi tavsiye ederim :)
AJFaraday

1
@AdmBorkBork, bu Minnesotan bu gruba gri ördeğini + 1'lemek için katıldı.
Milwrdfan

0..(random)|%{'duck'};'goose'29 gibi gözüküyor ve aynı zamanda bir kazdan önce [int] :: MaxValue (2.1 milyar) ördeğe kadar üretecek. (Ve 0..0bir ördek yazdırır)
TessellatingHeckler

@TessellatingHeckler Teşekkürler, ama ben şimdi 28 bayt versiyonu ile geldim. :)
AdmBorkBork



6

Brachylog , 24 21 bayt

Outgolfer Erik sayesinde -3 bayt

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

Çevrimiçi deneyin!

Ayın dilinin kutlanmasında ilk brakilog yazısı. Bu dilde kontrol akışı harika.

Nasıl çalışır:

"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

Yani, eğer bu hakkı okuyorsam, soldan sağa, aşağıdan yukarıya doğru mu okuyor?
AJFaraday

2
Dil, programın ilk satırını kullanarak mantıklı bir gerçeği bulmaya çalışır. Programım "İkinci satırı doğrula, sonra kazı yazdır" der. Sonra ikinci satırda "yazdırmalı ördek, ardından 0
4'lük

Güzel, yeni dillerin nasıl çalıştığını bulmak çok ilginç. Gelen kutuma ulaştı ancak soruyu sorduğum için mi yoksa zaten burada yorum yaptığımdan emin değilim.
AJFaraday

İki yüklemler birleştirebilirsiniz böyle ve beni bağla.
Outgolfer Erik,

6

Geometri Dash World 2.2 Editor - 4 nesneler

Resim Geometri Çizgi Seviyesi

Açıklama:

BG tetikleyicisi mevcut 2.2'nin rastgele tetikleyicisidir, bu yüzden Grup Kimliği 1 veya 2'yi değiştirir.

İlk "DUCK", 1 kişilik bir grup kimliğine sahip ve bu da% 50 oranında kaldırılma veya kaldırılma şansını elde etmesini sağlıyor.

Bu seviyede Grup ID 2 ile hiçbir nesne yoktur, bu yüzden% 50 "DUCK" gösterilme şansı vardır.

Bu nasıl yeniden üretilir:

İlk "DUCK", 1 kişilik bir Grup Kimliğine sahiptir.

görüntü tanımını buraya girin

Kaz ve 2. ördek, Grup Kimliğine sahip değil görüntü tanımını buraya girin

Rastgele tetikleyici içinde. görüntü tanımını buraya girin


Bu meydan okuma için bir tema hissediyorum
Benjamin Urquhart

@ BenjaminUrquhart Ne?
MilkyWay90

Word of Warcraft, Minecraft ve başka bir oyun için öneriler var.
Benjamin Urquhart

2
@BenjaminUrquhart Cevaplamak için daha fazla oyun bulmak daha iyi
MilkyWay90

5

05AB1E , 15 14 bayt

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

Çevrimiçi deneyin!

2, 5 veya 6 ördek ve daha sonra kaz basacak.

Tek bir sıkıştırılmış kelime (ördek) için 'kullanarak @Emigna sayesinde -1 bayt


1
'ÐœÖrdek tek bir kelime olduğu için kullanabilirsiniz .
Emigna

1
Benimki yener:['ÐœTΩ#].•zíΘ•»
Magic Octopus Urn

@ MagicOctopusUrn Sonsuz döngü yaklaşımınızı gerçekten seviyorum. Cevabınız, kesinlikle sınırsız miktarda ördek çıktısı alabildiğinden, meydan okuma ruhu içinde (veya ne olması gerektiği?).
Kaldo

@Kaldo hala, 15 bayt sizin için kaybeder;)
Magic Octopus Urn

1
Alternatif 14-byter:'Ðœ₁Ω.D.•zíΘ•»
Magic Octopus Urn


5

Retina , 17 bayt

?\\K`duck
K`goose

Çevrimiçi deneyin!

Çevrimiçi deneyin!

Eşit olasılıkla 1 veya 2 ördek yazdırır.

açıklama

?\\K`duck

Çalışma dizesini ayarlayın ve duckizleyen bir satır besleme ( \) ile yazdırın . Sonra bu, başka bir çıktı aşamasına sarılır, ancak buna ?uygulanan rasgele bayrağı ( ) vardır, bu nedenle yalnızca% 50 olasılıkla yazdırır.

K`goose

Programın sonunda örtük şekilde basılmış olan duckile değiştirin goose.

İşte% 50 olasılık ile 1 ördek,% 25 ile 2 ördek ve% 12,5 ile 3 ördek basan eğlenceli bir alternatif:

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

5

Linux'ta Vim (script), 46 43 bayt (49:Satırın başında 46 )

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

Olarak çalıştırılır vim -S filenameveya çalışan yapıştırılan vimile :her hat önce.


2
PPCG'ye Hoşgeldiniz! Kullanılacak gerekir \düzerinde [0-9]. Ayrıca,
vim'in

PPCG'ye Hoşgeldiniz!
Steadybox

5

> <> , 31 22 bayt

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

Çevrimiçi deneyin!

Bir ağaç revizyonuna dayanan -9 bayt


1
l?!;Bir hatayı kaldırabilir ve çıkabilirsiniz.
Emigna

1
Ve daha fazla gibi bazı kurtarabilecek bu
Emigna

1
Ya gibi bu .
Ağaç

3
@Notatree Bazen "\ nkcud \ nkcud ..." yazdıracak birini alıyorum. Nadiren doğru davranır
Suppen

1
@Suppen Sadece bir ayna yerine bir ok kullanmak onu düzeltir; düzenlemeye bakın.
KSmarts

5

Befunge 98 , 38 30 25 bayt

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

Çevrimiçi deneyin!

  • Faydasız trambolin soymak için teşekkürler @JoKing
  • Daha kısa yeni hat için Befunge 98'e geçiş - şimdi Ducktek bir dizgeye sığacak

1
#İkinci hatta ihtiyacın yok
Jo King

Ve "teknik olarak", whitespace within a line is fineböylece birkaç alıntıyı kesebilirsiniz (çıkış tuhaf görünse bile)
Jo King

@JoKing Teşekkürler, düzenlememi görün.
Vincent

5

T-SQL , 70 44 43 bayt (Çok sayıda ördek)

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

Teşekkürler @Zac Faragher!

Gözden geçirilmiş sürüm, 54 43 40 bayt (1 veya 2 ördek)

@ BradC!

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


Bunun SQL Fiddle'da düzgün çalışmasını sağlayamıyorum , ancak LINQPad ve SSMS'de gayet iyi çalışıyor.

Bunun bilinen bir SQL Fiddle sınırı olup olmadığından emin değilim ya da sadece yanlış bir şey yapıyorum.


Güzel. 61 Aşağı değiştirmek eğer selectiçin printve son değiştirme 'duck'select'goose'ile 'duck(linebreak)goose'(tabii ki, bir hazır LINEBREAK ile)
BradC

Aslında, sadece while rand()<.5print'duck'print'duck(linebreak)goose'43 için yapabilirsiniz .
BradC

Güzel, teşekkürler @ BradC. Satır sonunu bir karakter (char) eklemek dışında bir dizgede göstermek için başka bir yol var mı?
Muhtemelen

Evet, kelimenin tam anlamıyla tırnak içine bir geri dönüş koymak, gönderinizi size gösterecek şekilde düzenlerim (yorumlar geri dönüşleri göstermez).
BradC

1
3 bayt daha kaydedin: ilkini whiledeğiştirin if. Bir ya da iki ördeği (rastgele) yazdırır (ki buna inanıyorum), hala mücadeleye cevap veriyor.
BradC

5

Powershell - 31 30 bayt

Uyarı : Büyük olasılıkla bir sürü ördekle biteceksin. sayının ne kadar rasgele olduğuna bağlı olarak Random0'dan 0'a kadar olan değerleri içerir Int32.MaxValue, bu çok fazla zor olabilir.

1..(Random)|%{"Duck"};"Goose"

$Önüne ihtiyacın olmamalı (Random). Çevrimiçi deneyin!
AdmBorkBork

@AdmBorkBork yakalamak için teşekkürler!
SomeShinyObject



4

Befunge

57 35 bayt (tüm alanın çevresi 19x3 17x2 karakterdir) Gelişim için karhell sayesinde.

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

İkinci satır, ördeği ve yeni satırı yığına (geriye doğru) koyar ve bunu bir dizge olarak çıkarır. % 75'inin başlangıcına geri dönme ve yeniden ördek basma şansı,% 25 (soru işareti düşmeye karar verdiğinde) kaz ve durmak için.


% 50 55+"kcud",,,,,#v?(linebreak here) @,,,,,"goose"<
kazma

Ah tatlı sarılı. Haklısın, teşekkürler, daha sonra bir güncelleme göndereceğim!
rael_kid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.