今日は雨です


42

状況

バレンタインデーです。彼女はいつも見つかっこの男のために昨日あなたを左にあなたが愛した唯一の「愚かなと面白くありません」。家に帰る途中、あなたは交通渋滞に巻き込まれ、ラジオで古い曲を聴き、フロントガラスに当たる雨があなたを揺さぶっています。あなたの車の中でしばらくして、あなたはあなたの小さなアパートで彼女以外の何かを考えることができない自分自身を見つけます。光がなく、窓から見つめ、暗闇があなたを取り囲んでいます。話をする人はいません。あなたの友人は、あなたの心を悩ませているこの新しい少女についてあなたに警告した後、ずっと前に行ってしまいました。できることはそれだけなので、コンピューターを起動し、ブラウザーを開いて新しいプログラミングパズルをstackexchangeに投稿し、心を変えようとします。

チャレンジ

地面に降る雨をシミュレートして、選択した言語でプログラムを作成します。出力は、ASCII文字または2D / 3Dレンダリングで構成できます。カメラは固定されています。あなたは真上から地面を見ています。プログラムには、新しい「フレーム」を生成するたびにコンソールまたはページを更新するようなアニメーションが含まれている必要があります。それは現実的でなければなりません、それは少し主観的であることを知っていますが、1つの大きなドロップだけですべての地面を埋めることはできないとしましょう。

出力は画像である必要はありませんが、不可解な言語を使用している場合、.gifを提供して実際の動作を示した方が良いでしょう(もちろん、そうでない場合はスコアに影響しません)。

ルール

  • スコアは使用されたバイトの合計です
  • 色を使用する場合は-20ポイント
  • -50何らかの風のレンダリングを達成する場合
  • 最低得点

レンダリングされるものの非常に基本的な例:

皆さんがもっとうまくやって、この挑戦​​を楽しんでくれることを願っています。

私の英語で申し訳ありませんが、いくつかのエラーを修正したい場合は私の投稿を編集してください

リーダーボード

あなたの名前がリストされていない場合、それはあなたの試みがルールに合わないと考えられているためです。

Tobia - APL - 35  
j6m8 - Processing.js - 38
The Guy with The Hat - Processing - 42  
ace - Processing - 74  
kelunik - JS/CSS - 89  
Riot - Bash - 91  
Michael - JS/jQuery - 105  
Florent - HTML/JS - 123  
David Carraher - Mathematica - 134  
Doorknob - HTML/JS - 150  
undergroundmonorail - Python - 175

トビアおめでとう!


51
最初の段落が実話ではないことを心から願っています。
ケンドールフレイ

1
@DavidCarraherはい、あなたが空を見ているように床を見ています。

8
私は潜在産出量にあまり寛大があります、これはコードのゴルフであるべきとは思わない
たけ

4
このレンダリングのカメラ位置とともに最初の段落は非常に不気味です。
トビア

回答:


26

APL、105文字/バイト* – 20 – 50 = 35スコア

e←{⍞←∊'␛['⍵}
e¨'36m' '?25l' '2J'
{⍵←3⌊⍵+3×0=?t⍴50
⍵{(⍵c)←⍕¨⍵+1
e⍵';'c'H',' .∘⍟'[⍺]}¨⍳t
∇0⌈⍵-1}0⍴⍨t←24 80

*:ほとんどのAPL実装は、APLシンボルを上位128バイト値にマッピングする(レガシー)シングルバイト文字セットの形式をサポートしています。したがって、ゴルフの目的のために、ASCII文字とAPLシンボルのみを使用するプログラムは、chars =バイトとして記録できます。

OS X端末のNode.jsでNickの最新のapl.jsでテストしました。しかし、私は彼の方言に特化したものを何も使用していないので、ANSIターミナルで実行でき、LinuxやRaspberry PIのDyalogなどのd-funs {...}、ストランド割り当て(a b)←...、および通勤をサポートする最新のAPLで動作するはずです(で⎕IO←0

1行目では、(1バイトである)リテラルのエスケープ文字です。Ctrl-V EscLinuxターミナルまたはVim、あるいはAlt-027Windowsのようなものを使用して入力できます。また、端末のサイズを検出する信頼できる方法が見つからなかったため、最後の行の最後にある行と列の数を編集することもできます。

私は、各雨滴が次の形状を通過するという事実によって、50のボーナスを擁護⍟∘.します。シーンが上から見られている場合、わずかに下向きの風の印象を与えます。実際、以下のgifを見ると、地面に消える前に、各ドロップが穏やかに下に向かって左に移動しているような印象を受けるはずです。

ゴルフされていないバージョン:

e←{⍞←∊"␛["⍵}                  # utility to print escape sequence
e¨'36m' '?25l' '2J'            # set cyan, hide the cursor and clear screen
{                              # repeat (⍵=current board of raindrops)
  ⍵←3⌊⍵+3×0=?t⍴50              #   add some new drops (=3) in random places
  ⍵{                           #   print the drops (⍺=drop value, ⍵=coords)
    (r c)←⍕¨⍵+1                #     convert the coordinates to string
    e r';'c'H',' .∘⍟'[⍺]       #     print or clear the drop
  }¨⍳t                         #   ..
  ∇0⌈⍵-1                       #   remove 1 from every drop and repeat
}0⍴⍨t←24 80                    # ..starting with an empty board

出力:

ここに画像の説明を入力してください


APL、異なるスタイル

競争から。

m←×/t←1+(ζη)←2×(βγ)←24 80
e←{⍞←∊(⎕UCS 27)'['⍵}
s←{⍵[β-1-⍳β;1+⍳γ]}
p←{⍺{e'H'⍺,⍨{⍺,';',⍵}/⍕¨⍵}¨(,s⍵)/,1+⍳βγ}
e¨'2J' '36m' '?25l'
{'/'p⍵←(200<m÷?t⍴m)∨0⍪⍵[⍳ζ;1+⍳η],0
' 'p(~⍵)∧0,⍵[1+⍳ζ;⍳η]⍪0
'.∘°'[?(+/,sδ)/3]pδ←⍵∧~d←.2<m÷⍨?t⍴m
∇⍵∧d}t⍴0

ここで私の目標は、雨滴が斜めに落ちて地面にたまるような印象を与えながら、目に見える滴の数(落下または飛び散り)を平均して一定に保つことでした。トリックは/、各サイクルで多数の新しい落下ドロップを作成し、落下ドロップが飛び散ったものを「拭き取る」ことです。

結果は、Matrixコードを奇妙に連想させます。

出力
(5秒ごとのジャークはgifループです)

ここに画像の説明を入力してください


これは素晴らしいことですが、ESC文字が正しく印刷されているとは思いません。i.stack.imgur.com/vLERQ.png geditでもコードを貼り付けようとしましたが、うまくいきませんでした。
ライキング14

スコアが間違っています。質問には「chars」ではなく「bytes」と表示されます。
jazzpi 14

1
@Rikingその部分を編集しました。もう一度試してみてください。
トビア14

@Tobia IBM 5100に座っているあなたの写真を見せてください。chars= bytes引数を購入します。
primo


42

Bash:111バイト-20 = 91ポイント!

ターミナルでの瞑想的な穏やかな霧雨。異なる高さと幅にそれぞれ数字819と41を調整します。

e='printf \e';while :;do for i in {0..819};do((RANDOM<9))&&$e[1\;36m.||$e[1C;((i%41<1))&&$e'
';done;$e[20A;done

スクリーンショット

楽しいボーナスは、雨が降るエリア全体にカーソルがピタパタする方法です。

編集:@manatworkの提案のおかげで140バイトから129バイトに短縮。2番目の編集:@manatworkと@Tobiaの提案のおかげで129バイトから111バイトに短縮され、さらに追加のインスピレーションがあります-コメントを参照してください。

(注:スクリーンショットは、以前のゴルフの少ないバージョンのコードを示していますが、機能的には同じです)


1
余裕があります:echoのオプションを結合して2文字。;の\e代わりに使用して2文字 ;の代わりに\033使用して3文字 算術評価を用いて、5つの文字()。:true((…))e='echo -ne \e';while :;do for i in {0..19};do for i in {0..40};do ((RANDOM<9))&&$e"[1;36m".||$e[1C;done;$e' ';done;$e[20A;done
マナトワーク

1
算術評価の中にシギルは必要ありません。また、コードの最後に末尾の改行が必要です。127文字のみにする必要があります。
マナトワーク

1
@manatworkの意味するところは、二重括弧内にドル記号を使用する必要がないということです((RANDOM<9))。同様に機能します。また、あなたはのための2つを組み合わせることで、あなたのコードを縮小しようとすることができ{0..19}、および{0..40}単一のために{0..819}何か使用して、$((i%41))その内部を。
トビア

1
誰かが私を止める!e='printf \e'は2文字より短いe='echo -ne \e'
トビア

1
を使用して別の文字を$e[C
削除

39

Python、312バイト-50(風)= 262

from pygame import*
R=__import__('random').randint
t,u=640,480;init();d=display;s=d.set_mode((t,u))
w=[255]*3;r=range(t)
a=[[R(0,t),R(0,u),R(3,6)]for i in r]
while time.wait(9):
 d.flip();event.get();s.fill(R(0,99)<1and w)
 for i in r:x,y,z=a[i];draw.line(s,w,(x,y),(x+z,y+2*z));a[i][0]=(x+z)%t;a[i][1]=(y+z*2)%u

サンプル出力(50フレームループ):

実際のプレイパックは、gifが許可するよりも大幅に高速です。


3
@ChristianCareagaできましたが、白が良く見えると思います。
primo

8
私の目には問題があります。あなたは横から雨を見ていますが、ルールは固定カメラが真下を向いていると述べています。
ヨハネスH.

7
ヨッシー または、とても風の強い日です。
primo

20
私は時々稲妻の閃光が好きです!:P
帽子を持つ男

3
行のR=__import__("random").randint代わりに使用することにより、1文字が保存されfrom random...ます。
SimonT 14

35

HTML / JS、170文字-20 = 150ポイント

<canvas id=c></canvas><script>d=400;with(c)width=height=d,t=getContext('2d');t.fillStyle='blue';setInterval("t.fillRect(Math.random()*d,Math.random()*d,5,5)",50)</script>

(追記:に文字列を渡すことで、さらにgolfed setIntervalwith!の、自動IDの変数名は...それはそう間違った感じshuddersを

ランダムな青い長方形を描くだけです。

HTML / JS、309文字-20-50 = 239ポイント

今風で!

<canvas id=c></canvas><script>s=400;r=Math.random;with(c)width=height=s,t=getContext('2d');t.fillStyle='blue';o=[];setInterval("t.clearRect(0,0,s,s);for(i=0;++i<o.length;)d=o[i],t.fillRect(d[0],d[1],d[2],d[2]),d[0]+=1,d[1]+=2,d[2]-=1,d[2]<0?o.splice(i,1):0;if(r()<.6)o.push([r()*400,r()*400,20])",50)</script>


163バイト:<canvas id=c /><script>d=400;with(c)width=height=d,t=getContext('2d');t.fillStyle='blue';setInterval("t.fillRect(Math.random()*d,Math.random()*d,5,5)",50)</script>AAAHHH!使用しましたwith!私はに文字列を渡すよりも汚い感じsetIntervalたp:
ダークアブソルNiet

@NiettheDarkAbsolありがとう;)(少なくともChromeでは)canvas自動クローズできないようですが、それ以外は完全に動作します!(また、自動ID変数名を使用すると、非常に汚い感じがします:D)
Doorknob

一部のブラウザはその領域でより寛大に見えます...しかし、それを使用する必要がなくなりますonload。重複を避ける@Florentの方法が好きだと言わなければならないMath.random()
ニートザダークアブソル

canvasChromeで@Doorknobを自動クローズ!私の答えは、このブラウザで開発/テストされました。
フローレント

1
滴が地面/水たまりに沈んでいる状態で、2番目の投票に賛成票を投じてください。
GreenAsJade 14

34

JS + jQuery(172-20-50 = 102)

ブラウザコンソールでその行をコピー/貼り付けます(通常はF12キーを押します)。

r=Math.random;w=$(window);setInterval("$('<b>♥</b>').css({color:'red',position:'fixed',top:r()*w.height(),left:r()*w.width()}).appendTo('body').animate({fontSize:0},3e3)",9)

バレンタインデーに赤いハートが雨を降らせます!

ここに画像の説明を入力してください


1
まあ、それは現実的ではありません。ハートは画面の上部から来て、ページのランダムな位置に固執します。それは実際には視点の条件と一致しません。

10
ああ!どうすれば止められますか?!
帽子の男

1
@ user2509848しかし、他の方法はありますか?
帽子の男

3
@TheGuywithTheHat、ページを再読み込み
マイケルM.

19
ブリリアント!これが問題の核心を捉えていると思います。
アンドリュー

26

Mathematica

134-20 = 114

2D

n = 99; m = Array[0 &, {n, n}]; r := RandomInteger[{1, n}, {2}]
Table[ArrayPlot[m = ReplacePart[m, r ->  1], ColorRules -> {1 -> Blue}], {k, 250}];
Export["d.gif", d]

2D


3D

雨滴の形状は、z軸を中心とした回転プロットによって作成されます。

最初に、ディスプレイ領域よりも上に広がる領域に雨が発生します。降雨の外観は、視点をz軸に沿って上方にシフトすることにより実現されます。(各雨滴の位置を再計算するよりも効率的です。)

雨

r = RandomInteger; z = Table[{r@30, r@30, r@160}, {100}];
w = RevolutionPlot3D[{.7 Sin[x] Cos[x], 0,   1.4 Sin[x] }, {x, 0, -Pi/2}, 
PerformanceGoal -> "Speed"][[1]];
c = Map[Translate[w, #] &, z]; 
p = Table[Graphics3D[c, PlotRange -> {k, k + 50}], {k, 1, 100}]
Export["p.gif", p]

風と共に

風で雨を降らせるにはかなりのオーバーヘッドがあります。とにかくここに含めます。

青い床は、関心のあるエリアに限定された{x、y}ビュー領域を維持します。いくつかの不具合がありますが、まあ、

r = RandomInteger;
z = Table[{r@120, r@30, r@180}, {800}];
w = RevolutionPlot3D[{.7 Sin[x] Cos[x], 0,   1.4 Sin[x] }, {x, 
     0, -Pi/2}, PerformanceGoal -> "Speed"][[1]];
c = Map[Translate[w, #] &, z];
g[k_, z1_, w_, c1_] :=
 Module[{z2},
  z2 = Cases[z, {x_, _, _} /; 0 + k < x < 30 + k];
  c = Map[Translate[w, #] &, z2];
  Graphics3D[{Polygon[{{0 + k, 0, 1 + k}, {30 + k, 0, 1 + k}, {30 + k,
        30, 1 + k}, {0 + k, 30, 1 + k}}], c}, 
   PlotRange -> {k, k + 50}]]

p = Table[g[k, z, w, c], {k, 1, 100, 1}];
Export["p.gif", p]

風と共に


真上から

最も近い雨滴は切り取られますが、私はそれを見落とします。

上から3D

m=40;
r=RandomInteger;
positions=Table[{r@m,r@m,r@1000},{800}];
g[lowZ_,pos_]:=
Module[{hiZ=lowZ+103},
Graphics3D[{PointSize[Small],White,Point[{{0,0,lowZ},{0,m,lowZ},{m,0,lowZ},{m,m,lowZ},{0,0,hiZ},{0,m,hiZ},{m,0,hiZ},{m,m,hiZ}}],
ImageSize-> 350,Sphere/@Cases[pos,{_,_,z1_}/;lowZ<z1<hiZ-2]},PlotRange->{lowZ,hiZ}, 
ViewPoint-> {0,0,1},ImagePadding->5]]

50文字未満で横に移動すると、スコアが下がります。:)
アリカグラヤン

1
私はこの1つを愛する

最後の1つに+1、正しいカメラアングルを使用しますが、カメラが雨の一部をブロックすることを忘れました。...;)
GreenAsJade 14

@ GreenAsJade、3D(上から)視点のクリッピングが修正されました。
DavidC 14

甘いが、私はあなたが思っていたよりも軽薄でした。私はこれを見下ろす物理的なカメラがあることを意味していたので、雨滴の一部をブロックするはずです:%)
GreenAsJade 14

10

HTML / JavaScript、156 123(143-20)

<body bgcolor=0 onload="t=c.getContext('2d');t.fillStyle='#07d';setInterval('n=Math.random()*4e4;t.fillRect(n%270,n/150,1,1)',1)"><canvas id=c>

注釈付きバージョン:

<body bgcolor="#000">
<canvas id="c"></canvas>
<script>
  onload = function() {
    // Retrieve the rendering context
    t=c.getContext('2d');
    // Set rain color
    t.fillStyle='#07d';
    // Render whenever it is possible
    setInterval(function() {
      // Generate a number between 0 and 40,000
      // 40,000 ~= 270 * 150
      n=Math.random()*4e4;
      // Draw a raindrop.
      // Since x and y are not rounded, the raindrop looks blurry!
      t.fillRect(n%270,n/150,1,1)
    }, 1);
  };
</script>
</body>

7

Smalltalk(Smalltalk / X)

ランダムな風で;-)

|BG CLR N1 H W v WIND drops gen newDrops draw remove move buffer|


BG := Color black.
CLR := Color blue lightened.
H := 100.
W := 100.
N1 := 10.
WIND := 0.
drops := OrderedCollection new.

gen := [:n | ((1 to:n) collect:[:i | Random nextIntegerBetween:1 and:W] as:Set) collect:[:x | x@0]].
newDrops := [drops addAll:(gen value:N1)].
draw := [buffer fill:BG; paint:CLR. drops do:[:d | buffer displayPoint:d]].
remove := [drops := drops reject:[:d | d y > H]].
move := [:wind | drops := drops collect:[:d| (d x + wind)\\W @ (d y + 1)]].
v := View new openAndWait.
buffer := Form extent:(v extent) depth:24 onDevice:v device.

[
    [v shown] whileTrue:[
        draw value.
        v displayForm:buffer.
        move value:WIND.
        remove value.
        newDrops value.
        WIND := (WIND+(Random nextBetween:-1 and:1)) clampBetween:-5 and:5.
        Delay waitForSeconds:0.1.
    ]
] fork.

ビューでの出力: ここに画像の説明を入力してください


6
降る雨の側面図であり、地面に降りかかる雨ではないため、資格がありません。まだ素晴らしい風の効果。

6

処理中、94-20 = 74

void setup(){background(0);fill(0,0,255);}
void draw(){ellipse(random(0,99),random(0,99),3,3);}

(読みやすくするために新しい行が追加されました。)

クリックしてここにオンラインデモのために。


1
処理は、このような問題に本当に適しています。
cjfaure 14

Firefoxでは表示できません。デフォルトのセキュリティ設定はJavaアプレットをブロックし、オーバーライドする方法を教えてくれません。私の知る限り、JavaScriptへのProcessing.jsの移植版があります。JavaScriptに変換してリンクを投稿できれば幸いです。
マルツェルム

@marczellm UbuntuでFirefox 27.0を使用していますが、正常に動作します。プラグインを許可するかブロックするかを尋ねるプロンプトはありませんか?JSバージョンも見ていきます。
ace_HongKongIndependence

@aceすべてのプロンプトに「許可」するように指示した後、セキュリティメッセージによってブロックされます。JSバージョンをありがとう。
マルツェルム

1
@marczellmが答えにjavascriptバージョンを追加しました、お楽しみください:)そしてたぶん盲目的な推測、おそらくあなたの現在のJavaプラグインのバージョンは古く、既知のセキュリティ問題を持っています
ace_HongKongIndependence

5

バッシュ

while true;do echo " / / / / /";echo "/ / / / / ";done

「雨」がどのように見えなければならないかについての厳密な要件がないため、これがコードゴルフであるかどうかはわかりません。

編集:カメラが真下を向いているように見せたい場合は、これを使用します:

while true;do echo " . . . . .";echo ". . . . . ";done

7
「カメラは固定されています。あなたは真上から地面を見ています。」これは横から雨を見ているように見えますか?
地下

2
9文字を保存しますwhile echo \ / / / / /;do echo / / / / /;done(または再帰関数を使用してさらに数文字を保存しますが、すぐにスタックが爆発します)。@undergroundmonorail強風、カメラに対して斜め。
ジル「SO-悪であるのをやめる」

@Gillesその場合、while echo -e '\e[0;34m / / / / /';do echo / / / / /;doneボーナスを使って-13まで処理できます:)
地下

4
それは間違いなく雨のように見えません:D
Kiwy

5
私はこれが答えとして考えられるべきではないと本当に思います。要するに、現実的ではありません。詳細な議論:質問を正しく解釈した場合、雨はランダムに(または少なくとも擬似ランダムに)降るはずであり、長期間にわたって、単位面積あたりの分布は類似するはずです。(これが雨の仕組みですよね?)しかし、この答えでは、雨滴の隣に雨滴がないことが保証されているため、単位面積を1つのキャラクターの面積とすると、分布は不均一です。
ace_HongKongIndependence

3

Python 2.7:195-20 = 175

ここでできることは他にもあると思いますが、これは私が今持っているものです:

import os,time
from random import*
l=[i[:]for i in[[' ']*100]*50]
while 1:
 os.system('clear')
 l[randint(0,49)][randint(0,99)]='.'
 print'\033[94m\n'.join(''.join(r)for r in l)
 time.sleep(.05)

出力方法を思い出したら、出力のgifを投稿します。

これはLinuxで機能します。に置き換える'clear''cls'Windowsで機能しますが、ANSIカラーは機能せず、ボーナスを失います。

に初期化された1文字の文字列の2D配列があります。0.05秒ごとに、そのうちの1つがに設定されてランダムに選択され.、画面が再描画されます。

from random import*とにかくセルを選択する最良の方法であるとは確信していませんが、2つの文字import os,time,randomrandom.randint()2回以上使用して保存します。使いたかっrandom.choice()たのですが、保存した以上の文字を無駄にしない不変の文字列を回避する方法は考えられませんでした。


3
l=[i[:]for i in[[' ']*100]*50]、あたりとしてstackoverflow.com/a/6688361/1114687
198-20

ああ、すごい、今まで見たことがない。私がそれを正しく読んでいる場合、スライス表記はそれが一意のリストであり、同じリストへの別の参照ではないことを確認する以外は何もしませんか?かっこいい!ありがとうございました!
地下

私はもともとを試しましたl=[[' ']*100]*50が、同じ100要素リストへの参照が50個作成されるため、それを回避するための最短の方法を探し、上記のリンクのStack Overflowの答えを見つけました。
n.st

2

132 + 27-20-50 = 89

Javascript(132)

r=Math.random;setInterval("$('body').append($('<i>∘</i>').css({left:r()*2e3,top:r()*2e3}).animate({left:'+=70',fontSize:0},500))",1)

CSS(27)

i{color:blue;position:fixed

デモ:http : //jsfiddle.net/kelunik/5WC87/4/embedded/result/


それは側面からのもので、現時点では資格がありません。

@BenHあなたは正しい、その点を見逃した、新しいバージョンが私の答えになりました。
ケルニック

firefoxコンソールでコードを試しても何も起こらないようです:/

@BenHそれが、jsfiddle-demoがある理由です。
ケルニック

見えませんでした。感謝


1

Processing.js、86-20 = 66

...しかし、それはゆっくりと消えていきます(地面は自然に雨を吸収します)。そのためのポイントは?

g=99;r=random;void draw(){fill(0,9);rect(0,0,g,g);fill(0,g,r(g));rect(r(g),r(g),2,2);}

ボーナス機能には、緑がかった色と青がかった色が含まれます(明らかに「都市」の雨です)。

また、ここでJavaScriptハックを使用できるようになったことを非常に嬉しく思いました。これは処理中のため、注意してください。js、g = 99の型なし宣言、またはrfor random(クロス言語エイリアス!)のエイリアスのようなものをスローできます。

縮小する他のアイデアはありますか?

読み取り可能なバージョン:

g = 99;
r = random;                  // Javascript trickery
void draw() {
    fill(0, 9);
    rect(0, 0, g, g);        // Fade the background
    fill(0, r(g), r);
    rect(r(g), r(g), 2, 2);  // Add a new drop
}

ここですべてを見ることができます

...さらに、フェードなしの別のバージョン:58-20 = 38

色あせが気に入らず、灰色の汚れが気にならない場合:

r=random;void draw(){fill(0,0,255);rect(r(99),r(99),2,2);}

1

Tcl / Tk、139-20 = 119

自分の答えを再利用するhttp://codegolf.stackexchange.com/a/143018/29325

対話型シェルで実行する必要があります

gri [can .c -w 40 -he 40]
set x 0
wh 1 {.c cr o $x [set y [exp int(rand()*40)]] $x [set x $y] -f #[form %06x [exp int(rand()*255**3)]]
upd}

残念ながら、に変換expr int(rand()*するprocと、スクリプトはもう1バイト増えます!

ここに画像の説明を入力してください

停止するには、言い表せない「X」ボタンをクリックするだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.