Masak aku hot dog! [Tutup]

13

Terkadang saya mendapati diri saya menginginkan hot dog (bukan kita semua) dan saya membuatnya. Sekarang untuk membuat hot dog, ini sangat sederhana.

1) Masukkan hot dog ke dalam air mendidih

2) Tunggu waktu tertentu (dirinci di bawah)

3) Makan hot dog setelah waktu berlalu.

Anda mungkin memperhatikan bahwa saya katakan

waktu tertentu (dirinci di bawah)

dan jadi saya akan detail.

Banyak merek yang berbeda memiliki banyak rekomendasi yang berbeda untuk berapa lama kita harus memasak hot dog, tetapi saya telah menemukan cara terbaik untuk memasaknya tepat 4 menit dan 27 detik (jangan tanya). Saya telah mencoba banyak timer yang berbeda, tetapi telah menemukan bahwa program yang terus-menerus menghasilkan adalah cara terbaik untuk menarik perhatian saya.

TUGAS ANDA

Anda harus membuat program yang akan menampilkan pesan Not ready yetuntuk tepat 4 menit dan 27 detik. Setelah waktu ini berlalu, Anda harus mengeluarkan Eat your hot doghingga akhir waktu. Tolong jangan mengambil input.

CARA MENANG

Anda harus menulis kode terpendek dalam byte untuk menang karena ini adalah

AdmBorkBork
sumber
2
Sangat terkait erat .
AdmBorkBork
1
Cukup dekat dengan Legen ... tunggu saja ... juga.
manatwork
Satu-satunya perbedaan adalah bahwa tantangan ini membutuhkan program untuk menunggu tertentu jumlah waktu
Kritixi Lithos
8
Haruskah kita mengeluarkan "Belum siap" terus menerus sampai interval selesai ( Not ready yet\nNot ready yet\n...) atau bisakah kita hanya mengeluarkannya satu kali dan mengubah output begitu 4m 27 selesai?
Kritixi Lithos
1
Ups, jawaban saya mengingatkan saya untuk memakan hot dog saya selama dua hari terakhir ...
Neil

Jawaban:

20

Gores, 93 78 byte

representasi gambar

Kode:

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

Dihasilkan oleh https://scratchblocks.github.io/ , yang tampaknya menjadi standar untuk Scratch scoring.

Cukup jelas. Saat program dimulai, ucapkan "Belum siap" hingga timer (yang dihitung dalam detik) lebih besar dari 267. Kemudian mulailah loop tak terbatas di mana dikatakanEat your hot dog .

Ini adalah output yang berkelanjutan, karena sayblok berjalan selamanya kecuali Anda say []atau saysesuatu yang lain.

Okx
sumber
7
Tidak perlu untuk selamanya, menghemat 8 byte. Itu membawanya ke 85 byte. Ini juga lebih pendek di Hñähñu (Mezquital Otomi) , bukan bahasa Inggris, dengan 8 byte lainnya (tanpa selamanya), menjadikannya hanya 77 byte.
Tim
@Tim terima kasih, tapi bendera hijau sepertinya tidak berfungsi.
Okx
Sebenarnya itu berasal dari terjemahan resmi oleh situs web, jadi itu adalah bug yang ia anggap salah.
Tim
@Tim Blok bendera hijau mungkin belum diimplementasikan (meskipun terjemahannya masih menerjemahkannya). Juga, tidak ada bahasa Hñähñu di Scratch resmi.
Erik the Outgolfer
14

Bash + coreutils, 50

timeout 267 yes Not ready yet
yes Eat your hot dog

Penjelasan

Cukup jelas saya pikir, tetapi untuk berjaga-jaga:

  • The yescoreutil terus berulang output parameter yang dikirimkan ke sana pada baris perintah
  • The timeoutcoreutil mengambil parameter timeout numerik diikuti oleh perintah. Perintah dijalankan, kemudian dibunuh setelah batas waktu yang ditentukan.
Trauma Digital
sumber
8

Operasi bahasa skrip Flashpoint , 67 byte

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

Simpan sebagai "hotdog.sqs"(atau apa pun) di folder misi dan panggil dengan [] exec "hotdog.sqs".

Penjelasan:

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

Saya telah mencoba banyak timer yang berbeda, tetapi telah menemukan bahwa program yang terus-menerus menghasilkan adalah cara terbaik untuk menarik perhatian saya.

Solusi ini harus sangat baik dengan menarik perhatian Anda, karena hintperintah memainkan efek suara kemelekatan setiap kali dipanggil, yang terdengar sangat menjengkelkan ketika suara simultan terpotong dalam lingkaran yang ketat.

Steadybox
sumber
7

JavaScript ES6, 76 byte

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

Penjelasan

Ini mencetak sesuatu ke konsol setiap 517 milidetik. Pada awalnya, ia mencetak 'Not ready yet'dan mengurangi penghitung. Setelah 517 iterasi ( = 517 * 517 = 267289 ms), ia mulai mencetak 'Eat your hot dog'.

Uji

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

Luke
sumber
tidak bisakah kamu melakukan settimeout dan menyimpan satu byte?
user1910744
setTimeouthanya menjalankan fungsi satu kali. Tantangannya adalah untuk terus menampilkan string, sehingga setTimeouttidak valid.
Luke
(--_?berfungsi sebagai ganti (--_>0? (-2)
dandavis
Sayangnya, itu tidak _akan dikurangi setiap kali sesuatu dicetak, jadi itu juga akan di bawah nol. Semua bilangan bulat negatif adalah benar, sehingga yang dicetak 'Not ready yet'juga (yang tidak kita inginkan).
Luke
7

Powershell, 85 71 59 byte

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

Mungkin ada cara yang jauh lebih baik, jadi kritik menyambut! Ini adalah usaha golf pertama saya :)

EDIT Turunkan keseluruhan 14 byte berkat AdmBorkBork! Dan tentu saja teknik yang perlu diingat!

EDIT 2 12 byte lagi hilang berkat Matt. Tidak menelepon menulis dua kali juga menghapus 2 spasi, sangat membantu!

Sinusoid
sumber
1
Selamat datang di PPCG! Senang melihat PowerSheller lain di sekitar. Sebuah golf yang mudah adalah menjalankan loop beberapa kali, 1..276|%{}bukan forloop dengan kenaikan. Lihat beberapa tips lain di halaman itu juga!
AdmBorkBork
String dikirim ke std out sebagai default. Tidak perlu menentukan dengan write-outputcmdlet.
Matt
7

Varian bahasa scripting GameMaker digunakan dalam mod Nuclear Throne Together, 68 byte

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

Penjelasan

  • Pengurai GML sangat memaafkan. Tanda titik koma dan tanda kurung adalah opsional, dan kompiler sama sekali tidak peduli tentang jarak Anda di luar aturan dasar ( 0whileparses as 0, whiledan dengan demikian tidak masalah)
  • Variabel bocor ke dalam konteks pelaksanaan kecuali dinyatakan melalui var(sama dengan JS).
  • Varian GML yang digunakan di NTT memperkenalkan waitoperator, yang mendorong "micro-thread" yang sedang menjalankan ke daftar untuk jumlah frame yang ditentukan, dilanjutkan setelah itu. Coroutines, pada dasarnya.

    Permainan ini memiliki clock 30fps, jadi 4m27s == 267s == 8010 frame.

  • trace () menampilkan string yang diberikan ke obrolan.

Jika videogame + mod terpasang, Anda dapat menyimpannya karena beberapa test.mod.gml, dan lakukan /loadmod testuntuk menjalankannya, membanjiri obrolan dengan "laporan status":

tangkapan layar

YellowAfterlife
sumber
3
Saya tidak yakin apa yang sedang terjadi di sini, tetapi saya menyetujuinya.
3

Python 2, 92 byte

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

Cobalah online!

Possum Mati
sumber
9
while 1:print'ENaott yroeuard yh oyte td o g'[time()-t<267::2]untuk 90 byte
ovs
@ovs while 1:print['Eat your hot dog','Not ready yet'][time()-t<267]juga akan menjadi 90 (sambil menjadi lebih jelas dan tidak mencetak ruang putih ekstra).
Jonathan Allan
3

TI-Basic, 75 byte

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

Penjelasan

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
pizzapants184
sumber
2

Batch, 99 byte

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

Batch tidak memiliki aritmatika tanggal sehingga batas waktu 267 detik sederhana tidak diizinkan yang terbaik yang dapat saya lakukan adalah batas waktu 267 satu detik.

Neil
sumber
2

C # 144 byte

()=>{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);}};

Program lengkap tidak digabungkan:

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();
    }
}

Sayangnya saya tidak bisa menggunakan ?:-operator karena saya belum menemukan cara untuk menghentikan kenaikan itanpa if.

raznagul
sumber
Cobalah sesuatu seperti if(i++<267e3)menyimpan beberapa byte.
adrianmp
1
@adrianmp: Itu tidak akan berhasil, karena itu masih akan bertambah isetiap milidetik. Dan begitu int.MaxValuetercapai, program akan crash atau mulai mencetak Not ready yetlagi.
raznagul
Saya telah berhasil melakukan ini dengan sangat menunda overflow (atau bahkan mengurangi dengan biaya beberapa byte). Saya "meminjam" beberapa ide dari jawaban Anda. Terima kasih!
adrianmp
2

C #, 174 172 147 byte

Disimpan 25 byte dengan "meminjam" beberapa ide dari jawaban C # raznagul dan menggabungkannya dengan jumlah trik nomor n pertama!

Disimpan 2 byte dengan menggunakan jumlah trik nomor n pertama karena kehilangan presisi 185 milidetik.

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);}}}

Program tidak digabungkan:

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);
        }
    }
}

Penjelasan:

Karena total waktu untuk menunggu dikodekan pada 267 detik, orang dapat menganggap angka ini sebagai jumlah teleskopik dari n angka pertama, n * (n + 1) / 2 , yang harus sama dengan 267000 milidetik.

Ini setara dengan n^2 + n - 534000 = 0 .

Dengan memecahkan persamaan orde kedua ini n1 = 730.2532073142067,, n2 = -n1. Tentu saja, hanya solusi positif yang diterima dan dapat diperkirakan 730 .

Total waktu dapat dihitung sebagai 730 * (730 + 1) / 2 = 266815 milliseconds. Kesalahannya adalah 185 milidetik , tidak terlihat oleh manusia. Kode sekarang akan membuat utas utama (dan hanya) tidur selama 1 milidetik, 2 milidetik dan seterusnya hingga 730, sehingga total periode tidur adalah ~ 267 detik.

Memperbarui:

Logika program dapat disederhanakan lebih lanjut - pada dasarnya perlu untuk terus menampilkan pesan dan menunggu waktu yang ditentukan sampai beralih ke pesan kedua.

Pesan dapat diubah dengan menggunakan operator ternary untuk memeriksa berlalunya waktu yang ditentukan (~ 267 detik).

Aspek waktu dikontrol dengan menggunakan penghitung yang meningkat dan menjeda utas eksekusi.

Namun, karena variabel penghitung terus meningkat tanpa batas tanpa syarat untuk memeriksa nilainya, orang dapat mengharapkan bilangan bulat bilangan bulat di beberapa titik, ketika pesan kembali ke Not ready yet.

Suatu kondisi dapat ditambahkan untuk mendeteksi dan mengurangi masalah dengan menetapkan nilai positif lebih besar dari 730 ketika terjadi overflow - seperti i=i<1?731:idi dalam forloop. Sayangnya, itu datang dengan biaya 11 byte tambahan:

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);}}}

Kuncinya di sini adalah menggunakan nilai penghitung dalam milidetik untuk sangat menunda momen overflow.

Waktu hingga overflow dapat dihitung sesuai dengan sum(1..n)rumus, di mana n = nilai integer maksimum yang ditandatangani 32-bit dalam C # (dan kerangka .NET) atau 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

Setelah 73 juta tahun , mungkin tidak masalah jika muncul kesalahan dalam sistem - hot dog, OP yang lapar, dan mungkin ras manusia itu sendiri sudah lama hilang.


Versi sebelumnya (172 byte):

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");}}}

Program tidak digabungkan:

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");
        }
    }
}

Versi sebelumnya (174 byte):

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");}}}

Program tidak digabungkan:

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");
        }
    }
}

Atau, program Not ready yethanya dapat menampilkan sekali, tunggu sampai waktu yang ditentukan selesai dan kemudian outputEat your hot dog dengan menimpa pesan sebelumnya sementara beberapa byte lebih pendek:

C #, 145 byte

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

Program tidak digabungkan:

namespace System
{
    class P
    {
        static void Main()
        {
            Console.Write("Not ready yet");
            Threading.Thread.Sleep(267000);
            Console.Write("\rEat your hot dog");
        }
    }
}
adrianmp
sumber
Itu keren. Saya akan memberi Anda +1, jika saya belum melakukannya. ;)
raznagul
2

Ruby, 80 71 67 Bytes

Sunting: Berkat manatwork karena mencukur 13 byte penuh

267.times{puts"Not ready yet"
sleep 1}
loop{puts"Eat your hot dog"}
BRFNGRNBWS
sumber
Mengapa tidak 267.times{…}?
manatwork
Wow terima kasih. Saya merasa bodoh sekarang.
BRFNGRNBWS
Sepertinya Anda menghitung dengan pemisah garis CR / LF. Karena Ruby hanya mengizinkan LF, kami biasa menghitungnya saja. Dan tidak perlu untuk istirahat setelah {. Itu akan menghasilkan 67 byte.
manatwork
Saya seorang pemula di Ruby, dan total noob di kode golf, jadi terima kasih atas semua bantuannya!
BRFNGRNBWS
Jika Anda melewatkannya, ada koleksi Tips untuk bermain golf di Ruby untuk membantu pemula.
manatwork
2

05AB1E, 43 29 28 byte (Terima kasih kepada Adnan)

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

Tidak berfungsi online, karena habis waktu. Offline itu akan berfungsi.

267F: Loop 267 kali

…€–Žä‡«ª: String pertama dengan kamus

w,: Tunggu sebentar dan cetak

}[: Akhiri jika loop dan mulai infinite loop

“Eat€ž…ß‹·“: String kedua dengan kamus

,: Cetak

P. Knops
sumber
Terima kasih, klien saya melihat bahwa kode ini pendek dan berfungsi offline - sekarang dia ingin saya menulis situs webnya menggunakan bahasa ini. . .
Pascal Raszyk
Ini bekerja online, tetapi tidak pada penerjemah yang diberikan online. Anda dapat melihatnya sendiri di sini
P. Knops
Aku tahu. Itu adalah lelucon: D.
Pascal Raszyk
1
Jawaban terbaik adalah dengan cara biasa: D
P. Knops
“NotŽä‡«“dapat digantikan oleh…€–Žä‡«ª
Adnan
1

Python, 115 byte

Pertama kali saya mencoba sesuatu seperti ini. Saya juga pemula jadi begini dalam Python 3 untuk 115 byte:

import time
for i in range(267):
    time.sleep(1)
    print("Not ready yet")
while 1:
    print("Eat your hotdog")
Ephraim Ruttenberg
sumber
3
Selamat datang di situs ini! Tujuan dari kode golf adalah menulis kode sesingkat mungkin dalam bahasa Anda. Ada beberapa hal yang dapat ditingkatkan dan tidak ada salahnya untuk melihat pemenang Python saat ini untuk beberapa tips!
Hapus time.sleep (1) - simpan beberapa byte
Pascal Raszyk
@praszyk, maka forperulangan akan selesai lebih range(267)cepat dari 4 menit 27 detik dan solusi menjadi tidak valid. ☹
manatwork
1

JavaScript Blok Editor untuk micro: bit, 90 Bytes

enter image description here

Kode:

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

Anda bisa mencobanya di sini.

Terinspirasi oleh jawaban Scratch untuk menyelesaikan tugas dengan micro: bit saya. Satu-satunya Masalah adalah bahwa pause-blok dimulai setelah mengeluarkan string pertama jadi saya perlu mengurangi jeda dengan 13s.

Catatan: Editor Blok Microsoft lama untuk mikro: bit lebih pendek untuk membuat tetapi menghasilkan lebih banyak kode sehingga sebenarnya lebih lama.

izlin
sumber
1

Atas dasar bahwa OP ingin hotdog terus menerus, sampai akhir waktu - yang saya mengerti dari frasa:

Setelah waktu ini berlalu, Anda harus mengeluarkan Eat hot dog Anda sampai akhir waktu.

Ini jawaban saya:

C ++, 187 188 224 167 byte

Spasi dihapus (167 byte):

#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;}

formulir yang dapat dibaca (224 byte):

#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;
}

Jika, di sisi lain, OP menikmati hot dognya dalam jumlah sedang, maka ini adalah jawaban saya:

Spasi dihapus (158 byte):

#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;}

formulir yang dapat dibaca (198 byte):

#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;
}
Tombas
sumber
Apa delay?
Quentin
OK itu fungsi lama. Digantikan dengan Sleep (1000)
Tombas
Anda dapat menyingkirkan banyak spasi untuk menghemat byte. Juga, saya menghitung 224 byte, bukan 188.
HyperNeutrino
@HyperNeutrino Anda benar - saya menghitung akhir baris tetapi tidak memimpin spasi putih. Diedit sesuai (maaf saya baru dalam hal ini!)
Tombas
@Quentin delay () adalah fungsi yang saya harap dapat diangkat langsung dari Arduino ... ternyata saya tidak bisa! Itu memang ada kembali pada hari sebagai bagian dari perpustakaan dos.h, saya mengerti.
Tombas
1

Excel VBA, 82 Bytes

VBE Anonim segera menjalankan fungsi jendela yang tidak mengambil input dan output apakah Anda harus makan hot dog Anda ke sel [A1].

d=Now+#0:4:27#:Do:[A1]=IIf(Now<d,"Not ready yet","Eat your hot dog"):DoEvents:Loop
Taylor Scott
sumber
1
Menarik, saya tidak tahu Anda bisa menjalankan program langsung dari jendela langsung
Stupid_Intern
1

Excel VBA 122 94 byte

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

Terima kasih Taylor Scott

Stupid_Intern
sumber
Anda dapat mengurangi solusi ini sedikit, CDate("00:04:28")dapat dikondensasi #0:4:27#, Anda dapat mengganti While ... Wendloop Anda dengan Do .. LoopLoop dan Anda dapat mengganti ifklausa Anda dengan iifklausa
Taylor Scott
@TaylorScott Ya terima kasih :)
Stupid_Intern
1
@TaylorScott apakah ada alternatif untuk kotak pesan?
Stupid_Intern
1
@TaylorScott juga jika klausa tidak berfungsi dengan kotak pesan. Saya tidak yakin mengapa dan # 0: 4: 27 # autoformats ke tanggal bukan waktu Anda bebas untuk mengedit jawaban jika Anda mau
Stupid_Intern
1
Sebenarnya karena VBA tidak memiliki STDIN atau STDOUT, ada banyak opsi yang tersedia untuk Anda, seperti VBE jendela langsung dan ke sel dalam excel, Anda dapat melihat lebih lanjut tentang ini di codegolf.stackexchange.com/a/107216/ 61846
Taylor Scott
0

Javascript, 83 Bytes

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

Alertz untuk semua orang!


sumber
1
Anda dapat mengubah 267000ke 267e3dan menyimpan byte.
powelles
Dari pertanyaan: "Anda harus membuat program". Ini bukan program atau fungsi, tetapi cuplikan.
Luke
7
Ini adalah sebuah program.
programmer5000
1
Anda dapat menyimpan beberapa byte dengan menggunakan new Datemenggantikan Date.now(), dan beberapa byte lainnya dengan menggunakanfor(d=new Date;;)alert...
ETHproduk
2
alert () menghentikan program sampai pengguna menutup dan larangan melarang input
dandavis
0

PERL, 76 byte

$|++;
for(1..247){print'Not ready yet';sleep 1};print "Eat your hot dog";for(;;){}
Elang
sumber
6
Saya menghitung 82 byte.
Oliver
0

PHP 88 byte

<?$t=0;do{$t++;echo "Not ready yet";sleep(1);} while ($t<267);echo "Eat your hotdog";?>
Serigala
sumber
1
"Setelah waktu ini berlalu, kamu harus mengeluarkan Eat your hot dogsampai akhir zaman." Jadi, Anda harus mengulangi pesan kedua juga. Yang akan menambah panjangnya, tapi untungnya ada tempat untuk mempersingkat: for($t=267;$t--;sleep(1))echo"Not ready yet";for(;;)echo"Eat your hotdog";. Ngomong-ngomong, menjalankan kode dengan php -rditerima, jadi tidak perlu untuk tag PHP (terutama bukan yang penutup, yang dianggap kebiasaan buruk dalam kasus itu: " ?>Tag penutup HARUS dihilangkan dari file yang hanya mengandung PHP" - PSR-2 ).
manatwork
1
@manatwork untested: for($t=267;;sleep(1))echo $t-->0?"Not ready yet":"Eat your hotdog";
diynevala
Yang menarik, @diynevala. Menurut dokumentasi, “Jika PHP menemukan angka di luar batas tipe integer, itu akan ditafsirkan sebagai float. Juga, operasi yang menghasilkan angka di luar batas tipe integer akan mengembalikan float sebagai gantinya. " - Integer overflow , sehingga kondisi tersebut harus berfungsi dengan benar hingga akhir waktu.
manatwork
@manatwork Juga tidur selama 1 detik di antara keluaran bahkan setelah 267 detik.
diynevala
0

REXX, 82 byte

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

Java 7, 152 byte

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");}

Penjelasan:

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
Kevin Cruijssen
sumber
0

PHP, 68 byte

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

output terus menerus; adalah ASCII 10 = LF. Jalankan dengan -r.

output satu kali, 50 byte

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

dimana ASCII 13 = CR. Simpan ke file atau gunakan perpipaan untuk menjalankan.

Titus
sumber
0

RBX.Lua , 69 byte

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

RBX.Lua adalah bahasa yang digunakan di ROBLOX.com . Ini adalah versi modifikasi dari Lua 5.1 yang menampilkan fungsi 'Tunggu' bawaan. Kode di atas cukup jelas, di bawah ini adalah versi yang lebih mudah dibaca:

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

print("Eat your hot dog");

Kode ini menampilkan "Belum siap" terus menerus ke dalam STDOUT , selama 267 detik (4 menit 27 detik) sebelum mengeluarkan "Makan hot dog Anda".

Josh
sumber
0

C - 130 byte

Mungkin sedikit lebih pendek (128 byte), tapi saya pikir lebih baik untuk menimpa "Belum siap"

#include<stdio.h>
#include<unistd.h>
int main(){printf("Not ready yet");fflush(stdout);sleep(267);printf("\rEat your hot dog\n");}
Kepala banger
sumber
Selamat datang di situs ini! Anda dapat menghilangkan #include<unistd.h>(itu akan memancarkan peringatan tetapi masih mengkompilasi). Melakukan seperti yang Anda lakukan (menimpa pesan sebelumnya) adalah hak Anda, tetapi karena tantangannya tidak benar-benar memintanya, saya sarankan untuk tidak melakukannya. Ini akan memungkinkan Anda untuk melakukan int main(){puts("Not ready yet");sleep(267);puts("Eat your hot dog");}(tanpa menyertakan, mereka tidak diperlukan) - tetapi tidak ada kewajiban untuk melakukannya tentu saja.
Dada
-1

VBA, 126 Bytes

sub hd()
Debug.print "Not ready Yet"
application.wait(now+timevalue(00:04:27))
Debug.print "Eat your hot dog"
end sub
Sivaprasath Vadivel
sumber
1
Tidak melakukan apa yang diminta tantangan.
Matius Roh
-1

Python 2.7, 90 88 byte

import time;exec"print'Not ready yet';time.sleep(1);"*267;while 1:print"Eat your hotdog"
Koishore Roy
sumber
I don't get why someone -1'd my answer. can some1 explain? :(
Koishore Roy