点滅する12


43

多くの電子機器、特に古いものは12:00、時間が設定されていないと点滅します。この課題の目的は、これを再現することです。

具体的には、タスクがする表示12:00--:--無限ループに代わり

期間は、 0.5秒の二つの期間に均等に分割し、1秒、であるべきです。ここで、「1秒」と「均等」は大まかに解釈できます。たとえば、結果の期間が1秒より少し長くなる場合でも、文字列の表示の間にコードが0.5秒間停止する場合は許容されます。最初の文字列を表示する前の最初の一時停止は許容されます。

それぞれの新しい文字列は、のいずれかによって表示することができ、元の文字列を置き換えるか、新しい行に。新しい文字列がそれぞれ異なる行にある場合、連続する文字列の間に空行があってはならないことを除いて、末尾の空白は許可されます。

バイト単位の最短コードが優先されます。


1
これはkolmogorov-complexityとしてカウントされますか?
FlipTack

@FlipTackそう思いますが、確信がありませんでした。考え、誰か?
ルイスメンドー

@LuisMendo私はそうは思いませんが、KGタグはほとんど固定文字列用だと思います。これには、待機文字列と交互文字列があります。
Rɪᴋᴇʀ

提出は、初期出力を表示する前に0.5秒待機できますか?
FlipTack

1
私見、「各新しい文字列は、前の文字列を置き換えるか、新しい行で表示できる」という文は、この課題を面白くしませんでした。
セトップ

回答:


4

ゼリー、20バイト

.“12:00“--:--”ṄœS¥€ß

使い方

.“12:00“--:--”ṄœS¥€ß  Main link. No arguments.

.                     Set the return value to 0.5.
 “12:00“--:--”        Yield ["12:00", "--:--"].
                 ¥    Combine the two links to the left into a dyadic chain.
              Ṅ       Print the left argument.
               œS     Sleep as many seconds as the right argument specifies.
                  €   Map the created dyadic chain over the string array, with
                      right argument equal to the return value, i.e., 0.5.
                   ß  Recursive call the main link.

あなたは基本的に、リストの両方の文字列を独自のリンクに追加し、スリープコマンドを追加していますか?甘い。
steenbergh

32

HTML / CSS、131 108 106 101 + 18 17 = 149 126 125 123 118バイト

a{background:#FFF;margin:-5ch;animation:a 1s steps(2,start)infinite}@keyframes a{to{visibility:hidden
<tt>--:--<a>12:00

編集:@insertusernamehereのおかげで23バイト保存されました。から<pre>に切り替えて1バイトを保存しました<tt>。@darrylyeoのおかげで2バイト節約されました。@DBSのおかげで5バイト節約されました。


1
@insertusernamehereフンは、私が離れてgolfed a{position:absolute}が、完全に忘れてしまったpre...
ニール

まだpreタグが必要ですか?cssはaのみに言及しています。
ev3commander

@ ev3commanderに切り替えてバイトを保存しました<tt>
ニール

最終版を}}完全に削除できます。
-darrylyeo

私はあなたが単純化することができるはずだと思うmargin-leftmarginトップはとにかく左から、あなたが作業しているので、margin:-5ch;同じ効果を持つ必要があります。
DBS

15

シェルおよびpv26バイト

これは、yes標準ツールとpv シェルパイプライン要素を使用して、通過するデータを計測します

yes '12:00
--:--'|pv -qlL2

2
素敵な解決策ですが、言語はおそらく「Shell and pv」と記述する必要があります。とにかく、pvはシェルに含まれておらず、GNUまたはBSDコアユーティリティの一部でもないためです。
ミッチェルスペクター

1
それは素晴らしいトリックです!(これは@Digital Traumaによってここで開拓されたと思います)。この場合でも、ミッションステートメントは「12:00と-:-を交互に表示する」(点滅するディスプレイを模倣する)ことでしたが、このコードは文字ごとに出力するだけなので、チャレンジの精神に少し反感を覚えます代わりに、毎秒12文字の一定レートで。つまり、「12:00」は1/12(0.08)秒だけ画面に表示されます(「12:0 _」= 1 / 12s => "12:00" = 2 / 12s => "-")。
ツェッペリン

@zeppelinは参考に感謝します。私は、@ DigitalTraumaのサンプル-qlL2を使用して 、秒で-qL1212 行の代わりに秒で2行を作成しました 。スクリプトの長さは同じである
F. HAURI

15

Python2、80の 75 73 69 67 66バイト

import time
n=0
while[time.sleep(.5)]:print"1-2-::0-0-"[n::2];n^=1

私は、文字列マジックが配列から文字列を選択するよりも少し長くなっていることに気付きました。気にせず、それを理解しました。

説明

  • カウンターnを0 に設定すると、0と1の間で切り替わります。

  • 私はループで無限にループしますwhile 1

  • 私は、文字列の作成1-2-::0-0-文字列が含まれ、12:00および--:--interlappedを。

    • 2のステップでインデックス0から開始すると、次のようになります。 12:00

    • 2のステップでインデックス1から開始すると、次のようになります。 --:--

  • 私は使用のn反復配列にするために01010 ...文字列の開始インデックスとなります。

    • を使用してn^=1、各ループでそのシーケンスを取得します。^XOR演算子であること。
    • n == 0の場合-> n^=1結果は1
    • n == 1の場合-> n^=1結果は0
  • 文字列を出力し、スリープ(.5-> 0.5)秒します。

@FlipTackは4バイトを節約しました!->ループを1行に配置します。

@Rodは2バイトを節約しました!-> n+=1to n^=1、したがってn%2to n

@xnorはバイトを節約しました!- > while 1- > while[time.sleep(.5)]


7
あなたは置き換えることができn+=1n^=1、その後、使用[n::2]、2つのバイトを保存し、cは大きな数字を避ける:
ロッド

4
に変更するprint"1-2-::0-0-"[n::2]print"\b"*6+"1-2-::0-0-"[n::2],、数バイト追加されますが、所定の位置で点滅します
バズ

1
行の先頭に移動する\r代わりに使用できる@Buzz \b\b\b...。しかし、とにかく、これは現在のソリューションにバイトを追加するだけです。
FlipTack

を実行することでバイトを保存できますwhile[time.sleep(.5)]:
xnor

@xnor私はとても確信していたので、これ以上ゴルフはできませんでした。このサイトは私を驚かせ続けています。ありがとう!
イッツィー

15

オクターブ、63 62 61 55バイト

c='--:--00:21';while c=flip(c)disp(c(1:5));pause(.5)end

トムカーペンターのおかげで2バイト節約できました!セル配列で2つの文字列の代わりに1つの文字列を使用する方が短かった。

説明:

c='--:--00:21';  % A string where the 5 first characters are --:-- or 12:00 when reversed
while c=flip(c)  % A string is always considered true in Octave, so this will loop forever
                 % while flipping the order of the string each time
 disp(c(1:5)     % display the 5 first characters of the string c
 pause(.5)       % Pause 0.5 second
end              % End loop

数バイトは、Octaveが間にコロンやセミコロンを必要としないため保存flip(c)disp()、との間pause(.5)end


1
flipカウンターの代わりに使用するのは良いアイデアです!
ルイスメンドー

11

JavaScript、59バイト

y=1;setInterval('console.log(["12:00","--:--"][y^=1])',500)

説明

setInterval('...',500) 文字列内のコードを500ミリ秒ごとに実行する間隔、つまり1秒あたり1/2を設定します。

y=1変数をy最初に1に設定します。このように、最初に印刷されるのは、配列へのアクセスに使用される12:00ためyです。

console.log(...)12:00またはのいずれかに、コンソールに何でも記録します--:--

["12:00","--:--"][y^=1]両方の状態を含む文字列で配列を作成します。次に、y要素の1つにアクセスするために使用されます。最後に^=、またはXOR複合演算子はを行いy = y ^ 1ます。@TuukkaXが行ったのと同様に1 ^ 10で0 ^ 11であるため、これはビットを反転させるだけです。このように、ログに記録された文字列は配列内の2つの要素を交互に切り替え、点滅効果を作成します。


これでバイトを保存できましたy=1;setInterval('console.log(y?"12:00":"--:--");y=!y',500)
。– woutr_be

ETHproductionsが私の答えを教えてくれますYou can save some bytes with setInterval(...,i=500) :-)。基本的には同じ答えがあり、あなたの場合にも有効です。
クリストフ

11

V31 30 27 25 24バイト

保存された5の順序交換することにより、@ nmjcman101のおかげバイト12:00--:--なるようにk除去することにより、いずれかを削除することができò、それが最後に暗黙のうちに追加されることができるように

@DJMcMayhemのおかげ12:00--:--、1行で両方を入力して1バイト節約

i12:00--:--<ESC>bDòVp:sl500m

古いソリューション:

i12:00<ESC>ò:sl500m
Óä/-
:sl500m
uò

<ESC>0x1b

Hexdump:

00000000: 6931 323a 3030 2d2d 3a2d 2d1b 6244 f256  i12:00--:--.bD.V
00000010: 703a 736c 3530 306d                      p:sl500m

説明

i12:00--:--<ESC>   inserts 12:00\n--:--
bD                 go to the beginning of --:-- and delete it
ò                  recursively do:
 Vp                 select line and paste (effectively doing a replace)
 :sl500m            sleep for 500 milliseconds
                   the last ò is added implicitly at the end

Gif(時代遅れ)

注:強調表示がオンになっています

ギフ


7
あなたはそのgifで文字通り点滅しました:-)
ルイスメンドー

2番目òは暗黙的に指定されるため、削除できます。
DJMcMayhem

@DJMcMayhemそれは、何らかの理由で、2番目のなしでは機能しませんò。それは一度だけ実行されます
KritixiのLithos

2
最初の入力が必要ないように、入力の順序を入れ替えますk。その後、代わりにpkddあなただけ使用することができるVpように、p視覚的な選択モードで効果的にデフォルトレジスタで選択を交換します。
nmjcman101

1
を削除するのòに問題があることは知っていますが、それが今うまくいけば、それをに変更してòVp:sl500mV ^Mòに2バイト追加できるようにすべきだと思います。
nmjcman101

11

bash、58 56 45バイト

1番目の引数が数値であるため--、後に抑制することで3バイトを節約しましたset

set 12:00 --:--;for((a=1;;a=3-a)){ echo ${!a};sleep .5;}

@DigitalTraumaの構文を使用して16バイトを保存しました:

f()(echo $1;sleep .5);f 12:00;f --:--;exec $0

その後、ツェッペリンのコメントのために5バイトを失います。

これはコマンドラインでテストできませんでした。を含むため$0、これを実行するスクリプトに書き込む必要があります。

迂回

少し準備をすれば、これがうまくなる可能性があります412バイト):

set -- "         ▗▖         
▗▄▄▖▗▄▄▖ ▝▘ ▗▄▄▖▗▄▄▖
         ▗▖         
         ▝▘         " " ▟▌ ▟▀▜▖ ▗▖ ▗▛▙ ▗▛▙ 
 ▐▌  ▗▟▘ ▝▘ █▗▐▌█▗▐▌
 ▐▌ ▗▛▗▖ ▗▖ ▜▖▟▘▜▖▟▘
▝▀▀▘▀▀▀▘ ▝▘  ▀▘  ▀▘ "
r=`tput cup 0`
clear;for((a=1;;a=3-a)){ printf "$r${!a}";sleep .5;}

または、同じ2行ですが、次のとおりです。

set -- '                                            






      HM!          .o#HMMMMM#o.                 .o#MMMMH#\\         .d#MMMMH#\\
    _HMMi         ?MMH*"""`"MMMb               dMMH"""`*MMH,      dMMH"""`*MMH.
##HMMMMMi        |MMP"       9MML             ?MMP      `MMM.    dMM?      `MMM.
`""`"9MM|        dMM!        -MMR     HMH}   .MMM        |MM}   .MMH        |MM|
     |MM|         "`         JMMT     dHH}   |MM|         MMM   |MM|        -MMM
     |MM!                 .,HMM*             |MM|         MMM.  ]MM|         MMM
     |MMi              _o#MMH*"              |MM|         MMM   {MM|         MMM
     |MMi           .dHMM#""                 |MM|         MMM"  {MM|        .MMM
     |MMi         .HMM*"                     `MM6        ,MMR   |MM}        |MMF
     |MMi        ,MMP"                        9MM,       dMM|    HMM,       dMM"
     {MMi        MMM?\\o,\\\\\\\\\\\\\\\\,     q##+    `HMM\\    .dMM?     `HMH\\    .dMM?
     |MM|       :MMMMMMMMMMMMMMM[     HMMk     `*HMM##MMM#"       `*HMM##MMMP"
      "`          "     ` ` ` `                   """"`""            """"""    ' '









                                      MHM|                                      
                                      HHH|                                      

               ______.  ._______.            ________.  ._______.               
               MMMMMM:  {MMMMMMM|            &MMMMMMM:  |MMMMMMM[               


                                      ###|                                      
                                      MMM|                                      
                                                                               '

3
s(){ echo $1;sleep .5;};for((;;)){ s 12:00;s --:--;}
マナトワーク

2
@manatworkいいね!同じスクリプトではないと思います!答えとして公開する必要があります!
F.ハウリ

ASCIIアートは絶対に豪華だと認めざるを得ません...ツールを使用して作成しましたか、それとも手作業で作成しましたか?
ETHproductions

2
私が使用@ETHproductions のGhostscriptprintf '%%\041\n/Helvetica findfont\n24 scalefont\nsetfont\nnewpath\n%s %s moveto\n(%s) show\nshowpage\n' -2.456 0.550003 12:00 | gs -sDEVICE=pnmraw -r600 -g470x146 -sOutputFile=- -q - | pnmscale -width 160 | ppmtopgm | pgmtopbm | pbmtoascii -2x4;-)
F. HAURI

1
...またはf()(echo $1;sleep .5);f 12:00;f --:--;$0
デジタル外傷

9

Perl、49バイト

{select$,,$,,$,,0.5;say$|--?"12:00":"--:--";redo}

Perlのsleepできないスリープ1秒ベローズ期間の従って使用するためのselect undef, undef, undef, .5(置換することによってgolfed undef$,睡眠0.5秒へ)。
その他の興味深いこと:または$|のみを保持0でき1ます。だから、$|--ちょうどから、その値をトグル0します1
そして最後に、{... ;redo}無限ループのように動作します。


6

*> <>43 42バイト

<v":1200----"
S>@5dov>~r@@}r5
1&}o:&<^!?:-

ここで試してみてください!

私はこれを短くすることができるように感じる、私はいくつかのアイデアを試してみてください...基本的にこれはのスタックを作ります:1200----:スタックを分離し、スタックを反転させて、または(スタックの最後にある方に応じ:て)の中央に挿入します。----1200

また、これが使用する唯一の*> <>命令はS(sleep)であることに注意する必要があります。それ以外の場合、これは適切な> <>プログラムです。

更新::レジスタで保護する代わりに右にシフトして1バイトを保存しました。

説明

初期化

<v":1200----"

ここで、プログラムの存続期間に使用するスタックを構築します。

<              move the IP left
  ":1200----"  push ":1200----" to the stack
 v             move the IP down into "output time"

出力時間

 >@5dov
1&}o:&<^!?:-

これは、実際に時間が出力されるセクションです。最初の5はスタックにプッシュされるため、以下のループは5回実行されることがわかります。

Initialisation:

 >@5dov

 >       move the IP right
  @      move the ":" back two spaces in the stack
   5     push 5 to the stack (let's call this `i`)
    do   output carriage return
      v  move IP down into "loop"

Loop:

1&}o:&<^!?:-

      <       move the IP left
     &        place i onto the register
  }o:         output a character and shift the stack left
 &            place i back onto the stack
1          -  decrement i by 1
       ^!?:   if i == 0, exit to "recover and swap"

回復して交換する

S      >~r@@}r5

ここで:、出力後の位置からを回復し、逆のスタックになります。これは実際には「出力時間」にうまく終了し、無限ループを引き起こします。

       >         move the IP right
        ~        remove trailing i from stack
         r@@     reverse the stack and move ":" to the front
            }r   reverse the stack again, keeping ":" on the front
S             5  sleep for 500ms

45バイトのソリューション

<v[5"12:00"1
d/S5
o/!?l
v>]?v
 00.>0"--:--"5[

ここで試してみてください!

これも基本的には> <>プログラムです。

私はこのアプローチでいくつかのバイトを節約できると本当に思った。これは非常に単純に出力し12:00、その後、--:--。出力ルーチンを再利用することでバイトを節約しますo/!?l(そのミラーを入り口と出口の両方として再利用します)。複数のスタックを使用して状態を出力し(出力12または--)、出力する状態を選択しますv>]?v

説明はすぐに来ます!(1/2)


6

HTML / CSS(Chromeのみ)、80 + 4 = 84バイト

tt:after{content:"--:--";animation:a 1s infinite}@keyframes a{to{content:"12:00"
<tt>

編集:「コンテンツ」属性がないアニメートすることによってCSSの仕様が、クロムのデスクトップブラウザ上です。


1
Chrome固有のようです。少なくともFirefoxでは動作しません。これは問題ではありません。解決策はまだ有効です。指定するだけでいいでしょう。
マナトワーク

6

Noodel、非競合16 バイト

--:-- 12:00ḷçėḍh

Noodelはまだ非常に進行中の作業です。いくつかの課題で足を濡らそうとしているだけです。

それを試してみてください:)

使い方

--:--            # Creates the string literal "--:--" and places i into the front of the pipe.
                 # Space is a NOP command to separate the string literals.
      12:00      # Creates the string literal "12:00" and places it into the front of the pipe.
           ḷ     # Loop the following code unconditionally.
            ç    # Clear the screen and print a copy of what is in the pipe.
             ė   # Take what is in the front of the pipe and put it into the back.
              ḍh # Delay for half a second.

コードスニペットを次に示します。

<div id="noodel" code="--:-- 12:00ḷçėḍh" input="" cols="10" rows="2"></div>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>


2
インタプリタがチャレンジをポストデートする場合、これを「非競合」としてマークしてください:)。Noodelはきちんと見えますが、間違いなくチェックしてみてください。
redstarcoder

@redstarcoderおっと!ありがとう、忘れてしまいました。
tkellehe

エンコードについて説明できますか?UTF-8では合計で16をはるかに超えます。
devRicher

1
私はあなたのリンクを見ました、それはエンコーディングを説明しません。ご覧のとおり、すべての文字が「デフォルト」(UTF-8)で1バイトであるわけではありません。既存のエンコーディングを指定するか、作成します。そうしないと、これは間違ったバイトカウントになります。これに関するメタ投稿があるはずです。エンコーディングを定義しない限り、これはUTF-8で22バイトです。@tkellehe
devRicher

1
メタ投稿を見つけました、ところで。
devRicher

5

QBIC37 33バイト

{sleep 01?@12:00`┘sleep 01?@--:--

残念ながら、QBasicは数秒間しかスリープできません。すぐに柔軟性を高める方法を考案する予定です。01シミュレートするために1を入力しました.5

説明:

{         Starts DO loop
sleep 01  Sleeps for 1 second
?@12:00`  Creates A$, sets value to "12:00" and prints A$
┘         Newline: a string literal doesn't break the line, so we need a newline to 
          control the compiled QBasic syntax
          <Rinse and repeat for "--:--">
          <DO-LOOP implicitly closed by QBIC>

QBICの古いビルドでは、$および (スペース)は予約文字でした。スペース(などsleep x)または$left$(..))を必要とするQBasic関数を呼び出すには、コードリテラルが必要です。

'QBASIC CODE`

コードリテラルブロック内のコードは、QBICによって解析されることなく、QBasicに直接渡されます。それらのシンボルから関数をオフロードすることにより(に$なり'、改行はの代わりに(alt-217)になりました)、シンボルはQBICによって特別な文字として認識されなくなり、単に渡されます。小文字のアルファベットについても同様です。QBICとQBasicの両方で数値変数を表すために使用され、変更されません。そのため、QBICに実装されていないQBasic機能(などSLEEP)を使用することは、単にQBICの予約文字を使用しないということです。これは、コマンドシンボルの最近の変更により簡単になりました。


4

JavaScript、77 76 72バイト

setInterval('l=console.log,l("12:00"),setTimeout("l(`--:--`)",‌​500)',1e3)

1バイトのKritixi Lithosと4バイトのL. Serneに感謝します!


1000短縮できます1e3
Kritixi Lithos

2
setIntervalそして、setTimeout:あなたは別の4B保存することができますので、最初の引数としてのコードの文字列を受け入れるsetInterval('l=console.log,l("12:00"),setTimeout("l(- : -)",500)',1e3)
ルーク

`sが前の回答のみES5必要なのに対し、これは、今ES6であることを意味します。
ニール

4

Python 2、 88 85 73 71バイト

import time
c="--:--00:21"
while 1:print c[:5];c=c[::-1];time.sleep(.5)

ここで試してみてください!

リストをひっくり返すというStewie Griffinのアイデアを借用することで、プログラムは可能になりました。説明付きのゴルフバージョン:

import time                      # Import time module
c = "--:--00:21"                 # String with two values
while 1:                         # Infinite Loop
    print c[::5]                 # Print the first 5 chars in string
    c = c[::-1]                  # Flip the string
    time.sleep(.5)               # Wait 0.5 seconds

14バイトを節約してくれた@FlipTackに感謝します!



4

PHP、51 50 47

for(;;usleep(5e5))echo$i++%2?"--:--
":"12:00
";

manatworkにより1バイトが保存され、insertusernamehereにより3バイトが保存されました。ありがとう!


1
usleep(5e5)呼び出しをforの3番目のパラメーターに移動すると、,セパレーターが不要になり、1文字節約されます。
マナトワーク

@manatworkありがとう!while(1)最初は持っていました。
クリストフ

2
あなたは、保存することができます3つの以上のバイトを:間の空白を削除echoし、$iそして置き換える\n実際の改行で。
insertusernamehere

@insertusernamehereゴルフでさえこれは私の目を傷つけます:Dしかし、ちょっとそれは動作します。
クリストフ

3

Pyth、23バイト

#?=!Z"12:00""--:--".d.5

擬似コードで:

                Z = 0
#               while 1:
 ?=!Z               if ( Z = not Z ):
     "12:00"            print("12:00")
                    else:
     "--:--"            print("--:--")
 .d.5               sleep(0.5)

事前に初期化された変数Zをフリップフロップとして使用し、状態ifを確認しようとするたびに状態を反転します。


.d5をループの先頭に置き、終了引用符を削除します
Maltysen

3

ルビー、47 42バイト

ルビーの答えはまだないので、ここに私の最初の試みがあります:

%w{12:00 --:--}.cycle{|a|puts a;sleep 0.5}

3

GNU sed、39バイト

編集:

  • スリープi12:00の入れ替え(ソースコードを少し見やすくするため)

ゴルフ

s/^/sleep .5/
h
i12:00
e
i--:--
x
e
G
D

説明した

s/^/sleep .5/   #Put 'sleep .5' to the pattern space
h               #Copy pattern space to hold space
i12:00          #Print "12:00" (insert before a line) 
e               #Execute command that is found in pattern space
i--:--          #Print "--:--"
x               #Exchange the contents of the hold and pattern spaces
e               #Execute command that is found in pattern space

G               #Append a newline to the contents of the pattern 
                #space, and then append the contents of the hold
                #space to that of the pattern space.

D               #Delete text in the pattern space up to the 
                #first newline, and restart cycle with the 
                #resultant pattern space, without reading a new 
                #line of input.

オンラインでお試しください!


3

dc(bash)、37バイト

[12:00][--:--][[rp!sleep .5]xlax]dsax

これは、2つの文字列「12:00」と「-:-」をスタックにプッシュし、値を繰り返しスワップし、スタックの一番上にあるアイテムを印刷し、0.5秒間スリープすることで機能します。

これを実行するには、ファイルに保存してから次を入力します。

dc ファイル名

または、bashコマンドラインから直接入力して実行できます

dc <<< '[12:00] [-:-] [[rp!sleep .5] xlax] dsax'


3

Perl 6の 48の41  34バイト

loop {print "\r",<--:-- 12:00>[$_=!$_];sleep .5}
loop {put <--:-- 12:00>[$_=!$_];sleep .5}
sleep .put/2 for |<12:00 --:-->xx*

forループを使用すると、ループを少し短くすることができますfor |<12:00 --:-->xx* {sleep .5;.say}
。– smls

say1 を返すという事実を利用する場合はさらに短くなりますsleep .say/2 for |<12:00 --:-->xx*
-smls

2

ゼリー、22バイト

®‘©ị“12:00“--:--”ṄœS.ß

TIOでは機能しません。QPython3を使用してJellyをAndroidで実行することも楽しい経験でした。

説明

®‘©ị“12:00“--:--”ṄœS.ß    Main link. No arguments. 
®                         Read the register. Initially 0.
 ‘                        Increment. 
  ©                       Save to the register.
   ị                      Get the n'th (wrapping) item of...
    “12:00“--:--”         ["12:00", "--:--"]
                 Ṅ        Print the string and a newline. 
                  œS      Sleep for...
                    .     ...0.5 seconds. (. is an alias for 0.5)
                     ß    Call this link again. 

1
これは寝ますか?説明を追加できますか?
-steenbergh

1
@steenberghが追加されました。遅れて申し訳ありませんが、説明のためにこれらのインデントを編集することは、非モノスペースフォントを使用するSEアプリでは少し難しいです。
-PurkkaKoodari

2

Mathematica、38バイト

Dynamic@If[Clock[]>.5,"12:00","--:--"]

説明

Clock[]

毎秒0から1まで連続的に循環するクロック変数を出力します。

If[Clock[]>.5,"12:00","--:--"]

クロック変数が.5より大きい場合、「12:00」を出力します。そうでない場合は、「-:-」を出力します。

Dynamic@ ...

プログラムを動的にする(常に更新する)


2

Javascript、57 55

setInterval('console.log(++i%2?"12:00":"--:--")',i=500)

ETHproductionsのおかげで2バイト節約


3
setInterval(...,i=500):-)でいくつかのバイトを保存できます
-ETHproductions

2

追記225 214

楽しみのためだけに!これを実際のプリンターに送らないでください!!

/Courier findfont 9 scalefont setfont{usertime 500 mod 5 lt{newpath 9 9 moveto 1 setgray 99 setlinewidth 99 99 lineto stroke 0 setgray}if newpath 9 9 moveto usertime 999 mod 500 lt{(--:--)}{(12:00)}ifelse show}loop

それを試してみてください:

gs -c '/Courier findfont 9 scalefont setfont{usertime 500 mod 5 lt{newpath 9 9 moveto 1 setgray 99 setlinewidth 99 99 lineto stroke 0 setgray}if newpath 9 9 moveto usertime 999 mod 500 lt{(--:--)}{(12:00)}ifelse show}loop'

または

cat <<eops >/tmp/blinkingTwelve.ps
%!
/Courier findfont
9 scalefont
setfont
{
  usertime 500 mod 5 lt {
    newpath
    9 9 moveto
    1 setgray
    99 setlinewidth
    99 99 lineto
    stroke
    0 setgray
  } if
  newpath
  9 9 moveto
  usertime 999 mod 500 lt {
    (--:--)
  } {
    (12:00)
  } ifelse
  show
} loop
eops

それから

gs /tmp/blinkingTwelve.ps
gv /tmp/blinkingTwelve.ps

ただし、より洗練されたビューアでこれを開いて、デスクトップサムネールを気にしないでください。


場合gs -c '...':白いページコマンドプロンプトで、次の表示ウィンドウを育てる以下の解像度を使用する必要がありますgs -r45 -c '...'か小さい用紙サイズgs -r600 -g360x200 -c '...'
F. HAURI

2

Javascript(ブラウザ内)、174 160 159 122 112 111 109 107 66(91)バイト

私はのtakedきたpre私の新しいカウントがあるので、monotypedフォントを使用すると、要件の一部ではないので、66。等幅フォントを使用するためにいくつかの文字が追加されていますが、これは必要ないため、この25文字はカウントしません。

ETHproductionsが14バイトを節約してくれたおかげで、

1バイトを節約するためにKritixi Lithosに

1 3バイトを節約するための管理

さらに2バイトを節約してくれたChristoph

...の[..][b^=1]代わりにsetTimeout... を使用して37バイトを節約しfunction(){..}、二重引用符で置き換えることでさらに10

setInterval("document.body.innerHTML=++b%2?'12:00':'--:--'",b=500)
body{font-family:Courier}

...さらに悪いこと:

66からもっと ...

...しかし、楽しみのために、点滅するディスプレイの精神で:

SVG="http://www.w3.org/2000/svg";XLNK="http://www.w3.org/1999/xlink";
s=["1200","----"];p=0;function d(n){for(i=n.length;i>0;i--) {
  document.getElementById('n'+i).setAttribute('class','n'+n[i-1])}
  document.getElementById('sz').setAttribute('class','n'+n[0])}
setInterval("p=1-p;d(s[p])",500);
#svg2 { --c: #FF6;stroke:#432;stroke-width:12;stroke-linecap:round;stroke-linejoin:round; stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none; } path.b { fill:#543;stroke:none; } .blue     { --c: #68F; } .green    { --c: #6F8; } .red      { --c: #F88; } .dec rect  { stroke: var(--c); } .n1 #B { stroke: var(--c); }  .n1 #C { stroke: var(--c); } .n2 #A { stroke: var(--c); }  .n2 #B { stroke: var(--c); } .n2 #D { stroke: var(--c); }  .n2 #E { stroke: var(--c); } .n2 #G { stroke: var(--c); }  .n3 #A { stroke: var(--c); } .n3 #B { stroke: var(--c); }  .n3 #C { stroke: var(--c); } .n3 #D { stroke: var(--c); }  .n3 #G { stroke: var(--c); } .n4 #B { stroke: var(--c); }  .n4 #C { stroke: var(--c); } .n4 #F { stroke: var(--c); }  .n4 #G { stroke: var(--c); } .n5 #A { stroke: var(--c); }  .n5 #C { stroke: var(--c); } .n5 #D { stroke: var(--c); }  .n5 #F { stroke: var(--c); } .n5 #G { stroke: var(--c); } .n6 #A { stroke: var(--c); }  .n6 #C { stroke: var(--c); } .n6 #D { stroke: var(--c); }  .n6 #E { stroke: var(--c); } .n6 #F { stroke: var(--c); }  .n6 #G { stroke: var(--c); } .n7 #A { stroke: var(--c); }  .n7 #B { stroke: var(--c); } .n7 #C { stroke: var(--c); } .n8 #A { stroke: var(--c); }  .n8 #B { stroke: var(--c); } .n8 #C { stroke: var(--c); }  .n8 #D { stroke: var(--c); } .n8 #E { stroke: var(--c); }  .n8 #F { stroke: var(--c); } .n8 #G { stroke: var(--c); } .n9 #A { stroke: var(--c); }  .n9 #B { stroke: var(--c); } .n9 #C { stroke: var(--c); }  .n9 #D { stroke: var(--c); } .n9 #F { stroke: var(--c); }  .n9 #G { stroke: var(--c); } .n0 #A { stroke: var(--c); }  .n0 #B { stroke: var(--c); } .n0 #C { stroke: var(--c); }  .n0 #D { stroke: var(--c); } .n0 #E { stroke: var(--c); }  .n0 #F { stroke: var(--c); } .n11 #B { stroke: var(--c); } .n11 #C { stroke: var(--c); } .n11 #E { stroke: var(--c); } .n11 #F { stroke: var(--c); } .nA #A { stroke: var(--c); }  .nA #B { stroke: var(--c); } .nA #C { stroke: var(--c); }  .nA #E { stroke: var(--c); } .nA #F { stroke: var(--c); }  .nA #G { stroke: var(--c); } .nB #C { stroke: var(--c); }  .nB #D { stroke: var(--c); } .nB #E { stroke: var(--c); }  .nB #F { stroke: var(--c); } .nB #G { stroke: var(--c); } .nC #A { stroke: var(--c); }  .nC #D { stroke: var(--c); } .nC #E { stroke: var(--c); }  .nC #F { stroke: var(--c); } .nD #B { stroke: var(--c); }  .nD #C { stroke: var(--c); } .nD #D { stroke: var(--c); }  .nD #E { stroke: var(--c); } .nD #G { stroke: var(--c); } .nE #A { stroke: var(--c); }  .nE #D { stroke: var(--c); } .nE #E { stroke: var(--c); }  .nE #F { stroke: var(--c); } .nE #G { stroke: var(--c); } .nF #A { stroke: var(--c); }  .nF #E { stroke: var(--c); } .nF #F { stroke: var(--c); }  .nF #G { stroke: var(--c); } .nR #E { stroke: var(--c); }  .nR #G { stroke: var(--c); } .nO #C { stroke: var(--c); }  .nO #D { stroke: var(--c); } .nO #E { stroke: var(--c); }  .nO #G { stroke: var(--c); } .n- #G { stroke: var(--c); }  .n1 #y { stroke: var(--c); } .n1 #z { stroke: var(--c); }
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 645 230" id="svg2"> <defs id="dfs4"><g id="n"><path d="M 15,5 155,5 145,225 5,225 z" class="b"/> <path id="A" d="M 45,15 125, 15"/><path id="B" d="M 135,25 125,105"/><path id="C" d="M 125,125 115,205"/><path id="D" d="M 25,215 105,215"/><path id="E" d="M 25,125 15,205"/><path id="F" d="M 35,25 25,105"/><path id="G" d="M 35,115 115,115"/><rect id="P" width="5" height="5" ry="2.5" x="130" y="205"/></g><g id="s"><path d="M 10,5 35,5 25,225 0,225 z" id="a" class="b"/><rect id="y" width="5" height="5" ry="2.5" x="13.5" y="145"/><rect id="z" width="5" x="17" height="5" ry="2.5" y="75"/></g></defs><use id="n1" xlink:href="#n" /><use id="n2" xlink:href="#n" transform="translate(150,0)" /><use xlink:href="#s" id="sz" transform="translate(305,0)"/><use id="n3" transform="translate(335,0)" xlink:href="#n" /><use id="n4" xlink:href="#n" transform="translate(485,0)" />
</svg>


1
1000になることができます1e3
Kritixi Lithos

1
のすべてのインスタンスを削除することで、大量のバイトを保存できますwindow.window.setTimeoutはと同じsetTimeoutです。
ETHproductions

1
ttはより短くpre、また固定幅フォントの使用を意味します。(ブロックではなくインライン要素だけですが、ここでは違いはありません。)b=document.body.append(a=document.createElement('tt'))
manatwork

1
d=document;d.body.append(a=d.createElement('tt'));setInterval("a.innerHTML=++b%2?'12:00':'--:--'",b=500)5バイトを節約
クリストフ

1
要素を生成する理由はありますか?setInterval("document.body.innerHTML=++b%2?'12:00':'--:--'",b=500)ファンシーなモノスペースよりも遅れますが、66バイトです。
クリストフ

2

QuickBASIC、167バイト(おいしい)

a%=VAL(RIGHT$(STR$(TIMER*100),2))
b%=a%+50
IF b%>99THEN b%=b%-99
DO
c%=VAL(RIGHT$(STR$(TIMER*100),2))
IF c%=a% THEN PRINT"--:--"
IF c%=b% THEN PRINT"12:00"
LOOP

とにかく勝つつもりはなかった。QBにはfloor()がなく、xミリ秒スリープする機能もありません。したがって、これはTIMERの浮動小数点部分を取得することによって機能します(真夜中から経過した秒数と、2桁の10進数として表される現在の秒の一部を返します)。次に、ループアラウンド「50ユニット」を追加して、フェーズを「-:-」から「12:00」に切り替えるタイミングを決定し、「12:00」からの切り替えに元のTIMER小数を使用します「-:-」に。

最後に、かなり強力なマシンのDOSBoxでQB4.5に準拠してこれを実行しても、ビートはスキップされます。これは、QBが、比較を行っているMSの内部でDO-LOOPおよび評価を実行するのに十分なほど高速ではないためです。FUTUREのボックスが必要です!

とにかく、私は今100を見て、彼らがまだこれを教えているので、彼らはおそらく彼らのComp Sciクラスの答えを持っているので、私はすべてのアメリカの大学生を幸せにしました...


いくつかのスペースを削除できますか?すなわちb% = b% - 99b%=b%-99
Rɪᴋᴇʀ

はい、できると確信していますが、元のIDEを使用しました。行末でEnterキーを押すと、それらが再び追加されます。DOSでIDEの外で編集する必要があります。リンカー/コンパイラーのパラメーターを計算して、ソリューションがまだ機能しているかどうかを確認します...これで短くなりますが、私の努力の範囲内ではありません。
ロバートラーナー

まあ、あなたはこのコードをゴルフする必要があります。さもないと、有効な答えではなく、削除されます。ごめんなさい (私は完全にあなたが何を意味するかを理解しますが、全体としてコミュニティは非golfedの回答に対して決定しました)
Rɪᴋᴇʀ

良い点は、スペースを削除することです。
ロバートラーナー

2

Clojure、79 62バイト

V2

-17バイト。これは、ひどいインデックスループから無限リストのループに変更することで実現します。

無限のリストを作成"12:00"し、"--:--"オーバー繰り返し何度も繰り返し、その後、使用してdoseq常に次のメッセージを引き出し、それを印刷します。

(doseq[m(cycle["12:00""--:--"])](Thread/sleep 500)(println m))

V1

(loop[i 0](Thread/sleep 500)(println(["12:00""--:--"]i))(recur(if(= 0 i)1 0))))

「12:00」と「-:-」定数を圧縮する良い方法が思いつかなかったので、ハードコーディングする必要がありました。

ゴルフをしていない:

(loop [i 0] ; Track which sign we showed last
    (Thread/sleep 500)
    (println (["12:00" "--:--"] i)) ; Index the vector to get the string to print
    (recur (if (= 0 i)1 0))) ; Swap the index, and loop again

2

Pushy、22バイト(非競合)

`--:`wO`12:0`&["500oWF

この答えは、2つのスタックを切り替えて、文字を順番に印刷することで使用します。

`--:`    \ Push these characters to stack 1
 w       \ Mirror around center, yielding "--:--"
 O       \ On the second stack...
 `12:0`  \ Push these characters
 &       \ Duplicate the last (for :00)

 [        \ Infinitely:
  "       \   Print the current stack
  500oW   \   Wait 500 milliseconds
  F       \   Swap stacks
          \ (Implicit end loop)

このoWコマンドは、チャレンジをポストデートする一連の実験的なコマンドの一部であり、この回答は競合しません。


2

Windows PowerShell、 46 55バイト

function a{sleep -m 500;cls};for(){"12:00";a;"--:--";a}

元のコード:

a{sleep -m 500;cls};for(){"12:00";a;"--:--";a}
^ this won't work on other PCs. No idea why.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.