Ugotuj mi hot doga! [Zamknięte]


13

Czasami mam ochotę na hot doga (nie wszyscy) i dlatego robię jednego. Teraz zrobienie hot doga jest bardzo proste.

1) Umieść hot dogi we wrzącej wodzie

2) Poczekaj pewien czas (szczegółowo poniżej)

3) Zjedz hot doga po upływie określonego czasu.

Być może zauważyłeś, że powiedziałem

określony czas (szczegółowo poniżej)

i tak opiszę.

Wiele różnych marek ma wiele różnych zaleceń dotyczących tego, jak długo powinniśmy gotować hot dogi, ale uważam, że najlepiej jest gotować je dokładnie przez 4 minuty i 27 sekund (nie pytaj). Wypróbowałem wiele różnych timerów, ale odkryłem, że program, który stale wydaje, jest najlepszym sposobem na zwrócenie mojej uwagi.

TWOJE ZADANIE

Musisz stworzyć program, który wyświetli komunikat Not ready yetdokładnie przez 4 minuty i 27 sekund. Po upływie tego czasu powinieneś generować dane Eat your hot dogdo końca czasu. Proszę nie brać żadnych danych.

JAK WYGRAĆ

Aby wygrać, musisz napisać najkrótszy kod w bajtach, ponieważ jest to



1
Całkiem blisko Legen… poczekaj na to… też.
manatwork

Jedyną różnicą jest to, że wyzwanie to wymaga od programu oczekiwania przez określony czas
41805

8
Czy musimy ciągle wyprowadzać komunikat „Jeszcze niegotowy”, dopóki interwał nie skończy się ( Not ready yet\nNot ready yet\n...), czy możemy po prostu wyprowadzić go raz i zmienić wyjście, gdy minie 4m 27s?
user41805,

1
Ups, moja odpowiedź przypomina mi, żebym jadł mojego hot doga przez ostatnie dwa dni ...
Neil,

Odpowiedzi:


20

Scratch, 93 78 bajtów

reprezentacja obrazu

Kod:

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

Wygenerowane przez https://scratchblocks.github.io/ , który wydaje się być standardem w punktacji Scratch.

Dość oczywiste. Kiedy program się uruchomi, powiedz „Jeszcze nie gotowy”, dopóki licznik czasu (liczony w sekundach) nie przekroczy 267. Następnie uruchomi się nieskończona pętla, w której mówi Eat your hot dog.

Jest to ciągłe wyjście, ponieważ sayblok działa wiecznie, chyba że ty say []lub saycoś innego.


7
Na zawsze nie ma potrzeby oszczędzania 8 bajtów. To zabiera do 85 bajtów. Jest również krótszy w Hñähñu (Mezquital Otomi) , zamiast angielskiego, o kolejne 8 bajtów (bez wieczności), zwiększając go do zaledwie 77 bajtów.
Tim


@ Tymczasowe dzięki, ale zielona flaga nie działa.
Okx

W rzeczywistości pochodzi on z oficjalnego tłumaczenia strony internetowej, więc błąd jest błędny.
Tim

@Tim Blok zielonej flagi prawdopodobnie nie został jeszcze zaimplementowany (chociaż tłumaczenie wciąż go tłumaczy). Poza tym w oficjalnym języku Scratch nie ma języka hańahnu.
Erik the Outgolfer

14

Bash + coreutils, 50

timeout 267 yes Not ready yet
yes Eat your hot dog

Wyjaśnienie

Myślę, że dość oczywiste, ale na wszelki wypadek:

  • yesCoreutil ciągły wielokrotnie wysyła wszystkie parametry przekazywane do niego linii poleceń
  • timeoutCoreutil przyjmuje parametr liczbowy limitu czasu, po którym następuje rozkaz. Polecenie jest uruchamiane, a następnie zabijane po upływie określonego czasu.

8

Operacyjny język skryptowy Flashpoint , 67 bajtów

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

Zapisz jako "hotdog.sqs"(lub cokolwiek) w folderze misji i dzwoń za pomocą [] exec "hotdog.sqs".

Wyjaśnienie:

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

Wypróbowałem wiele różnych timerów, ale odkryłem, że program, który stale wydaje, jest najlepszym sposobem na zwrócenie mojej uwagi.

To rozwiązanie powinno być szczególnie dobre w przyciąganiu uwagi, ponieważ hintpolecenie wywołuje przylegający efekt dźwiękowy za każdym razem, gdy jest wywoływane, co brzmi bardzo irytująco, gdy jednoczesne dźwięki zostają przycięte w ciasną pętlę.


7

JavaScript ES6, 76 bajtów

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

Wyjaśnienie

To drukuje coś na konsoli co 517 milisekund. Na początku drukuje 'Not ready yet'i zmniejsza licznik. Po 517 iteracjach ( = 517 * 517 = 267289 ms) rozpoczyna drukowanie 'Eat your hot dog'.

Test

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


nie możesz po prostu ustawić limitu czasu i zapisać bajt?
user1910744,

setTimeoutwykonuje funkcję tylko raz. Wyzwaniem jest ciągłe wyprowadzanie ciągu, więc setTimeoutbyłoby to nieprawidłowe.
Łukasz

(--_?działa zamiast (--_>0? (-2)
dandavis,

Niestety nie _będzie to zmniejszane za każdym razem, gdy coś zostanie wydrukowane, więc również spadnie poniżej zera. Wszystkie ujemne liczby całkowite są zgodne z prawdą, więc te też by się wydrukowały 'Not ready yet'(czego nie chcemy).
Łukasz

7

PowerShell, 85 71 59 bajtów

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

Prawdopodobnie jest o wiele lepszy sposób, więc proszę o krytykę! To moja pierwsza próba golfa :)

EDYCJA Zmniejsz całe 14 bajtów dzięki AdmBorkBork! I zdecydowanie technika do zapamiętania!

EDYCJA 2 Kolejne 12 bajtów zniknęło dzięki Mattowi. Dwukrotne wywołanie zapisu również usunęło 2 spacje, bardzo pomocne!


1
Witamy w PPCG! Miło widzieć kolejny PowerSheller. Łatwy golf jest uruchomienie pętli ustaloną liczbę razy 1..276|%{}zamiast forpętli z przyrostem. Sprawdź także inne wskazówki na tej stronie!
AdmBorkBork

Ciągi są wysyłane do domyślnego standardowego wyjścia. Nie trzeba określać za pomocą polecenia write-outputcmdlet.
Matt

7

Wariant języka skryptowego GameMaker wykorzystywany w modzie Nuclear Throne Together, 68 bajtów

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

Wyjaśnienie

  • Parser GML jest cudownie wybaczający. Średniki i nawiasy są opcjonalne, a kompilator nie jest w ogóle zaniepokojony swoim rozstawie poza podstawowymi zasadami ( 0whileAnalizuje jak 0, whilea więc jest ok)
  • Zmienne przeciekają do kontekstu wykonawczego, chyba że zadeklarowane przez var(tak jak w JS).
  • Wariant GML używany w NTT wprowadza waitoperatora, który wypycha wykonujący się „mikro-wątek” na listę dla określonej liczby ramek, a następnie wznawia. Zasadniczo coroutines.

    Gra jest taktowana zegarem 30 klatek na sekundę, więc 4m27s == 267s == 8010 klatek.

  • trace () wyświetla podany ciąg na czacie.

Jeśli masz zainstalowaną grę wideo + mod, możesz ją zapisać jako część test.mod.gmli zrobić, /loadmod testaby ją wykonać, zalewając czat „raportami stanu”:

zrzut ekranu


3
Nie jestem do końca pewien, co się tutaj dzieje, ale aprobuję.

3

Python 2, 92 bajty

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

Wypróbuj online!


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

@ovs while 1:print['Eat your hot dog','Not ready yet'][time()-t<267]również wynosiłby 90 (będąc wyraźniejszym i nie drukując dodatkowej białej spacji).
Jonathan Allan

3

TI-Basic, 75 bajtów

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

Wyjaśnienie

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

Partia, 99 bajtów

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

Wsad nie ma arytmetyki daty, ponieważ prosty 267 sekundowy limit czasu jest niedozwolony, co mogę zrobić, to 267 sekundowych limitów czasowych.


2

C # 144 bajtów

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

Pełny program bez golfa:

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

Niestety nie mogłem użyć opcji ?:-operator, ponieważ nie znalazłem sposobu na zatrzymanie przyrostu ibez if.


Spróbuj czegoś takiego jak if(i++<267e3)zaoszczędzić kilka bajtów.
adrianmp,

1
@adrianmp: To nie zadziałałoby, ponieważ wciąż zwiększałoby się ico milisekundę. A gdy int.MaxValuezostanie osiągnięty, program albo zawiesi się, albo zacznie Not ready yetponownie drukować .
raznagul

Udało mi się to zrobić, znacznie opóźniając przepełnienie (lub nawet łagodząc go kosztem kilku bajtów). „Pożyczałem” kilka pomysłów z twojej odpowiedzi. Dzięki!
adrianmp

2

C #, 174 172 147 bajtów

Zaoszczędzono 25 bajtów, „pożyczając” niektóre pomysły z odpowiedzi C # raznagul i łącząc je z sumą pierwszych n liczb!

Zaoszczędzono 2 bajty, wykorzystując sumę pierwszych n liczb lewy dla utraty precyzji 185 milisekund.

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 bez golfa:

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

Wyjaśnienie:

Ponieważ całkowity czas oczekiwania jest ustalony na 267 sekund, można uznać tę liczbę za teleskopową sumę pierwszych n liczb naturalnych n * (n + 1) / 2, która musi wynosić 267000 milisekund.

Jest to równoważne z n^2 + n - 534000 = 0.

Rozwiązując to równanie drugiego zamówienia, n1 = 730.2532073142067, n2 = -n1. Oczywiście tylko pozytywne rozwiązanie jest akceptowane i może być przybliżone jako 730 .

Całkowity czas można obliczyć jako 730 * (730 + 1) / 2 = 266815 milliseconds. Niedokładność wynosi 185 milisekund , niezauważalna dla ludzi. Kod sprawi teraz, że główny (i tylko) wątek śpi przez 1 milisekundę, 2 milisekundy i tak dalej do 730, więc całkowity okres uśpienia wynosi ~ 267 sekund.

Aktualizacja:

Logikę programu można jeszcze bardziej uprościć - w zasadzie musi on stale wyświetlać komunikat i czekać określony czas, aż przełączy się na drugą wiadomość.

Komunikat można zmienić za pomocą operatora trójskładnikowego, aby sprawdzić upływ określonego czasu (~ 267 sekund).

Aspekt czasowy jest kontrolowany przez użycie rosnącego licznika i wstrzymanie wątku wykonania.

Ponieważ jednak zmienna licznika nadal rośnie w nieskończoność, bez żadnych warunków sprawdzania jej wartości, można spodziewać się przepełnienia liczb całkowitych w pewnym momencie, gdy komunikat powróci do Not ready yet.

Można dodać warunek w celu wykrycia i złagodzenia problemu poprzez przypisanie wartości dodatniej większej niż 730, gdy nastąpi przepełnienie - jak i=i<1?731:iw forpętli. Niestety kosztuje to 11 dodatkowych bajtów:

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

Kluczem jest tutaj użycie wartości licznika w milisekundach, aby znacznie opóźnić moment przepełnienia.

Czas do przepełnienia można obliczyć zgodnie ze sum(1..n)wzorem, w którym n = maksymalna 32-bitowa liczba całkowita ze znakiem w języku C # (i .NET Framework) lub 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

Po 73 milionach lat może nie mieć znaczenia, czy pojawi się usterka w systemie - hot dog, głodny PO i może sama rasa ludzka już dawno minęła.


Poprzednia wersja (172 bajty):

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 bez golfa:

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

Poprzednia wersja (174 bajtów):

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 bez golfa:

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

Alternatywnie, program może wyświetlić Not ready yettylko raz, poczekać, aż upłynie określony czas, a następnie wyrejestrować Eat your hot dog, zastępując poprzednią wiadomość, będąc krótszym o kilka bajtów:

C #, 145 bajtów

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

Program bez golfa:

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

To wspaniale. Dałbym ci +1, gdybym tego jeszcze nie zrobił. ;)
raznagul,

2

Ruby, 80 71 67 bajtów

Edycja: Dzięki maniakom za golenie 13 całych bajtów

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

Dlaczego nie 267.times{…}?
manatwork

Wow, dzięki. Czuję się teraz głupio.
BRFNGRNBWS

Wygląda na to, że liczysz za pomocą separatorów linii CR / LF. Ponieważ Ruby zezwala tylko na LF, liczyliśmy tylko to. I nie ma potrzeby przerywania linii po {. To dałoby 67 bajtów.
manatwork

Jestem początkującym w Ruby i całkowicie noob w golfie kodu, więc dziękuję za całą pomoc!
BRFNGRNBWS

Jeśli go przegapiłeś, w Ruby znajduje się zbiór porad dotyczących gry w golfa, które mogą pomóc początkującym graczom.
manatwork

2

05AB1E, 43 29 28 bajtów (Podziękowania dla Adnana)

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

Nie działa online, ponieważ upłynął limit czasu. Offline będzie działać.

267F: Pętla 267 razy

…€–Žä‡«ª: Pierwszy ciąg ze słownikiem

w,: Poczekaj sekundę i wydrukuj

}[: Zakończ pętlę if i rozpocznij pętlę nieskończoną

“Eat€ž…ß‹·“: Drugi ciąg ze słownikiem

,: Drukuj


Dzięki, mój klient zobaczył, że ten kod jest krótki i działa offline - teraz chce, żebym napisał swoją stronę internetową w tym języku. . .
Pascal Raszyk

Działa online, ale nie tylko na tłumaczu, który jest online. Możesz to zobaczyć tutaj
P. Knops

Wiem. To był żart: D.
Pascal Raszyk

1
Najlepiej po prostu odpowiedzieć normalnie: D
P. Knops

“NotŽä‡«“można zastąpić…€–Žä‡«ª
Adnan

1

Python, 115 bajtów

Pierwszy raz próbuję czegoś takiego. Jestem również początkującym, więc tutaj jest w Pythonie 3 na 115 bajtów:

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

3
Witamy na stronie! Celem gry w golfa jest napisanie możliwie najkrótszego kodu w twoim języku. Jest kilka rzeczy, które można ulepszyć i nie zaszkodzi spojrzeć na aktualnego zwycięzcę Pythona, aby uzyskać kilka wskazówek!

Usuń czas. Sen (1) - oszczędza kilka bajtów
Pascal Raszyk

@praszyk, wtedy pętla forzakończy się range(267)znacznie szybciej niż 4 minuty 27 sekund i rozwiązanie staje się nieważne. ☹
manatwork

1

JavaScript Blocks Editor dla micro: bit, 90 bajtów

wprowadź opis zdjęcia tutaj

Kod:

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

Możesz spróbować tutaj.

Zainspirowałem się odpowiedzią Scratch, aby rozwiązać zadanie za pomocą mojego micro: bit. Jedynym problemem jest to, że blok pauzy zaczyna się po wypisaniu pierwszego ciągu, więc musiałem zmniejszyć pauzę o 13 sekund.

Uwaga: stary Microsoft Block Editor dla micro: bit jest krótszy do utworzenia, ale wytwarza więcej kodu, więc w rzeczywistości jest dłuższy.


1

Na tej podstawie, że OP chce hot-dogi ciągle, aż do końca czasu - co rozumiem ze zdania:

Po upływie tego czasu powinieneś wydawać: Zjedz swojego hot doga aż do końca czasu.

Oto moja odpowiedź:

C ++, 187 188 224 167 bajtów

Usunięto białe znaki (167 bajtów):

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

czytelna forma (224 bajty):

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

Jeśli natomiast OP lubi swoje hot dogi z umiarem, to moja odpowiedź:

Usunięto białe znaki (158 bajtów):

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

czytelna forma (198 bajtów):

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

Co jest delay?
Quentin,

OK, to stara funkcja. Zamieniono na Sleep (1000)
Tombas

Możesz pozbyć się kilku białych znaków, aby zaoszczędzić bajty. Ponadto liczę 224 bajty, a nie 188.
HyperNeutrino

@HyperNeutrino masz rację - liczyłem zakończenia linii, ale nie prowadziłem białych znaków.
Odpowiednio zredagowane

@Quentin delay () to funkcja, którą miałem nadzieję, że można ją usunąć prosto z Arduino ... okazuje się, że nie mogę! Rozumiem, że istniał już w tamtych czasach jako część biblioteki dos.h.
Tombas,

1

Excel VBA, 82 bajty

Anonimowy VBE natychmiast uruchamia funkcję okna, która nie przyjmuje danych wejściowych i wyjściowych, niezależnie od tego, czy powinieneś jeść hot dog do komórki [A1].

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

1
Ciekawe, że nie wiedziałem, że możesz uruchomić program bezpośrednio z okna Natychmiastowego
Stupid_Intern

1

Excel VBA 122 94 bajty

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

Dzięki Taylor Scott


Możesz trochę zmniejszyć to rozwiązanie, CDate("00:04:28")możesz się skondensować #0:4:27#, możesz zamienić swoją While ... Wendpętlę na Do .. LoopPętlę i możesz zastąpić swoją ifklauzulę iifklauzulą
Taylor Scott

@TaylorScott Tak, dziękuję :)
Stupid_Intern

1
@TaylorScott jest jakaś alternatywa dla msgbox?
Stupid_Intern

1
@TaylorScott również klauzula iif nie działa z msgbox Nie jestem pewien, dlaczego i # 0: 4: 27 # autoformaty do daty nie czas, możesz edytować odpowiedź, jeśli chcesz
Stupid_Intern

1
W rzeczywistości, ponieważ VBA nie ma żadnych STDIN ani STDOUT, dostępnych jest wiele opcji, takich jak VBE, które powoduje bezpośrednie okno i komórki w programie Excel, więcej informacji na ten temat można znaleźć na codegolf.stackexchange.com/a/107216/ 61846
Taylor Scott

0

JavaScript, 83 bajtów

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

Alertz dla wszystkich!


1
Można zmienić 267000, aby 267e3i zapisać bajt.
powelles

Z pytania: „Musisz stworzyć program”. To nie jest program ani funkcja, ale fragment kodu.
Luke

7
To jest program.
programmer5000,

1
Możesz zaoszczędzić kilka bajtów, używając new Datezamiast Date.now(), a kolejne kilka, używającfor(d=new Date;;)alert...
ETHproductions

2
alert () zatrzymuje program aż zamyka użytkowników i wejście zakazy challenge
dandavis

0

PERL, 76 bajtów

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

6
Liczę 82 bajty.
Oliver,

0

PHP 88 bajtów

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

1
„Po upływie tego czasu powinieneś wysyłać dane Eat your hot dogdo końca czasu.” Musisz więc powtórzyć również drugą wiadomość. Że doda do swojej długości, ale na szczęście nie jest miejsce, aby go skrócić: for($t=267;$t--;sleep(1))echo"Not ready yet";for(;;)echo"Eat your hotdog";. Nawiasem mówiąc, uruchamianie kodu z php -rjest akceptowane, więc nie trzeba tagów PHP (zwłaszcza nie zamykających, co w tym przypadku jest uważane za zły nawyk: „ ?>Tag zamykający MUSI zostać pominięty w plikach zawierających tylko PHP” - PSR-2 ).
manatwork

1
@manatwork niesprawdzony: for ($ t = 267 ;; sleep (1)) echo $ t -> 0? "Jeszcze nie gotowy": "Eat your hotdog";
diynevala,

Ciekawe, @diynevala. Zgodnie z dokumentacją: „Jeśli PHP napotka liczbę przekraczającą granice liczby całkowitej, zostanie ona zinterpretowana jako liczba zmiennoprzecinkowa. Ponadto operacja, w wyniku której liczba wykracza poza granice liczby całkowitej, zwróci liczbę zmiennoprzecinkową. ” - Przepełnienie liczb całkowitych , dzięki czemu warunek powinien działać poprawnie do końca czasu.
manatwork

@manatwork Również śpi przez 1 sekundę między wyjściami, nawet po 267 sekundach.
diynevala,

0

REXX, 82 bajty

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

0

Java 7, 152 bajty

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

Wyjaśnienie:

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 bajtów

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

ciągła wydajność; to ASCII 10 = LF. Uruchom z -r.

wyjście jednorazowe, 50 bajtów

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

gdzie jest ASCII 13 = CR. Zapisz do pliku lub uruchom potokowanie.


0

RBX.Lua , 69 bajtów

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

RBX.Lua jest językiem używanym na ROBLOX.com . Jest to zmodyfikowana wersja Lua 5.1 z wbudowaną funkcją „Czekaj”. Powyższy kod jest dość zrozumiały, poniżej znajduje się bardziej czytelna wersja:

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

print("Eat your hot dog");

Kod nieprzerwanie wysyła komunikat „Jeszcze niegotowy” do STDOUT przez 267 sekund (4 minuty 27 sekund), a następnie wypisuje „Zjedz hot doga”.


0

C - 130 bajtów

Może być nieco krótszy (128 bajtów), ale pomyślałem, że fajniej jest zastąpić „Niegotowy”

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

Witamy na stronie! Możesz pominąć #include<unistd.h>(wygeneruje ostrzeżenie, ale nadal się kompiluje). Robienie tego, co robisz (nadpisywanie poprzedniej wiadomości) jest twoim prawem, ale ponieważ wyzwanie tak naprawdę nie wymaga tego, radzę nie robić tego. Pozwoliłoby ci to zrobić int main(){puts("Not ready yet");sleep(267);puts("Eat your hot dog");}(bez uwzględnienia, nie są potrzebne) - ale oczywiście nie ma obowiązku.
Dada,

-1

VBA, 126 bajtów

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

1
Nie robi tego, o co prosiło wyzwanie.
Matthew Roh,

-1

Python 2.7, 90 88 bajtów

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

Nie rozumiem, dlaczego ktoś -1 moją odpowiedź. czy ktoś może wyjaśnić? :(
Koishore Roy,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.