Bana bir sosisli sandviç pişir! [kapalı]


13

Bazen kendimi bir sosisli sandviç isteriz (hepimiz değil) ve böylece bir tane yapıyorum. Şimdi bir sosisli sandviç yapmak çok basit.

1) Sosisleri kaynar suya koyun

2) Belirli bir süre bekleyin (aşağıda detaylandırılmıştır)

3) Zaman geçtikten sonra sosisli sandviç yiyin.

Söylediğimi fark etmiş olabilirsin

belirli bir zaman (aşağıda detaylandırılmıştır)

ve böylece detaylandıracağım.

Birçok farklı markanın sosisleri ne kadar süre pişirmemiz gerektiğine dair birçok farklı önerisi var, ancak tam olarak 4 dakika 27 saniye pişirmeyi en iyi buldum (sorma). Birçok farklı zamanlayıcı denedim, ancak sürekli çıktı veren bir programın dikkatimi çekmenin en iyi yolu olduğunu buldum.

SENİN GÖREVİN

İletiyi Not ready yettam olarak 4 dakika 27 saniye boyunca çıktılayacak bir program yapmalısınız . Bu süre geçtikten sonra Eat your hot dog, zaman sonuna kadar çıktı almalısınız . Lütfen herhangi bir girdi almayın.

NASIL KAZANILIR

Kazanmak için en kısa kodu bayt cinsinden yazmalısınız çünkü bu bir



1
Legen'e oldukça yakın … bekle… ayrıca.
manatwork

Tek fark, bu zorluğun programın belirli bir süre beklemesini gerektirmesidir
user41805

8
Aralık bitene kadar ("hazır değil") sürekli tekrar tekrar vermeli Not ready yet\nNot ready yet\n...miyiz, yoksa sadece bir kez çıktı verebilir ve 4m 27s bittiğinde çıktıyı değiştirebilir miyiz?
user41805

1
Hata! Son iki gündür benim sosisli sandviç yememi hatırlatıyor ...
Neil

Yanıtlar:


20

Kazı Kazan, 93 78 bayt

görüntü gösterimi

Kod:

when gf clicked
say[Not ready yet
wait until<(timer)>[267
say[Eat your hot dog

Scratch puanlaması için standart gibi görünen https://scratchblocks.github.io/ tarafından üretildi.

Oldukça açıklayıcı. Program başladığında, zamanlayıcı (saniye olarak sayılır) 267'den büyük olana kadar "Henüz hazır değil" deyin. Sonra söylediği yerde sonsuz bir döngü başlatır Eat your hot dog.

O olduğu için, sürekli çıkış saybloğu sürece sonsuza çalıştırır say []veya saybaşka bir şey.


7
Sonsuza kadar gerek yoktur, 8 bayt tasarruf sağlar. Bu 85 bayta çıkar. Hñähñu'da (Mezquital Otomi) , İngilizce yerine, başka bir 8 bayt (sonsuza dek olmadan ) daha kısadır ve sadece 77 bayta çıkar.
Tim


@ Teşekkürler, ancak yeşil bayrak işe yaramıyor gibi görünüyor.
Okx

Aslında bu web sitesinin resmi çevirisinden geliyor, bu yüzden yanlış yaptığı bir hata.
Tim

@Tim Yeşil bayrak bloğu muhtemelen henüz uygulanmadı (çeviri yine de tercüme edilmesine rağmen). Ayrıca, resmi Scratch'ta Hñähñu dili yoktur.
Outgolfer Erik

14

Bash + coreutils, 50

timeout 267 yes Not ready yet
yes Eat your hot dog

açıklama

Bence oldukça açıklayıcı, ama her ihtimale karşı:

  • yesCoreutil sürekli tekrar tekrar komut satırında kendisine iletilen herhangi bir parametre verir
  • timeoutCoreutil bir komutun izlediği bir sayısal zaman aşımı parametre alır. Komut çalıştırılır, daha sonra belirtilen zaman aşımından sonra öldürülür.

8

Flashpoint kodlama dili çalışması, 67 bayt

#l
s="Not ready yet"
?_time>267:s="Eat your hot dog"
hint s
goto"l"

Kaydet olarak "hotdog.sqs"(ya da herneyse) ile misyon klasörüne ve görüşmesi [] exec "hotdog.sqs".

Açıklama:

#l                                  // Label for the "goto"
s="Not ready yet"
?_time>267:s="Eat your hot dog"     // "?:" means "if () then" in a script.
                                    // "_time" is a local variable that is automatically
                                    // created and updated in every script. Its value
                                    // is the time in seconds since the script started.

hint s                              // Outputs the text in a text box.

~.1                                 // Sleeps for a tenth of a second.
                                    // The script seems to work without sleeping too,
                                    // so I didn't include this in the golfed version.
                                    // Looping in a script without sleeping is always
                                    // a bad idea, though. It sometimes crashes the game.

goto"l"                             // Go back to the beginning of the loop.
                                    // This is the only way to create a loop if you don't 
                                    // want to halt the game (and the time calculation)
                                    // until the loop finishes.

Birçok farklı zamanlayıcı denedim, ancak sürekli çıktı veren bir programın dikkatimi çekmenin en iyi yolu olduğunu buldum.

Bu çözüm dikkatinizi çekmekte özellikle iyi olmalıdır, çünkü hintkomut her çağrıldığında yapışan bir ses efekti oynar, bu da eşzamanlı sesler sıkı bir döngüde kırpıldığında çok sinir bozucu gelebilir.


7

JavaScript ES6, 76 bayt

$=>setInterval("console.log(--_>0?`Not ready yet`:`Eat your hot dog`)",_=517)

açıklama

Bu, her 517 milisaniyede bir konsola bir şey yazdırır. İlk başta 'Not ready yet'sayacı yazdırır ve azaltır. 517 yinelemeden ( = 517 * 517 = 267289 ms) sonra yazdırmaya başlar 'Eat your hot dog'.

Ölçek

f=
  $=>setInterval("console.log(--_>0?`Not ready yet`:`Eat your hot dog`)",_=517);
(setInterval("console.log('DONE NOW')",267000)&&f())();


Sadece settimeout yapamaz ve bir bayt kaydedemez misiniz?
user1910744

setTimeoutişlevi yalnızca bir kez yürütür. Zorluk sürekli bir dize çıktısıdır, bu nedenle setTimeoutgeçersiz olur.
Luke

(--_?(--_>0? (-2) yerine çalışıyor
dandavis

Ne yazık ki, bir _şey her yazdırıldığında azaltılmayacak, bu nedenle de sıfırın altına inecektir. Tüm negatif tamsayılar doğrudur, bu yüzden de yazdıracaklardır 'Not ready yet'(bu bizim istediğimiz şey değildir).
Luke

7

Powershell, 85 71 59 bayt

1..276|%{Sleep 1;'Not ready yet'};for(){'Eat your hot dog'}

Muhtemelen çok daha iyi bir yol var, bu yüzden eleştiri hoş geldiniz! Bu benim ilk golf girişimim :)

DÜZENLEME Aşağı bütün bir 14 AdmBorkBork sayesinde bayt! Ve kesinlikle hatırlanması gereken bir teknik!

EDIT 2 Matt sayesinde 12 bayt daha gitti. İki kez yazma çağırmak da 2 boşluk kaldırıldı, çok yararlı!


1
PPCG'ye Hoşgeldiniz! Etrafında başka bir PowerSheller görmek güzel. Bir kolay golf bir döngü kez sabit sayıda çalıştırmak için 1..276|%{}yerine forbir artış ile bir döngü. Bu sayfadaki diğer ipuçlarına da göz atın!
AdmBorkBork

Dizeler varsayılan olarak standart çıktıya gönderilir. write-outputCmdlet ile belirtmeye gerek yoktur .
Matt

7

Nükleer Taht Birlikte Modunda kullanılan GameMaker'ın komut dosyası dili değişkeni, 68 bayt

t=0while 1{trace(t++<8010?"Not ready yet":"Eat your hot dog")wait 1}

açıklama

  • GML'nin ayrıştırıcısı lezzetli bir şekilde affedicidir. Noktalı virgül ve parantez isteğe bağlıdır ve derleyici tüm temel kurallar dışında boşluk endişe de değil ( 0whileayrıştırır olarak 0, whileve böylece ok)
  • Değişkenler, bildirilmediği sürece var(JS ile aynı) çalıştırma bağlamına sızar .
  • NTT'de kullanılan GML varyantı wait, "mikro-iş parçacığının" yürütülmesini, daha sonra devam ettirerek belirtilen sayıda kare için bir listeye iten bir operatör sunar. Coroutines, temel olarak.

    Oyun 30 kare / sn hızda, 4m27s == 267s == 8010 kare.

  • trace () verilen dizeyi sohbete gönderir.

Video oyunu + mod yüklüyse, bunu bazıları olarak kaydedebilir test.mod.gmlve /loadmod testyürütmeyi "durum raporları" ile sohbette yapabilirsiniz:

ekran görüntüsü


3
Burada neler olup bittiğinden tam olarak emin değilim, ama onaylıyorum.

3

Python 2, 92 bayt

from time import*
t=time()
while 1:print"Not ready yet"if time()-t<267else"Eat your hot dog"

Çevrimiçi deneyin!


9
while 1:print'ENaott yroeuard yh oyte td o g'[time()-t<267::2]90 bayt
ovs için

@ovs while 1:print['Eat your hot dog','Not ready yet'][time()-t<267]da 90 olur (daha net ve ekstra beyaz alan yazdırmazken).
Jonathan Allan

3

TI-Basic, 75 bayt

For(A,1,267
Disp "Not ready yet
Wait 1
End
While 1
Disp "Eat your hot dog
End

açıklama

For(A,1,267             # 9 bytes, for 267 times...
Disp "Not ready yet     # 26 bytes, display message
Wait 1                  # 3 bytes, and wait one second
End                     # 2 bytes, ...end
While 1                 # 3 bytes, after that, continuously...
Disp "Eat your hot dog  # 31 bytes, output second message
End                     # 1 byte, ...end

2

Toplu, 99 bayt

@for /l %%t in (1,1,267)do @echo Not ready yet&timeout/t>nul 1
:l
@echo Eat your hot dog
@goto l

Toplu bir tarih aritmetiği yoktur, bu nedenle basit bir 267 saniyelik zaman aşımına izin verilmediği için yapabileceğim en iyi şey 267 saniyelik bir zaman aşımıdır.


2

C # 144 bayt

()=>{for(int i=0;;){var s="\nEat your hot dog";if(i<267e3){i++;s="\nNot ready yet";}System.Console.Write(s);System.Threading.Thread.Sleep(1);}};

Ungolfed tam programı:

class P
{
    static void Main()
    {
        System.Action a = () => 
            {
                for (int i = 0; ;)
                {
                    var s = "\nEat your hot dog";
                    if (i < 267e3)
                    {
                        i++;
                        s = "\nNot ready yet";
                    }
                    System.Console.Write(s);
                    System.Threading.Thread.Sleep(1);
                }
            };

        a();
    }
}

Ne yazık ki ?:-operator kullanamadım çünkü iolmadan artan durdurmak için bir yol bulamadı if.


if(i++<267e3)Birkaç bayt kaydetmek gibi bir şey deneyin .
adrianmp

1
@adrianmp: Bu işe yaramaz, çünkü iher milisaniyede bir artış olur . Ve bir kez int.MaxValueulaşıldığında program çökecek veya Not ready yettekrar yazdırmaya başlayacaktır .
raznagul

Ben büyük ölçüde taşma geciktirerek (veya hatta birkaç bayt pahasına hafifleterek) bu başardı. Cevabınızdan bazı fikirler "ödünç aldım". Teşekkürler!
adrianmp

2

C # 174 172 147 bayt

Raznagul'un C # cevabından bazı fikirler "ödünç alarak" 25 bayt kaydedildi ve ilk n numaralarının toplamı ile birleştirildi!

185 milisaniye hassasiyet kaybı için ilk n sayı numarasının toplamı kullanılarak 2 bayt kaydedildi.

class P{static void Main(){for(int i=1;;){System.Console.WriteLine(i++<731?"Not ready yet":"Eat your hot dog");System.Threading.Thread.Sleep(i);}}}

Ungolfed programı:

class P
{
    static void Main()
    {
        for (int i=1;;)
        {
            System.Console.WriteLine( i++ < 731 ? "Not ready yet" : "Eat your hot dog");
            System.Threading.Thread.Sleep(i);
        }
    }
}

Açıklama:

Toplam bekleme süresi 267 saniyede sabit olarak n * (n + 1) / 2kodlandığından, bu sayı 267000 milisaniyeye eşit olması gereken ilk n doğal sayının teleskopik bir toplamı olarak düşünülebilir .

Bu eşdeğerdir n^2 + n - 534000 = 0.

Bu ikinci dereceden denklemi çözerek, n1 = 730.2532073142067, n2 = -n1. Tabii ki, sadece pozitif çözelti kabul edilir ve 730 olarak yaklaştırılabilir .

Toplam süre olarak hesaplanabilir 730 * (730 + 1) / 2 = 266815 milliseconds. Kesinlik 185 milisaniyedir , insanlar tarafından algılanamaz. Kod şimdi ana (ve sadece) dişi 1 milisaniye, 2 milisaniye vb. Kadar 730'a kadar uyutur, böylece toplam uyku süresi ~ 267 saniyedir.

Güncelleme:

Programın mantığı daha da basitleştirilebilir - temel olarak bir mesajı sürekli olarak göstermeli ve ikinci mesaja geçene kadar belirli bir süre beklemelidir.

Mesaj, belirtilen sürenin (~ 267 saniye) geçişini kontrol etmek için üçlü bir operatör kullanılarak değiştirilebilir.

Zamanlama yönü, artan bir sayaç kullanılarak ve yürütme iş parçacığının duraklatılmasıyla kontrol edilir.

Bununla birlikte, sayaç değişkeni değerini kontrol etmek için herhangi bir koşul olmadan süresiz olarak artmaya devam ettiğinden, mesaj geri döndüğünde bir noktada tamsayı taşması beklenebilir Not ready yet.

Döngü i=i<1?731:iiçinde olduğu gibi taşma meydana geldiğinde 730'dan daha büyük bir pozitif değer atayarak sorunu tespit etmek ve azaltmak için bir koşul eklenebilir for. Ne yazık ki, 11 ek bayt maliyetiyle geliyor:

class P{static void Main(){for(int i=1;;i=i<1?731:i){System.Console.Write(i++<731?"\nNot ready yet":"\nEat your hot dog");System.Threading.Thread.Sleep(i);}}}

Buradaki anahtar , taşma anını büyük ölçüde geciktirmek için sayaç değerini milisaniye cinsinden kullanmaktır.

Taşmaya kadar geçen süre sum(1..n)aşağıdaki formüle göre hesaplanabilir , burada n = C # (ve .NET çerçevesindeki) maksimum 32-bit işaretli tam sayı değeri veya 2 ^ 31-1 = 2147483647:

2 147 483 647 * 2 147 483 648 / 2 = 2,305843008 x 10^18 milliseconds = 2,305843008 x 10^15 seconds = 26 687 997 779 days = ~73 067 755 years

73 milyon yıl sonra , sistemde bir aksaklığın ortaya çıkması önemli olmayabilir - sosisli sandviç, aç OP ve belki de insan ırkının kendisi çoktan gitti.


Önceki sürüm (172 bayt):

namespace System{class P{static void Main(){for(int i=1;i<731;){Console.Write("\nNot ready yet");Threading.Thread.Sleep(i++);}for(;;)Console.Write("\nEat your hot dog");}}}

Ungolfed programı:

namespace System
{
    class P
    {
        static void Main()
        {
            for (int i = 1; i < 731; )
            {
                Console.Write("\nNot ready yet");
                Threading.Thread.Sleep(i++);
            }
            for ( ; ; )
                Console.Write("\nEat your hot dog");
        }
    }
}

Önceki sürüm (174 bayt):

namespace System{class P{static void Main(){for(int i=0;i++<267e3;){Console.Write("\nNot ready yet");Threading.Thread.Sleep(1);}for(;;)Console.Write("\nEat your hot dog");}}}

Ungolfed programı:

namespace System
{
    class P
    {
        static void Main()
        {
            for (int i=0; i++ < 267e3; )
            {
                Console.Write("\nNot ready yet");
                Threading.Thread.Sleep(1);
            }
            for ( ; ; )
                Console.Write("\nEat your hot dog");
        }
    }
}

Alternatif olarak, program Not ready yetyalnızca bir kez görüntülenebilir , belirtilen süre bitene kadar bekleyebilir ve daha sonra Eat your hot dogbirkaç bayt daha kısa olurken önceki iletinin üzerine yazarak çıktı alabilir :

C #, 145 bayt

namespace System{class P{static void Main(){Console.Write("Not ready yet");Threading.Thread.Sleep(267000);Console.Write("\rEat your hot dog");}}}

Ungolfed programı:

namespace System
{
    class P
    {
        static void Main()
        {
            Console.Write("Not ready yet");
            Threading.Thread.Sleep(267000);
            Console.Write("\rEat your hot dog");
        }
    }
}

Bu harika. Eğer olmasaydım sana +1 verirdim. ;)
raznagul

2

Yakut, 80 71 67 Bayt

Edit: 13 tam bayt tıraş için manatwork sayesinde

267.times{puts"Not ready yet"
sleep 1}
loop{puts"Eat your hot dog"}

Neden olmasın 267.times{…}?
manatwork

Vay canına, teşekkürler. Şimdi aptal hissediyorum.
BRFNGRNBWS

Görünüşe göre CR / LF hat ayırıcılar ile sayıyor. Ruby sadece LF'ye izin verdiği için, sadece bunu sayıyorduk. Ve sonra satır sonu gerekmez {. Bu 67 bayt ile sonuçlanır.
manatwork

Ben Ruby acemi ve kod golf toplam bir çaylak, yani tüm yardım için teşekkürler!
BRFNGRNBWS

Eğer kaçırdıysanız, yeni başlayanlara yardımcı olmak için Ruby'de Golf için ipuçları koleksiyonu var .
manatwork

2

05AB1E, 43 29 28 bayt (Adnan'a teşekkürler)

267F…€–Žä‡«ªw,}[“Eat€ž…ß‹·“,

Zaman aşımına uğradığı için çevrimiçi çalışmaz. Çevrimdışı çalışacaktır.

267F: Döngü 267 kez

…€–Žä‡«ª: Sözlük içeren ilk dize

w,: Bir saniye bekleyin ve yazdırın

}[: Döngü biterse ve sonsuz döngüyü başlat

“Eat€ž…ß‹·“: Sözlüklü ikinci dize

,: Yazdır


Teşekkürler, müvekkilim bu kodun kısa olduğunu ve çevrimdışı çalıştığını gördü - şimdi bu dili kullanarak web sitesini yazmamı istiyor. . .
Pascal Raszyk

Çevrimiçi çalışır, ancak çevrimiçi verilen yorumlayıcıda çalışmaz. Burada
P. Knops

Biliyorum. Şakaydı: D.
Pascal Raszyk

1
Normal yolu cevaplamak en iyisidir: D
P. Knops

“NotŽä‡«“değiştirilebilir…€–Žä‡«ª
Adnan

1

Python, 115 bayt

İlk defa böyle bir şey deniyorum. Ben de bir acemi bu yüzden burada 115 bayt için Python 3 gider:

import time
for i in range(267):
    time.sleep(1)
    print("Not ready yet")
while 1:
    print("Eat your hotdog")

3
Siteye Hoşgeldiniz! Golf kodunun amacı, dilinizde mümkün olan en kısa kodu yazmaktır. Geliştirilebilecek birkaç şey var ve bazı ipuçları için mevcut Python kazananına bakmak zarar veremedi !

Time.sleep (1) kaldırmak - birkaç bayt kaydeder
Pascal Raszyk

@praszyk, daha sonra fordöngü range(267)4 dakika 27 saniyeden daha hızlı bir şekilde bitirecek ve çözüm geçersiz hale gelecektir . ☹
manatwork

1

Mikro için JavaScript Blokları Editörü: bit, 90 Bayt

resim açıklamasını buraya girin

Kod:

basic.showString("Not ready yet")
basic.pause(254000)
basic.showString("Eat your hot dog")

Burada deneyebilirsiniz.

Görevimi micro: bitim ile çözmek için Scratch cevabından ilham aldım. Tek sorun, duraklatma bloğunun ilk dizeyi çıkardıktan sonra başlamasıdır, bu nedenle duraklamayı 13 saniye azaltmak için gerekliydi.

Not: micro: bit için eski Microsoft Blok Düzenleyicisi oluşturmak daha kısadır, ancak daha fazla kod üretir, bu yüzden aslında daha uzundur.


1

OP'nin sosislerden sürekli olarak, zamanın sonuna kadar istediği temelinde - bu ifadeden anlıyorum:

Bu süre geçtikten sonra, sosisli sandviçinizi zaman sonuna kadar yiyin.

Bu benim cevabım:

C ++, 187 188 224 167 bayt

Boşluk kaldırıldı (167 bayt):

#include<stdio.h>
#include<windows.h>
int main(){for(;;){for(int x=0;x<267;x++){Sleep(1000);printf("Not ready yet");}Sleep(1000);printf("Eat your hot dog");}return 0;}

okunabilir form (224 bayt):

#include <stdio.h>
#include <windows.h>

int main() {
  for( ; ; ){ 
    for(int x=0; x < 267; x++){
      Sleep(1000);
      printf("Not ready yet"); 
    }
    Sleep(1000);
    printf("Eat your hot dog");
  }
  return 0;
}

Öte yandan, OP sosislilerini ılımlı bir şekilde seviyorsa, bu benim cevabım:

Boşluk kaldırıldı (158 bayt):

#include<stdio.h>
#include<windows.h>
int main(){for(int x=0;x<267;x++){Sleep(1000);printf("Not ready yet");}Sleep(1000);printf("Eat your hot dog");return 0;}

okunabilir form (198 bayt):

#include <stdio.h>
#include <windows.h>

int main() {
  for(int x=0; x < 267; x++){
    Sleep(1000);
    printf("Not ready yet"); 
  }
  Sleep(1000);
  printf("Eat your hot dog");
  return 0;
}

Nedir delay?
Quentin

Tamam bu eski bir işlev. Yerine Sleep (1000)
Tombas 06

Baytları kurtarmak için bir sürü boşluktan kurtulabilirsiniz. Ayrıca, 188 değil 224 bayt sayıyorum.
HyperNeutrino

@HyperNeutrino haklısın - Satır sonlarını saydım, ancak önde gelen boşlukları saymadım. Buna göre düzenlendi (üzgünüm bu konuda yeniyim!)
Tombas

@Quentin delay (), Arduino'dan doğrudan kaldırılabileceğini umduğum bir işlevdir ... Yapamam! Dos.h kütüphanesinin bir parçası olarak geri döndü, anlıyorum.
Tombas

1

Excel VBA, 82 Bayt

Anonim VBE, sosisli sandviçinizi hücreye yemelisiniz ya da yememeniz gerekip gerekmediği hiçbir girdi almayan ve çıkmayan pencere işlevine anında erişir [A1].

d=Now+#0:4:27#:Do:[A1]=IIf(Now<d,"Not ready yet","Eat your hot dog"):DoEvents:Loop

1
İlginç Programı doğrudan Anında pencereden çalıştırabileceğinizi bilmiyordum
Stupid_Intern

1

Excel VBA 122 94 bayt

Sub p()
e=Now+#0:4:27#
Do
[a1]=IIf(Now<e,"Not ready yet","Eat your hot dog")
Loop
End Sub

Teşekkürler Taylor Scott


Bu çözümü biraz kesebilir, CDate("00:04:28")yoğunlaştırılabilir #0:4:27#, While ... Wenddöngünüzü bir Do .. LoopDöngü ile değiştirebilir ve ifyan iif
Taylor Scott

@TaylorScott Evet teşekkürler :)
Stupid_Intern

1
@TaylorScott msgbox için alternatif var mı?
Stupid_Intern

1
@TaylorScott ayrıca iif yan tümcesi msgbox ile çalışmıyor Neden ve # 0: 4: 27 # otomatik
biçimlendirir,

1
Aslında VBA'nın herhangi bir STDIN veya STDOUT'u olmadığı için, VBE hemen penceresi ve excel'deki
Taylor Scott

0

Javascript, 83 Bayt

d=Date.now()
while(1)alert(Date.now()-d<267000?"Not ready yet":"Eat your hot dog"))

Herkes için uyarı!


1
Değişebilirsin 267000için 267e3ve bir bayt kaydedin.
powelles

Sorudan: "Bir program yapmalısınız". Bu bir program veya işlev değil, bir parçacıktır.
Luke

7
Bu bir program.
programmer5000

1
new DateYerine kullanarak birkaç bayt Date.now(), ve kullanarak birkaç bayt kaydedebilirsinizfor(d=new Date;;)alert...
ETHproductions

2
alert () kullanıcı kapanıncaya ve program girişini yasaklayana kadar programı durdurur
dandavis

0

PERL, 76 bayt

$|++;
for(1..247){print'Not ready yet';sleep 1};print "Eat your hot dog";for(;;){}

6
82 bayt sayıyorum.
Oliver

0

PHP 88 bayt

<?$t=0;do{$t++;echo "Not ready yet";sleep(1);} while ($t<267);echo "Eat your hotdog";?>

1
“Bu süre geçtikten sonra Eat your hot dog, zamanın sonuna kadar çıktı almalısınız .” Yani ikinci mesajı da tekrarlamanız gerekiyor. Bu onun uzunluğunu artıracak, ama neyse ki kısaltmak için bir yer var for($t=267;$t--;sleep(1))echo"Not ready yet";for(;;)echo"Eat your hotdog";. Bu arada, kod çalıştırma php -rkoşulu kabul edilir, bu nedenle PHP etiketlerine (özellikle kapanış olana değil, bu durumda kötü alışkanlık olarak kabul edilir) gerek yoktur: “Kapanış ?>etiketi yalnızca PHP içeren dosyalardan çıkarılmalıdır ZORUNLU” - PSR-2 ).
manatwork

1
@manatwork test edilmedi: ($ t = 267 ;; uyku (1)) echo $ t -> 0? "Henüz hazır değil": "Hotdog'unu ye";
diynevala

İlginç olan, @diynevala. Belgelere göre, “PHP tamsayı tipinin sınırlarının ötesinde bir sayı ile karşılaşırsa, bunun yerine bir kayan nokta olarak yorumlanacaktır. Ayrıca, tamsayı tipinin sınırlarının ötesinde bir sayı ile sonuçlanan bir işlem, bunun yerine bir kayan nokta döndürür. ” - Tamsayı taşması , böylece durumun sonuna kadar doğru çalışması gerekir.
manatwork

@manatwork 267 saniye sonra bile çıkışlar arasında 1 saniye uyur.
diynevala

0

REXX, 82 bayt

do forever
if time(e)<267 then say 'Not ready yet'
else say 'Eat your hot dog'
end

0

Java 7, 152 bayt

void c(){for(long s=System.nanoTime(),e=s+(long)267e9;s<e;s=System.nanoTime())System.out.println("Not ready yet");System.out.print("Eat your hot dog");}

Açıklama:

void c(){                                 // Method
  for(                                    //  Loop
      long s=System.nanoTime(),           //    Current time in nanoseconds as start
      e=s+(long)267e9;                    //    End time (267 seconds later)
      s<e;                                //    Loop as long as we haven't reached the end time
      s=System.nanoTime())                //    After every iteration get the new current time in nanoseconds
    System.out.println("Not ready yet");  //   Print "Not ready yet" as long as we loop
                                          //  End of loop (implicit / single-line body)
  System.out.print("Eat your hot dog");   //  Print "Eat your hot dog"
}                                         // End of method

0

PHP, 68 bayt

for($t=268;$t--;sleep(1))echo$t?"Not ready yet←":"Eat your hot dog";

sürekli çıktı; ASCII 10 = LF'dir. İle çalıştırın -r.

bir defalık çıktı, 50 bayt

Not ready yet<?sleep(267);echo"←Eat your hot dog";

ASCII 13 = CR nerede . Dosyaya kaydedin veya çalıştırmak için boru kullanın.


0

RBX.Lua , 69 bayt

for i=1,267 do print"Not ready yet"Wait(1)end;print"Eat your hot dog"

RBX.Lua, ROBLOX.com'da kullanılan dildir . Lua 5.1'in yerleşik 'Bekle' işlevine sahip değiştirilmiş bir sürümüdür . Yukarıdaki kod oldukça açıklayıcı, aşağıda daha okunabilir bir versiyon:

for i = 1, 267 do
    print("Not ready yet");
    Wait(1);
end

print("Eat your hot dog");

Kod "Hazır köpeğinizi yiyin" çıktısını vermeden önce 267 saniye (4 dakika 27 saniye) sürekli STDOUT'a "henüz hazır değil" mesajını verir .


0

C - 130 bayt

Biraz daha kısa olabilir (128bayt), ama "Henüz hazır değil"

#include<stdio.h>
#include<unistd.h>
int main(){printf("Not ready yet");fflush(stdout);sleep(267);printf("\rEat your hot dog\n");}

Siteye Hoşgeldiniz! Atlayabilirsiniz #include<unistd.h>(bir uyarı verir, ancak yine de derlenir). Yaptığınız gibi yapmak (önceki mesajın üzerine yazmak) sizin hakkınızdır, ancak meydan okuma gerçekten istemediğinden, yapmamayı öneririm. Yapmanıza izin verir int main(){puts("Not ready yet");sleep(267);puts("Eat your hot dog");}(içermez, buna gerek yoktur) - ancak elbette bunu yapmak için hiçbir zorunluluk yoktur.
Dada

-1

VBA, 126 Bayt

sub hd()
Debug.print "Not ready Yet"
application.wait(now+timevalue(00:04:27))
Debug.print "Eat your hot dog"
end sub

1
Zorluk ne istediğini yapmaz.
Matthew Roh

-1

Python 2.7, 90 88 bayt

import time;exec"print'Not ready yet';time.sleep(1);"*267;while 1:print"Eat your hotdog"

Neden birisinin cevabımı -1'e getirdiğini anlamıyorum. some1 açıklayabilir mi? :(
Koishore Roy
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.