アスキーリスクを描く


25

アスタリスクを使用した図形の描画に関する質問が豊富にあるため、アスタリスクが非常に多いため、ASCIIテーブルを使用して1つ描画する必要があると考えました。

チャレンジ

あなたの仕事は、入力をまったく受け取らず、この正確なテキストを出力するプログラムまたは関数を書くことです。

          !
         "#
         $%
         &'
         ()
         *+
         ,-
         ./
         01
23456789:;<=>?@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[
        \]^_
       `a  bc
      de    fg
     hi      jk
    lm        no
   pq          rs
  tu            vw
 xy              z{
|}                ~

参考のために、このサイトには完全なASCIIテーブルがリストされています。

ルール

  • 上記のように、出力は正確なテキストである必要があります。先頭または末尾の空白は許可されます。
  • 標準的なゴルフの抜け穴が適用されます-インターネットなどからこのASCIIリスクを読み取ることはできません。
  • これはであるため、最短のソリューション(バイト単位)が優先されます。

2
私はこの挑戦を試してみたい...しかし、それはちょっと危険です。恐ろしいユーモアを許してください。
ハイパーニュートリノ

1
Stack OverflowにはNoBadJokesポリシーがあるため、そのコメントを無視する必要があります。申し訳ありませんが、それは政策

2
はい。ポリシーに違反して申し訳ありません。返信して私のコメントを無視していただきありがとうございます。
ハイパーニュートリノ

回答:


5

05AB1E40 38 37 36 35バイト

žQ2ô376S3*£`2ôvyN·ð×ýð«}rsJ2äsr)˜.c

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

説明

žQ                                   # push the printable ascii chars
  2ô                                 # split into pairs
    376S                             # split the number 376 into a list of digits
        3*                           # multiply each by 3 to get [9,21,18]
          £                          # divide the pairs of ascii chars into 
                                     # pieces of these sizes
           `                         # flatten list to stack
            2ô                       # split the "legs" of the asterisk into pairs of pairs
              v                      # loop over the pairs of pairs
               yN·ð×ý                # join the pairs by index*2 spaces
                     ð«              # append a space
                       }             # end loop
                        rs           # move the middle section to top of stack
                          J2ä        # convert to a string split into 2 pieces
                             sr      # rearrange the stack in the correct order
                               )˜    # wrap in a flattened list
                                 .c  # pad each element with spaces on either side

žQ2ôÐ9£s30£R21£RøsrR18£R2ôvyN·ð×ý})˜.C»、私は39を得たが、私はあなたがZIPでいくらかを剃ることができると思う。
魔法のタコUr

@carusocomputing:文字を連続したままにしたいので、zipはここではあまり有用ではないと思います。ただし、最初はすべてをペアで分割することをお勧めします。非常に多くのrsを使用するのはもったいないように感じますが、私はそれを回避する方法を知りません。
エミグナ

13

Python 3、110バイト

s='%c';print(('\n'.join(['%10c%c']*9+[s*21]*2+[' '*(8-i)+s*2+'  '*i+s*2for i in range(9)]))%(*range(32,128),))

テンプレートを生成します

         xx
         xx
         xx
         xx
         xx
         xx
         xx
         xx
         xx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
        xxxx
       xx  xx
      xx    xx
     xx      xx
    xx        xx
   xx          xx
  xx            xx
 xx              xx
xx                xx

%cためにx、そして、上の文字列補間を使用してrange(32,128)パターンにASCII値を挿入します。

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

Python 2は1バイト長く、タプルのアンパックは長くなりますが、短くなりprintます。

s='%c';print('\n'.join(['%10c%c']*9+[s*21]*2+[' '*(8-i)+s*2+'  '*i+s*2for i in range(9)]))%tuple(range(32,128))

エッフェル塔の類似賞に値する!
sergiol

11

V54、50バイト

¬ ~9ñ9É 11|á
ñ2ñ20lá
ñ$18é 9ñ^y|Ehé
Pf xxywk$hP>ñd

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

通常とは異なり、このプログラムには印刷できない文字は含まれていません。

説明:

¬ ~                     " Insert the entire printable ASCII range
   9ñ           ñ       " 9 times:
     9É                 "   Insert 9 spaces at the beginning of this line
        11|             "   Move to the 11'th column on this line
           á<CR>        "   And append a newline after the 11'th column

バッファは次のようになります。

          !
         "#
         $%
         &'
         ()
         *+
         ,-
         ./
         01
23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

次に、中間を構築します。

2ñ        ñ             " Two times:
  20l                   "   Move 20 characters to the right (because 'l' == 'right', duh)
     á<CR>              "   Append a newline

ここで少し奇妙になります。

$                       " Move to the end of this line 
 18é                    " Insert 18 spaces before the last character
     9ñ                 " Repeat the following 9 times:
       ^                "   Move to the first non-whitespace character
        y|              "   Yank all the whitespace before the current character. 
                        "   We'll call this the "Leading whitespace register"
          E             "   Move to the end of the current WORD (up to before a space)
           h            "   Move back one character
            é<CR>       "   And insert a newline before the current character
P                       "   Paste the leading whitespace for indentation
 f                      "   Move forward to a space
   xx                   "   Delete two characters
                        "   (Note how we are inbetween the two bottom branches right now)
     yw                 "   Yank everything upto the next branch (all spaces)
                        "   We'll paste this on the line up so that we can yank it again later
                        "   To keep track of how far apart the branches are
       k$               "   Move up a line and to the end of that line
         hP             "   Move back a character and paste the whitespace we yanked
           >            "   Indent this line by one space
            ñ           "   End the loop

ここに重要な注意事項があります。>このコマンドは、実際にあるオペレータのテキストが上で動作する、それが引数なしで何もしないことを意味し、。例えば、

>_      "Indent the current line
>>      "Indent the current line
>j      "Indent the current and next line
>G      "Indent every line

ただし、このコマンドはループ内にあるため、演算子を指定しないことで文字を保存できます。ループの最後で、保留中の演算子がある場合、_暗黙的に引数として(現在の行)を埋めます。

ここで、このループは少し奇妙であり、すべてのテキストがどのような状態にあるかを常に把握するのは困難です。したがって、この単純なプログラムを使用しNループ後の外観を確認できます。

9に設定すると、削除するテキストが少しあることがわかります。(現在の行だけ)。

したがって、現在の行をで削除しddます。ちょっと待って!演算子が暗黙的に入力される引数を取る必要があると私が言った方法を知っていますか?引数は、プログラムの最後に暗黙的に入力されます。したがって、ddor d_(または同等)ではなく、dVを埋めてVを埋めること_ができます。


暗黙の悪用をすてきな仕事ÿ:)
Kritixi Lithos

5

Pythonの3 170 165 155 147バイト

私はこれをたくさんゴルフしました、それがどのように機能するか忘れました...

i=b=0
for x in range(32,127):a=x%2<1;c=x>90;d=x<50;print(end=[' '*9*d,['\n'+' '*(8-i),'  '*~-i][b]][c]*a+chr(x)+'\n'*(x==70or d*x%2));b^=a;i+=b*c*a

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


5

JavaScript(ES6)、 156115 114バイト

残念なことに、悪名高いのString.fromCharCode()は19バイトです。

f=(x=y=k=1)=>k<96?String.fromCharCode(x-22?y/2^5&&(y>9?x-y+1>>1&&22-y-x>>1:x/2^5)?32:31+k++:(x=!++y,10))+f(x+1):''

console.log(f())

書式設定およびコメント化

f = (                         // given:
  x =                         //   - x = current column
  y =                         //   - y = current row
  k = 1                       //   - k = current ASCII character code, minus 31
) =>                          //
  k < 96 ?                    // if we havent't reached character #127 (96 + 31):
    String.fromCharCode(      //   let's compute the next character
      x - 22 ?                //   if x is not equal to 22 (end of line):
        y / 2 ^ 5 && (        //     if y doesn't equal 10 or 11 (horizontal bar):
          y > 9 ?             //       and either y is greater than 9:
            x - y + 1 >> 1 && //         and we are not located on one of the
            22 - y - x >> 1   //         bottom diagonals
          :                   //       or y is less or equal to 9:
            x / 2 ^ 5         //         and x doesn't equal 10 or 11 (vertical bar)
        ) ?                   //     then:
          32                  //       append a space
        :                     //     else:
          31 + k++            //       append the next ASCII character
      :                       //   else:
        (x = !++y, 10)        //     increment y, reset x and append a LineFeed
    ) + f(x + 1)              //   do a recursive call with x + 1
  :                           // else:
    ''                        //   stop recursion

String.fromCharCode(...[...Array(n)].map(_=>k++))4バイト節約することができると思います。
ETHproductions

@ETHproductions String.fromCharCode()アレイを呼び出すというアイデアは気に入っていますが、別のアプローチを試みました。とにかくありがとう!
アーナウド

3

QBIC153 151バイト

[32,49,2|?space$(9)+chr$(a)+chr$(a+1)][2|X=Y[a,a+20|X=X+chr$(c)]a=a+21?X][0,8|X=space$(8-d)[0,1|X=X+chr$(a+e)]X=X+space$(d*2)[2,3|X=X+chr$(a+f)]a=a+f?X

それは本当に一連のFORループであり、intをキャラクターにキャストしています(chr$())。

サンプル出力:

          !
         "#
         $%
         &'
         ()
         *+
         ,-
         ./
         01
23456789:;<=>?@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[
        \]^_
       `a  bc
      de    fg
     hi      jk
    lm        no
   pq          rs
  tu            vw
 xy              z{
|}                ~


3

PHP、110 105 103 93 91バイト

for(;$c<95;$y+=!$x%=21)echo"
"[$x],chr(31+($y%11<9&(max($y,10)-abs(9.5-$x++))%11<9?:++$c));

主要な改行を印刷します。オンラインで実行-nrまたはテストする

基本原則はArnauldから採用されていますが、これは繰り返します。
また、PHPの暗黙の型キャストからも十分に活用でき
ます。文字列インデックスの場合はNULLからintの場合、floatからintの場合%、booleanからintの場合は&for +=です。

擬似コードによる説明

If $x is 0, print a newline. ("\n"[$x] is newline for $x=0; empty for every larger $x)
if $y is neither 9 nor 10 (not middle part: $y<9|$y>10 <=> $y%11<9)
AND distance to center == abs(9.5-$x) (in [0.5,1.5,..,10.5]) ->
    lower part:     abs($y-10-distance)>1                   => ($y-distance)%11<9
                (this works because $y is always <20)
    upper part: $x<9|$x>10 <=> distance>1 <=> 10-distance<9 => (10-distance)%11<9
                (this works because % has negative results for negative first operands)
    both parts: $y>9?$y:10 <=> max($y,10)
// $a?:$b evaluates to $a if $a is truthy, to $b else
// and the ternary condition evaluates to 1 if the coords are not in the shape
then print chr(31+1) = space
else print chr(31+incremented $c)

2

Pyth、53バ​​イト

js.e@[+L*9;cb2c2b.e+*-8Ydj*yYdZcL2cb4)kcsrdC127,18 60

結果を出力するプログラム。

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

使い方

srdC127 印刷可能なASCII文字のリストを作成し、これを文字列に連結します。

c....,18 60この文字列をインデックスで分割し1860、出力のさまざまな部分に対応する3つの文字列のリストを提供します:上、中央、下。

.e文字列as bとそのインデックスとして文字列の列挙マップを開始しますk

[...)ダイアグラムの各部分に必要なアクションを含むリストを作成します。を使用して、現在のインデックスでリストにインデックスを付けることにより、正しいアクションが選択され@...kます。

  • cb2文字列を文字のペアに分割し、各ペアの+L*9;前に9スペースを追加します。

  • 中間

    c2b 文字列を2つの等しい長さの文字列に分割します。

  • cL2cb4 文字列を4文字のグループに分割し、各グループをペアに分割します。

    .eは文字列のペアをZ、そのインデックスをとして列挙マップを開始しますY

    j*yYdZ2*Yスペースでペアを結合し、スペースを+*-8Yd追加し8-Yます。

jsすべての結果をマージし、結果のリストを改行で結合します。これは暗黙的に印刷されます。


2

Haskell、144バイト

b!n=[1..n]>>b
('*':r)#(a:s)=a:r#s
(a:r)#s=a:r#s
r#s=r
p="**"
f=unlines([" "!9++p]!9++["*"!21]!2++[" "!(8-n)++p++" "!(2*n)++p|n<-[0..8]])#[' '..]

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

説明:

b!n=[1..n]>>b!リストまたは文字列を繰り返す関数を定義しますb n -times。

unlines([" "!9++p]!9++["*"!21]!2++[" "!(8-n)++p++" "!(2*n)++p|n<-[0..8]]) この関数を使用して、アスタリスクのアスタリスクを描画します(ああ、皮肉です!):

         **
         **
         **
         **
         **
         **
         **
         **
         **
*********************
*********************
        ****
       **  **
      **    **
     **      **
    **        **
   **          **
  **            **
 **              **
**                **

#は、指定された*リストの文字で文字列を連続的に置換する関数として定義されます。上記のアスタリスクのアスタリスクを[' '..]使用して呼び出されます。これは、スペースで始まるすべての文字の無限リストです' '


ここでのパーティーには遅すぎるが、それは" "!(2*n)可能性がある"(TWO SPACES)"!n
リン


2

J、63

(競合しない)

a.{~32>.31+20 21$(* +/\),(9 21&$@{.,1:,1:,}.)(+.1&|."1)|.=|i:10

式は右から左に評価します。

  • i: 10 -10から+10までカウントします
  • | +10から0に戻して+10に戻すには腹筋をとる
  • = 0のブロックで1のV形状を取得する自己分類
  • |. / \形状を取得するための行の逆順
  • ( +. 1&|."1 ) フック式は各行を1つ右にシフトし、ORは元の
  • ( 9 21&$@{. , 1: , 1: , }. ) 水平に入れて上部を伸ばすネストされたフォーク
  • , 累積のためにブロックを線形シーケンスにレイズする
  • ( * +/\ ) 累積し、自己増殖する
  • 20 21 $ 形状を21要素の20行のブロックに戻す
  • 31 + 最初の1はスペース文字コード32でなければならないため、31を追加します
  • 32 >. 32階
  • a. {~ ASCII組み込みから文字を選択

4
PPCGへようこそ!どうしてこれを競合しないとマークしたのですか?
マーティンエンダー

コンテストが開始されてから長い時間[15分]であるにもかかわらず、努力を加えると思いました。各パズルが開いたままであると言っていますか?..また、REPLの外側に印刷するJ式についても、つまりスクリプトで実行する場合、smoutputコマンドまたは同等のプレフィックスを付ける必要があります
-jayprich

通常、課題は無期限に開かれたままです(回答が既に受け入れられている場合でも)。時々、新しいエントリに閉じられる特別な種類のチャレンジがあります(アンサーチェーン、警官と強盗、キングオブザヒルが頭に浮かぶ)が、通常はチャレンジの説明でそう言われます。これが有効な回答形式であるかどうかについては、より多くのJ経験を持つ人に尋ねる必要がありますが、REPL回答は、そのようにマークされている限り、通常は問題ありません。
マーティンエンダー

1

ルビー、91バイト

->{(-11..8).map{|i|["%s"*21,"%#{9-i}s%s%#{i*2+1}s%s","%10s%s"][i/2<=>-1]}*$/%[*' '..?~,$/]}

非ゴルフ

->{(-11..8).map{|i|            #For each line
  ["%s"*21,                    #If i/2==-1 make a format string of 21 %s
   "%#{9-i}s%s%#{i*2+1}s%s",   #If i/2>-1 make a format string %{9-i}s%s%{i*2+1}s%s
   "%10s%s"][i/2<=>-1]         #If i/2<-1 make a format string %10s%s
  }*$/%                        #Join the format strings with newlines $/ then use sprintf operator %
  [*' '..?~,$/]                #to replace the %s with *' '..'~' and a newline for last corner.
}

1

私はC#で答えを逃したので...

C#(.NET Core)175 174バイト

_=>{var r="";for(int i=0,j,d=32,s=1;i<54;i++)for(j=0;j++<"*#4#4#4#4#4#4#4#4#+K)%1###/#%#-#'#+#)#)#+#'#-#%#/###1#"[i]-33;)r+=(char)(i%2<1?32:d++)+(s++%21<1?"\n":"");return r;}

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

  • Kevin Cruijssenのおかげで1バイト節約できました!

1
intforループ内にsを置くことで、バイトを保存できます。for(int i=0,j,d=32,s=1;i<54;i++)for(j=0
ケビンCruijssen

1

Tcl、209バイト

proc I {} {incr ::i}
proc A {} {time {append a [$::F %c [I]]} 21;puts $a}
set i 31
time {puts [[set F format] %10c%c [I] [I]]} 9
A
A
time {puts [$F %[expr 32-[I]/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

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


Tcl、212バイト

proc I {} {incr ::i}
proc A {} {time {append a [$::F %c [I]]} 21;puts $a}
set i 31
time {puts [[set F format] %10c%c [I] [I]]} 9
A
A
time {puts [$F %[expr (129-[I])/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

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

tcl、213

proc I {} {incr ::i}
set F format
proc A {} {time {append a [$::F %c [I]]} 21;puts $a}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
A
A
time {puts [$F %[expr (129-[I])/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ


tcl、214

proc I {} {incr ::i}
set F format
proc A {} {time {append a [$::F %c [I]]} 21;puts $a}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
A
A
time {I;puts [$F %[expr (129-$i)/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ


tcl、227

proc I {} {incr ::i}
set F format
proc A {} {time {append ::a [$::F %c [I]]} 21}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
A
set a $a\n
A
puts $a
time {I;puts [$F %[expr (129-$i)/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ

tcl、236

proc I {} {incr ::i}
set F format
proc A {} {time {append ::a [$::F %c [I]]} 21}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
set a ""
A
set a $a\n
A
puts $a
time {I;puts [$F %[expr (129-$i)/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ


tcl、237

proc I {} {incr ::i}
set F format
proc A {} {time {set ::a $::a[$::F %c [I]]} 21}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
set a ""
A
set a $a\n
A
puts $a
time {I;puts [$F %[expr (129-$i)/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ


同じサイズの代替アプローチ:

proc I {} {incr ::i}
set F format
proc A b {time {upvar $b c;set c $c[$::F %c [I]]} 21}
set i 31
time {puts [$F %10c%c [I] [I]]} 9
set a ""
A a
set a $a\n
A a
puts $a
time {I;puts [$F %[expr (129-$i)/4]c%c $i [I]][$F %[expr $i/2-45]c%c [I] [I]]} 9

デモ

Tcl、288

lassign {set while puts format incr expr} S W P F I E
$S i 31
$W \$i<48 {$P [$F %10c%c [$I i] [$I i]]}
$S a ""
$W {[$I i]<71} {$S a $a[$F %c $i]}
$S a $a\n
$W \$i<92 {$S a $a[$F %c $i];$I i}
$P $a
$W \$i<128 {$P [$F %[$E (129-$i)/4]c%c $i [$I i]][$F %[$E $i/2-45]c%c [$I i] [$I i]]; $I i}

デモ


tcl、297バイト(単純な試み)

set i 31
while \$i<48 {puts [format %10c%c [incr i] [incr i]]}
set a ""
while {[incr i]<71} {set a $a[format %c $i]}
set a $a\n
while \$i<92 {set a $a[format %c $i];incr i}
puts $a
while \$i<128 {puts [format %[expr (129-$i)/4]c%c $i [incr i]][format %[expr $i/2-45]c%c [incr i] [incr i]]; incr i}

デモ


1
「ナイーブな試み」とはどういう意味ですか?代わりにタイトルに長さを入れるべきではありませんか?

1
まだ繰り返しが多いので、ゴルフをするスペースがもっとあるということです。そして、もっとゴルフをします。
-sergiol

生のアプローチには254バイトのエクステントがあります。
-sergiol


@ASCIIのみ:ありがとう。私の提案はあなたの提案と正確に一致していません!;)
sergiol

1

詩的、899バイト

ill be honest with you
i expect a big solitude
i guess i had a guilt
my own idea being:i was real alone,i was a lonely human
also,i am still
o,i guess i was expecting a shift
i figured,surely i know i am tired of silence
now i dreamed for a shift
a magical desire cant come
i am barely a man,so i guess i see why a woman i see ignores myself
i know i am awful
o,a night of passion and a moment of love
i am truly the foolish person,every time i am saying i may recapture a love
o,i think i can,i think i can
i really do know i am unfit
o,i notice a lot,i think i know i am unfit
o,a novel,or perhaps poetry in code,i do enjoy the writing
and i shudder and i wonder in a moment
i was a weirdo,i was a freak,or like,i am creepy
o,i think i was a misfit
i know i am,really
o,i ought not concern myself
and sure,i am still some joyless man
i focused and i tried
a lasting solace and joy is nearby for me

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

Poeticは、2018年にクラスプロジェクト用に作成したエソランです。基本的には、記号ではなく単語の長さを使ったブレインファックです。

この詩は...憂鬱です。😟


0

Pythonの2.7、194の、188バイト

k,l,c,s,r=8,0,chr,' ',range;o=''.join(map(chr,r(32,127)))
for i in r(0,18,2):print s*9+o[i:i+2]
print o[18:39]+'\n'+o[39:60]
for i in r(60,95,4):print s*k+o[i:i+2]+s*l+o[i+2:i+4];k-=1;l+=2

あなたは、変更することで、2つのバイトをドロップすることができますmap(chrするmap(cなどc、すでにとして定義されているchr

0

Jq 1.5、180バイト

foreach((range(9)|[9,2]),(range(2)|[0,21]),(range(9)|[8-.,2,.+.,2]))as$r({s:[range(32;127)]|implode};.r=$r|.p=""|until(.r==[];.p+=" "*.r[0]+.s[:.r[1]]|.s =.s[.r[1]:]|.r=.r[2:]);.p)

拡大

foreach (                              # instruction sequence: [indent, count]
    (range(9)|[9,2]),                  # 9 rows of 2 characters indented 9 spaces
    (range(2)|[0,21]),                 # 2 rows of 21 characters
    (range(9)|[8-.,2,.+.,2])           # 9 rows of 4 characters with varying indent
) as $r (
    {s:[range(32;127)]|implode}        # state = ascii string
  ; .r = $r                            # current instruction
  | .p = ""                            # print string for this row
  | until(.r==[];                      # until current instruction is exhausted
        .p += " "*.r[0] + .s[:.r[1]]   # add to print string
      | .s = .s[.r[1]:]                # remove from state
      | .r = .r[2:]                    # remove from instruction
    )
  ; .p                                 # emit print string
 )

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


0

スラッシュ(///)、324バイト

          !
         "#
         $%
         &'
         ()
         *+
         ,-
         .\/
         01
23456789:;<=>?@ABCDEF
GHIJKLMNOPQRSTUVWXYZ[
        \\]^_
       `a  bc
      de    fg
     hi      jk
    lm        no
   pq          rs
  tu            vw
 xy              z{
|}                ~

スラッシュの最初の(デフォルトの)アクションは 'print'であるため、文字列が印刷されます。進行によってエスケープする必要がありますの。/\\


バイトカウントと、できればインタープリターへのリンクを追加する必要があります。しかし、それはかなり手付かずのように見えます(///でもっと良くする方が良いかどうかはわかりません)。
スチューウィーグリフィン

///の美しさを示すのはやや冗談ですが、それらを追加します!
clabe45

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