Nấu cho tôi một con chó nóng! [đóng cửa]


13

Đôi khi tôi thấy mình muốn một con chó nóng (không phải tất cả chúng ta) và vì vậy tôi làm một cái. Bây giờ để làm một con chó nóng, nó rất đơn giản.

1) Cho chó nóng vào nước sôi

2) Đợi một khoảng thời gian nhất định (chi tiết bên dưới)

3) Ăn xúc xích một khi thời gian đã trôi qua.

Bạn có thể nhận thấy rằng tôi đã nói

thời gian nhất định (chi tiết bên dưới)

và vì vậy tôi sẽ chi tiết.

Nhiều thương hiệu khác nhau có nhiều khuyến nghị khác nhau về thời gian chúng ta nên nấu những con chó nóng, nhưng tôi thấy tốt nhất là nấu chúng trong đúng 4 phút và 27 giây (đừng hỏi). Tôi đã thử nhiều bộ tính giờ khác nhau, nhưng thấy rằng một chương trình liên tục xuất ra là cách tốt nhất để thu hút sự chú ý của tôi.

NHIỆM VỤ CỦA BẠN

Bạn phải tạo một chương trình sẽ xuất thông báo Not ready yettrong đúng 4 phút và 27 giây. Sau khi hết thời gian này, bạn nên xuất Eat your hot dogcho đến hết thời gian. Xin đừng lấy bất kỳ đầu vào.

CÁCH THẮNG

Bạn phải viết mã ngắn nhất bằng byte để giành chiến thắng vì đây là



1
Khá gần với Legen, hãy chờ nó .
manatwork

Sự khác biệt duy nhất là thử thách này đòi hỏi chương trình phải chờ một khoảng thời gian cụ thể
Kritixi Lithos

8
Chúng ta phải xuất ra "Chưa sẵn sàng" liên tục nhiều lần cho đến khi khoảng thời gian kết thúc ( Not ready yet\nNot ready yet\n...) hoặc chúng ta có thể chỉ xuất nó một lần và thay đổi đầu ra sau khi 4m 27s kết thúc không?
Kritixi Lithos

1
Rất tiếc, câu trả lời của tôi đã nhắc nhở tôi ăn con chó nóng của tôi trong hai ngày qua ...
Neil

Câu trả lời:


20

Cào, 93 78 byte

đại diện hình ảnh

Mã số:

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

Được tạo bởi https://scratchblocks.github.io/ , dường như là tiêu chuẩn để chấm điểm Scratch.

Khá tự giải thích. Khi chương trình bắt đầu, hãy nói "Chưa sẵn sàng" cho đến khi bộ đếm thời gian (được tính bằng giây) lớn hơn 267. Sau đó bắt đầu một vòng lặp vô hạn nơi nó nói Eat your hot dog.

đầu ra liên tục, bởi vì saykhối chạy mãi mãi trừ khi bạn say []hoặc saycái gì khác.


7
Không cần mãi mãi, tiết kiệm 8 byte. Điều đó đưa nó đến 85 byte. Nó cũng ngắn hơn trong Hñähñu (Mezquital Otomi) , thay vì tiếng Anh, bằng 8 byte khác (không có mãi mãi), đưa nó chỉ còn 77 byte.
Tim


@Tim cảm ơn, nhưng cờ xanh dường như không hoạt động.
Okx

Trên thực tế, điều đó xuất phát từ bản dịch chính thức của trang web, do đó, đây là một lỗi mà nó làm cho sai.
Tim

@Tim Khối cờ xanh có thể chưa được triển khai (mặc dù bản dịch vẫn dịch nó). Ngoài ra, không có ngôn ngữ Hñähñu trong Scratch chính thức.
Erik the Outgolfer

14

Bash + coreutils, 50

timeout 267 yes Not ready yet
yes Eat your hot dog

Giải trình

Tôi tự giải thích một cách công bằng, nhưng chỉ trong trường hợp:

  • Các yescoreutil liên tục lặp đi lặp lại kết quả đầu ra bất kỳ thông số được truyền cho nó trên dòng lệnh
  • Các timeoutcoreutil mất một tham số thời gian chờ số tiếp theo là một lệnh. Lệnh được chạy, sau đó bị giết sau khi hết thời gian chỉ định.

8

Hoạt động ngôn ngữ kịch bản Flashpoint , 67 byte

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

Lưu dưới dạng "hotdog.sqs"(hoặc bất cứ điều gì) trong thư mục nhiệm vụ và gọi với [] exec "hotdog.sqs".

Giải trình:

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

Tôi đã thử nhiều bộ tính giờ khác nhau, nhưng thấy rằng một chương trình liên tục xuất ra là cách tốt nhất để thu hút sự chú ý của tôi.

Giải pháp này đặc biệt tốt với việc thu hút sự chú ý của bạn, vì hintlệnh phát ra hiệu ứng âm thanh đeo bám mỗi khi được gọi, nghe có vẻ rất khó chịu khi âm thanh đồng thời bị cắt trong một vòng lặp chặt chẽ.


7

JavaScript ES6, 76 byte

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

Giải trình

Điều này in một cái gì đó lên bàn điều khiển cứ sau 517 mili giây. Lúc đầu, nó in 'Not ready yet'và giảm bộ đếm. Sau 517 lần lặp ( = 517 * 517 = 267289 ms), nó bắt đầu in 'Eat your hot dog'.

Kiểm tra

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


bạn không thể giải quyết và tiết kiệm một byte?
dùng1910744

setTimeoutchỉ thực hiện chức năng một lần. Thách thức là liên tục xuất ra một chuỗi, vì vậy setTimeoutsẽ không hợp lệ.
Luke

(--_?hoạt động thay vì (--_>0? (-2)
dandavis

Thật không may, nó sẽ không _bị giảm mỗi khi một cái gì đó được in, vì vậy nó cũng sẽ xuống dưới 0. Tất cả các số nguyên âm là trung thực, vì vậy những số nguyên cũng sẽ in 'Not ready yet'(đó không phải là những gì chúng ta muốn).
Lu-ca

7

Powershell, 85 71 59 byte

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

Có lẽ có một cách tốt hơn nhiều, vì vậy những lời chỉ trích hoan nghênh! Đây là lần thử golf đầu tiên của tôi :)

EDIT Xuống toàn bộ 14 byte nhờ vào admBorkBork! Và chắc chắn là một kỹ thuật cần nhớ!

EDIT 2 12 byte khác đã biến mất nhờ Matt. Không gọi viết hai lần cũng xóa 2 chỗ trống, rất hữu ích!


1
Chào mừng đến với PPCG! Rất vui khi thấy một PowerSheller khác xung quanh. Một môn đánh gôn dễ dàng là chạy một vòng lặp với số lần cố định 1..276|%{}thay vì forvòng lặp có gia số. Kiểm tra một số lời khuyên khác trên trang đó, quá!
admBorkBork

Chuỗi được gửi đến std out được mặc định. Không cần chỉ định với write-outputlệnh ghép ngắn.
Matt

7

Biến thể ngôn ngữ kịch bản của GameMaker được sử dụng trong mod Nucle Throne Together, 68 byte

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

Giải trình

  • Trình phân tích cú pháp của GML rất dễ tha thứ. Dấu chấm phẩy và dấu ngoặc đơn là tùy chọn và trình biên dịch hoàn toàn không quan tâm đến khoảng cách của bạn bên ngoài các quy tắc cơ bản ( 0whilephân tích như 0, whilevà do đó là ok)
  • Các biến bị rò rỉ vào bối cảnh thực thi trừ khi được khai báo qua var(giống như với JS).
  • Biến thể GML được sử dụng trong NTT giới thiệu một waittoán tử, nó đẩy "vi luồng" thực thi vào một danh sách cho số lượng khung đã chỉ định, tiếp tục lại sau đó. Quân đoàn, về cơ bản.

    Trò chơi có tốc độ 30 khung hình / giây, vì vậy 4m27s == 267s == 8010 khung hình.

  • dấu vết () xuất chuỗi đã cho vào trò chuyện.

Nếu bạn đã cài đặt videogame + mod, bạn có thể lưu nó dưới dạng một số test.mod.gml/loadmod testthực hiện để thực thi nó, làm ngập cuộc trò chuyện với "báo cáo trạng thái":

ảnh chụp màn hình


3
Tôi không chắc chắn chính xác những gì đang xảy ra ở đây, nhưng tôi chấp thuận.

3

Python 2, 92 byte

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

Hãy thử trực tuyến!


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

@ovs while 1:print['Eat your hot dog','Not ready yet'][time()-t<267]cũng sẽ là 90 (trong khi rõ ràng hơn và không in thêm khoảng trắng).
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

Giải trình

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

Mẻ, 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 không có số học ngày vì vậy thời gian chờ đơn giản là 267 giây không được phép, điều tốt nhất tôi có thể làm là thời gian chờ là một giây.


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

Chương trình đầy đủ:

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

Thật không may, tôi không thể sử dụng trình điều khiển ?:vì tôi không tìm thấy cách nào để ngừng tăng imà không có if.


Hãy thử một cái gì đó như if(i++<267e3)để lưu một vài byte.
adrianmp

1
@adrianmp: Điều đó sẽ không hoạt động, vì điều đó vẫn sẽ tăng lên imỗi mili giây. Và một khi int.MaxValueđạt được, chương trình sẽ bị sập hoặc bắt đầu in Not ready yetlại.
raznagul

Tôi đã xoay sở để khắc phục điều này bằng cách trì hoãn rất nhiều việc tràn (hoặc thậm chí giảm thiểu nó với chi phí của một vài byte). Tôi đã "mượn" một số ý tưởng từ câu trả lời của bạn. Cảm ơn!
adrianmp

2

C #, 174 172 147 byte

Đã lưu 25 byte bằng cách "mượn" một số ý tưởng từ câu trả lời C # của raznagul và hợp nhất chúng với tổng số n số đầu tiên lừa!

Đã lưu 2 byte bằng cách sử dụng tổng số n số đầu tiên để mất độ chính xác 185 mili giây.

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

Chương trình Ungolfed:

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

Giải trình:

Vì tổng thời gian chờ đợi được mã hóa cứng ở mức 267 giây, nên người ta có thể coi con số này là tổng của kính thiên văn của n số tự nhiên đầu tiên n * (n + 1) / 2, phải bằng 267000 mili giây.

Điều này tương đương với n^2 + n - 534000 = 0.

Bằng cách giải phương trình bậc hai này n1 = 730.2532073142067, n2 = -n1. Tất nhiên, chỉ có giải pháp tích cực được chấp nhận và có thể xấp xỉ là 730 .

Tổng thời gian có thể được tính là 730 * (730 + 1) / 2 = 266815 milliseconds. Sự không chính xác là 185 mili giây , không thể chấp nhận được đối với con người. Mã bây giờ sẽ làm cho luồng chính (và duy nhất) ngủ trong 1 mili giây, 2 mili giây và cứ như vậy lên đến 730, vì vậy tổng thời gian ngủ là ~ 267 giây.

Cập nhật:

Logic của chương trình có thể được đơn giản hóa hơn nữa - về cơ bản, nó cần liên tục hiển thị một tin nhắn và đợi một thời gian xác định cho đến khi chuyển sang tin nhắn thứ hai.

Tin nhắn có thể được thay đổi bằng cách sử dụng toán tử ternary để kiểm tra thời gian đã chỉ định (~ 267 giây).

Khía cạnh thời gian được kiểm soát bằng cách sử dụng bộ đếm tăng dần và tạm dừng luồng thực thi.

Tuy nhiên, do biến đếm tiếp tục tăng vô thời hạn mà không có bất kỳ điều kiện nào để kiểm tra giá trị của nó, nên người ta có thể mong đợi một số nguyên tràn vào một thời điểm nào đó, khi thông báo trở lại Not ready yet.

Một điều kiện có thể được thêm vào để phát hiện và giảm thiểu vấn đề bằng cách gán giá trị dương lớn hơn 730 khi xảy ra tràn - như i=i<1?731:ibên trong forvòng lặp. Đáng buồn thay, nó có giá 11 byte bổ sung:

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

Chìa khóa ở đây là sử dụng giá trị truy cập bằng mili giây để trì hoãn rất nhiều thời điểm tràn.

Thời gian cho đến khi tràn có thể được tính theo sum(1..n)công thức, trong đó n = giá trị nguyên được ký tối đa 32 bit trong C # (và khung .NET) hoặc 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

Sau 73 triệu năm , có thể không có vấn đề gì nếu một trục trặc trong hệ thống xuất hiện - hot dog, OP đói và có thể chính loài người đã biến mất từ ​​lâu.


Phiên bản trước (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");}}}

Chương trình Ungolfed:

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

Phiên bản trước (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");}}}

Chương trình Ungolfed:

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

Ngoài ra, chương trình chỉ có thể hiển thị Not ready yetmột lần, đợi cho đến khi hết thời gian quy định rồi xuất ra Eat your hot dogbằng cách ghi đè thông báo trước đó trong khi ngắn hơn một vài byte:

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

Chương trình Ungolfed:

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

Thật tuyệt. Tôi sẽ cho bạn +1, nếu tôi chưa có. ;)
raznagul

2

Ruby, 80 71 67 byte

Chỉnh sửa: Nhờ manatwork để cạo 13 byte toàn bộ

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

Tại sao không 267.times{…}?
manatwork

Ồ cảm ơn nhé. Tôi cảm thấy ngớ ngẩn bây giờ.
BRFNGRNBWS

Có vẻ như bạn đang đếm với các dấu tách dòng CR / LF. Vì Ruby chỉ cho phép LF, chúng tôi thường chỉ tính điều đó. Và không cần phải ngắt dòng sau {. Điều đó sẽ dẫn đến 67 byte.
manatwork

Tôi là người mới bắt đầu tại Ruby và hoàn toàn không chơi golf, vì vậy cảm ơn vì tất cả sự giúp đỡ!
BRFNGRNBWS

Trong trường hợp bạn bỏ lỡ nó, có một bộ Mẹo chơi golf trong Ruby để giúp người mới bắt đầu.
manatwork

2

05AB1E, 43 29 28 byte (Cảm ơn Adnan)

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

Không hoạt động trực tuyến, vì nó hết thời gian. Ngoại tuyến nó sẽ hoạt động.

267F: Vòng lặp 267 lần

…€–Žä‡«ª: Chuỗi đầu tiên với từ điển

w,: Đợi một giây và in

}[: Kết thúc vòng lặp if và bắt đầu vòng lặp vô hạn

“Eat€ž…ß‹·“: Chuỗi thứ hai với từ điển

,: In


Cảm ơn, khách hàng của tôi đã thấy rằng mã này ngắn và hoạt động ngoại tuyến - bây giờ anh ấy muốn tôi viết trang web của mình bằng ngôn ngữ này. . .
Pascal Ras:

Nó hoạt động trực tuyến, nhưng không phải trên trình thông dịch được cung cấp trực tuyến. Bạn có thể tự mình xem tại đây
P. Knops

Tôi biết. Đó là một trò đùa: D.
Pascal Ras:

1
Tốt nhất là chỉ trả lời theo cách thông thường: D
P. Knops

“NotŽä‡«“có thể được thay thế bởi…€–Žä‡«ª
Adnan

1

Python, 115 byte

Lần đầu tiên tôi thử một cái gì đó như thế này. Tôi cũng là người mới bắt đầu nên ở đây nó có trong Python 3 với 115 byte:

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

3
Chào mừng đến với trang web! Mục đích của mã golf là viết mã ngắn nhất có thể bằng ngôn ngữ của bạn. Có một vài điều có thể được cải thiện và không thể nhìn vào người chiến thắng Python hiện tại để biết một số mẹo!

Xóa thời gian. Ngủ (1) - tiết kiệm một vài byte
Pascal Ras:

@prashot, sau đó forsẽ kết thúc vòng lặp range(267)nhanh hơn 4 phút 27 giây và giải pháp trở nên không hợp lệ. ☹
manatwork

1

Trình chỉnh sửa khối JavaScript cho micro: bit, 90 byte

nhập mô tả hình ảnh ở đây

Mật mã:

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

Bạn có thể thử nó ở đây.

Lấy cảm hứng từ câu trả lời Scratch để giải quyết nhiệm vụ với micro: bit của tôi. Vấn đề duy nhất là khối tạm dừng bắt đầu sau khi xuất chuỗi đầu tiên nên tôi cần giảm thời gian tạm dừng xuống 13 giây.

Lưu ý: Microsoft Block Editor cũ cho micro: bit ngắn hơn để tạo nhưng tạo ra nhiều mã hơn nên trên thực tế dài hơn.


1

Trên cơ sở OP muốn liên tục các hotdog, cho đến hết thời gian - điều mà tôi hiểu từ cụm từ:

Sau khi hết thời gian này, bạn nên xuất ra Ăn con chó nóng của bạn cho đến khi hết thời gian.

Đây là câu trả lời của tôi:

C ++, 187 188 224 167 byte

Khoảng trắng bị xóa (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;}

dạng có thể đọc được (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;
}

Mặt khác, nếu OP thích những chú chó nóng bỏng của mình trong chừng mực, thì đây là câu trả lời của tôi:

Khoảng trắng bị xóa (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;}

dạng có thể đọc được (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;
}

Có gì delay?
Quentin

OK đó là một chức năng cũ. Thay thế bằng Ngủ (1000)
Tombas

Bạn có thể thoát khỏi một loạt các khoảng trắng để lưu byte. Ngoài ra, tôi đếm được 224 byte, không phải 188.
HyperNeutrino

@HyperNeutrino bạn nói đúng - Tôi đã tính các kết thúc dòng nhưng không dẫn đầu khoảng trắng. Được chỉnh sửa phù hợp (xin lỗi tôi mới biết điều này!)
Tombas

@Quentin delay () là một chức năng mà tôi hy vọng có thể được gỡ bỏ trực tiếp từ Arduino ... hóa ra là tôi không thể! Nó đã tồn tại trở lại vào ban ngày như là một phần của thư viện dos.h, tôi hiểu.
Lăng mộ

1

VBA Excel, 82 byte

VBE ẩn danh chức năng cửa sổ không có đầu vào và đầu ra cho dù bạn có nên ăn con chó nóng của mình đến tế bào hay không [A1].

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

1
Thú vị Tôi không biết bạn có thể chạy chương trình trực tiếp từ cửa sổ Ngay lập tức
St ngu_Itern

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

Cảm ơn Taylor Scott


Bạn có thể cắt giảm giải pháp này khá nhiều, CDate("00:04:28")có thể cô đọng lại #0:4:27#, bạn có thể thay thế While ... Wendvòng lặp của mình bằng Do .. LoopVòng lặp và bạn có thể thay thế ifmệnh đề của mình bằng một iifmệnh đề
Taylor Scott

@TaylorScott Có, cảm ơn :)
St ngu_Itern

1
@TaylorScott có cách nào thay thế cho hộp thư không?
St ngu_Itern

1
@TaylorScott cũng là mệnh đề iif không hoạt động với hộp thư đến. Tôi không chắc tại sao và # 0: 4: 27 # tự động định dạng đến một ngày không phải lúc nào bạn có thể tự do chỉnh sửa câu trả lời nếu bạn muốn
Stool_I INTERN

1
Trên thực tế vì VBA không có bất kỳ STDIN hoặc STDOUT nào, có rất nhiều tùy chọn có sẵn cho bạn, chẳng hạn như cửa sổ VBE ngay lập tức và cho các ô trong excel, bạn có thể xem thêm về điều này tại codegolf.stackexchange.com/a/107216/ 61846
Taylor Scott

0

Javascript, 83 byte

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

Alertz cho mọi người!


1
Bạn có thể thay đổi 267000để 267e3và tiết kiệm một byte.
powelles

Từ câu hỏi: "Bạn phải làm một chương trình". Đây không phải là một chương trình hay chức năng, mà là một đoạn.
Luke

7
Đây là một chương trình.
lập trình

1
Bạn có thể lưu một vài byte bằng cách sử dụng new Datethay thế Date.now()và một vài byte khác bằng cách sử dụngfor(d=new Date;;)alert...
ETHproductions

2
alert () tạm dừng chương trình cho đến khi người dùng đóng cửa và thử thách cấm nhập liệu
dandavis

0

PERL, 76 byte

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

6
Tôi đếm 82 byte.
Oliver

0

PHP 88 byte

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

1
Sau khi hết thời gian, bạn nên xuất Eat your hot dogcho đến hết thời gian. Vì vậy, bạn cũng phải lặp lại thông điệp thứ 2. Điều đó sẽ thêm vào chiều dài của nó, nhưng may mắn thay, có nơi để rút ngắn nó : for($t=267;$t--;sleep(1))echo"Not ready yet";for(;;)echo"Eat your hotdog";. Nhân tiện, việc chạy mã với php -rđược chấp nhận, do đó không cần các thẻ PHP (đặc biệt không phải là mã đóng, được coi là thói quen xấu trong trường hợp đó: ?>Thẻ Thẻ đóng PHẢI được bỏ qua khỏi các tệp chỉ chứa PHP PHP - PSR-2 ).
manatwork

1
@manatwork chưa được kiểm tra: for ($ t = 267 ;; ngủ (1)) echo $ t -> 0? "Chưa sẵn sàng": "Ăn hotdog của bạn";
diynevala

Thú vị một, @diynevala. Theo tài liệu, thì nếu PHP gặp một số vượt quá giới hạn của kiểu số nguyên, thì nó sẽ được hiểu là một số float thay thế. Ngoài ra, một hoạt động dẫn đến một số nằm ngoài giới hạn của loại số nguyên sẽ trả về một số float thay vào đó. Lít - tràn số nguyên , do đó điều kiện sẽ hoạt động chính xác cho đến hết thời gian.
manatwork

@manatwork Cũng ngủ trong 1 giây giữa các đầu ra ngay cả sau 267 giây.
diynevala

0

REXX, 82 byte

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

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

Giải trình:

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 byte

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

đầu ra liên tục; là ASCII 10 = LF. Chạy với -r.

đầu ra một lần, 50 byte

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

nơi là ASCII 13 = CR. Lưu vào tập tin hoặc sử dụng đường ống để chạy.


0

RBX.Lua , 69 byte

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

RBX.Lua là ngôn ngữ được sử dụng trên ROBLOX.com . Đây là phiên bản sửa đổi của Lua 5.1 có chức năng 'Chờ' tích hợp. Đoạn mã trên khá tự giải thích, bên dưới là phiên bản dễ đọc hơn:

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

print("Eat your hot dog");

Mã này xuất ra "Chưa sẵn sàng" liên tục vào STDOUT , trong 267 giây (4 phút 27 giây) trước khi xuất ra "Ăn con chó nóng của bạn".


0

C - 130 byte

Nó có thể ngắn hơn một chút (128byte), nhưng tôi nghĩ rằng nó gọn hơn để ghi đè lên "Chưa sẵn sàng"

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

Chào mừng bạn đến với trang web! Bạn có thể bỏ qua #include<unistd.h>(nó sẽ phát ra cảnh báo nhưng vẫn biên dịch). Làm như bạn làm (ghi đè tin nhắn trước đó) là quyền của bạn, nhưng vì thử thách không thực sự yêu cầu, tôi khuyên bạn không nên làm điều đó. Nó sẽ cho phép bạn làm int main(){puts("Not ready yet");sleep(267);puts("Eat your hot dog");}(không bao gồm, họ không cần) - nhưng tất nhiên không có nghĩa vụ phải làm điều đó.
Dada

-1

VBA, 126 byte

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

1
Không làm những gì mà thách thức yêu cầu.
Matthew 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"

Tôi không hiểu tại sao ai đó -1 câu trả lời của tôi. some1 có thể giải thích? :(
Koishore Roy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.