Tüm sekizler


24

Arasındaki tam sayıların boş olmayan bir dikdörtgen dizi Verilen 0için 9çıkış vardır hücrelerin miktarını 8ve bir komşum yok 8. Komşu burada Moore anlamında , yani köşegenler dahil anlaşılır . Böylece, her bir hücrenin, 8dizinin kenarlarındaki hücreler hariç , komşuları vardır .

Örneğin, giriş verilen

8 4 5 6 5
9 3 8 4 8
0 8 6 1 5
6 7 9 8 2
8 8 7 4 2

çıktı olmalıdır 3. Üç nitelendirici hücre, bir yıldız işaretiyle işaretli olacaktır (ancak bu tür girdilerin miktarı çıkarılmalıdır):

* 4 5 6 5
9 3 8 4 *
0 8 6 1 5
6 7 9 * 2
8 8 7 4 2

Ek kurallar

Test durumları

  1. Giriş:

    8 4 5 6 5
    9 3 8 4 8
    0 8 6 1 5
    6 7 9 8 2
    8 8 7 4 2
    

    Çıktı: 3

  2. Giriş

    8 8
    2 3
    

    Çıktı: 0

  3. Giriş:

    5 3 4
    2 5 2
    

    Çıktı: 0

  4. Giriş:

    5 8 3 8
    

    Çıktı: 2

  5. Giriş:

    8
    0
    8
    

    Çıktı: 2.

  6. Giriş:

    4 2 8 5
    2 6 1 8
    8 5 5 8
    

    Çıktı: 1

  7. Giriş:

    4 5 4 3 8 1 8 2
    8 2 7 7 8 3 9 3
    9 8 7 8 5 4 2 8
    4 5 0 2 1 8 6 9
    1 5 4 3 4 5 6 1
    

    Çıktı 3.

  8. Giriş:

    8
    

    Çıktı: 1

  9. Giriş:

    8 5 8 1 6 8 7 7
    9 9 2 8 2 7 8 3
    2 8 4 9 7 3 2 7
    9 2 9 7 1 9 5 6
    6 9 8 7 3 1 5 2
    1 9 9 7 1 8 8 2
    3 5 6 8 1 4 7 5
    

    Çıktı: 4.

  10. Giriş:

    8 1 8
    2 5 7
    8 0 1
    

    Çıktı: 3.

MATLAB formatındaki girişler:

[8 4 5 6 5; 9 3 8 4 8; 0 8 6 1 5; 6 7 9 8 2; 8 8 7 4 2]
[8 8; 2 3]
[5 3 4; 2 5 2]
[5 8 3 8]
[8; 0; 8]
[4 2 8 5; 2 6 1 8; 8 5 5 8]
[4 5 4 3 8 1 8 2; 8 2 7 7 8 3 9 3; 9 8 7 8 5 4 2 8; 4 5 0 2 1 8 6 9; 1 5 4 3 4 5 6 1]
[8]
[8 5 8 1 6 8 7 7; 9 9 2 8 2 7 8 3; 2 8 4 9 7 3 2 7; 9 2 9 7 1 9 5 6; 6 9 8 7 3 1 5 2; 1 9 9 7 1 8 8 2; 3 5 6 8 1 4 7 5]
[8 1 8; 2 5 7; 8 0 1]

Python formatında girişler:

[[8, 4, 5, 6, 5], [9, 3, 8, 4, 8], [0, 8, 6, 1, 5], [6, 7, 9, 8, 2], [8, 8, 7, 4, 2]]
[[8, 8], [2, 3]]
[[5, 3, 4], [2, 5, 2]]
[[5, 8, 3, 8]]
[[8], [0], [8]]
[[4, 2, 8, 5], [2, 6, 1, 8], [8, 5, 5, 8]]
[[4, 5, 4, 3, 8, 1, 8, 2], [8, 2, 7, 7, 8, 3, 9, 3], [9, 8, 7, 8, 5, 4, 2, 8], [4, 5, 0, 2, 1, 8, 6, 9], [1, 5, 4, 3, 4, 5, 6, 1]]
[[8]]
[[8, 5, 8, 1, 6, 8, 7, 7], [9, 9, 2, 8, 2, 7, 8, 3], [2, 8, 4, 9, 7, 3, 2, 7], [9, 2, 9, 7, 1, 9, 5, 6], [6, 9, 8, 7, 3, 1, 5, 2], [1, 9, 9, 7, 1, 8, 8, 2], [3, 5, 6, 8, 1, 4, 7, 5]]
[[8, 1, 8], [2, 5, 7], [8, 0, 1]]

Çıktılar:

3, 0, 0, 2, 2, 1, 3, 1, 4, 3

17
Eğer hoşuna
Luis Mendo

"8'e eşit hücreleri" okuduğumda, bir an için bir hücrenin, ızgaradan 1x1'lik bir aynadan (NxN) daha büyük olabileceğini düşündüm. Muhtemelen matematiğe gerek duymamak için “8 olan hücrelere” dönüştürmeniz gerekir. = P
Tezra

@Tezra Düzenlendi. Yeni ifadeleri daha az doğal buluyorum, ancak anadili değilim, bu yüzden kriterinize güveneceğim
Luis Mendo

Yanıtlar:


2

MATL , 21 17, 10 bayt

8=t3Y6Z+>z

Çevrimiçi deneyin!

Sohbette yardımcı olan ve 2B evrişim önerdiğiniz için Luis Mendo'ya teşekkürler.

Açıklama:

	#implicit input, m
8=	#equal to 8? matrix of 1 where m is 8, 0 otherwise
t	#duplicate
3Y6	#push [1 1 1; 1 0 1; 1 1 1], "neighbor cells" for convolution
Z+	#2D convolution; each element is replaced by the number of neighbors that are 8
>	#elementwise greater than -- matrix of 1s where an 8 is single, 0s otherwise
z	#number of nonzero elements -- number of single eights
	#implicit output

(2D-) konvolüsyonu kullanarak bir kaç bayt kurtarabilirsiniz, eğer kavramla ilgiliyseniz
Luis Mendo

1
@LuisMendo 2B evrişim, 1D evrişimi anlamadığım şeylerden biri, bu yüzden benim için orada bir umut yok ... ikisini de öğrenmek için bir fırsat gibi geliyor!
Giuseppe

1
Bu konuda yardıma ihtiyacınız olursa, bana sohbet odasında bildirin. Evrişim çok yararlı bir işlemdir. Evrişim öğrenmek istiyorsanız 1D ile başlayın.
Luis Mendo

9

R , 117 63 59 bayt

function(m)sum(colSums(as.matrix(dist(which(m==8,T)))<2)<2)

Çevrimiçi deneyin!

distbir matrisin satırları arasındaki mesafeleri (varsayılan Euclidean) hesaplar. whichİkinci argümanla TRUE, yüklemin doğru olduğu koordinatları döndürür

Aralarındaki mesafe daha 2'nin kare kökü daha değilse Koordinatlar komşular, ancak iç <2olası mesafe atlar çünkü yeterince iyi sqrt(2)ro 2.


Bu utanç verici bir sayısal belirsizlik colSums()^2<=2çalışmasına izin vermiyor .
Giuseppe

Tabii ait @Giuseppe orada sadece birkaç olası mesafeler ve sqrt(2)atlar 2(örneğin sort(c(dist(expand.grid(1:6,1:6))), decreasing = TRUE))biz de zeki orada olmak vardı bu yüzden).
NGM

7

APL (Dyalog Classic) , 29 28 25 bayt

≢∘⍸16=2⊥¨3,⌿3,/8=(⍉0,⌽)⍣4

Çevrimiçi deneyin!


Not: 0 endeks orijini bile gerekli değildir.
Zacharý

@ Zacharý Sürprizleri önlemek için her zaman varsayılan olarak kullanırım.
ngn

Ah, diğerleriyle olduğu gibi 1(açıkça belirlenmemiş hariç). Bu mantıklı.
Zacharý

Bunun Stencil'i kullanmadığına şaşırdım. Burada şablonu elverişsiz kılan bir şey var mı?
lirtosiast

@lirtosiast onunla daha uzun süre :)
ngn

5

Jöle , 18 15 bayt

8=µ+Ż+ḊZµ⁺ỊṖḋµS

Çevrimiçi deneyin!

Nasıl çalışır

8=µ+Ż+ḊZµ⁺ỊṖḋµS    Main link (monad). Input: digit matrix
8=              1) Convert elements by `x == 8`
  µ             2) New chain:
   +Ż+Ḋ              x + [0,*x] + x[1:] (missing elements are considered 0)
                     Effectively, vertical convolution with [1,1,1]
       Z             Transpose
        µ⁺      3) Start new chain, apply 2) again
          ỊṖ       Convert elements by `|x| <= 1` and remove last row
            ḋ      Row-wise dot product with result of 1)
             µS 4) Sum

Önceki çözüm, 18 bayt

æc7B¤ZḊṖ
8=µÇÇỊḋµS

Çevrimiçi deneyin!

Jonathan Allan'nın çözümünden 1 byte daha uzun olmasına rağmen, başka bir yaklaşımı paylaşmak istedi .

Nasıl çalışır

æc7B¤ZḊṖ    Auxiliary link (monad). Input: integer matrix
æc7B¤       Convolution with [1,1,1] on each row
     ZḊṖ    Zip (transpose), remove first and last elements

8=µÇÇỊḋµS    Main link (monad). Input: digit matrix
8=           Convert 8 to 1, anything else to 0 (*A)
  怀        Apply aux.link twice (effective convolution with [[1,1,1]]*3)
     Ịḋ      Convert to |x|<=1, then row-wise dot product with A
       µS    Sum the result


4

J , 43, 40 37 bayt

Bubbler sayesinde -3 bayt

1#.1#.3 3(16=8#.@:=,);._3(0|:@,|.)^:4

Çevrimiçi deneyin!

Açıklama:

Algoritmanın ilk kısmı girişine 3x3 kayar bir pencere uygulayabileceğimizi garanti eder. Bu, 4 kez tekrarlanan, bir sıfıra ve 90 derecelik rotasyon sırasını hazırlayarak elde edilir.

1#.1#.3 3(16=8#.@:=,);._3(0|:@,|.)^:4
                         (       )^:4 - repeat 4 times
                          0|:@,|.     - reverse, prepend wit a row of 0 and transpose
                     ;._3             - cut the input (already outlined with zeroes)
      3 3                             - into matrices with size 3x3
         (          )                 - and for each matrix do
                   ,                  - ravel (flatten)
             8    =                   - check if each item equals 8
              #.@:                    - and convert the list of 1s and 0s to a decimal
          16=                         - is equal to 16?
   1#.                                - add (the result has the shape of the input)
1#.                                   - add again

1
37 byte kullanma @:ve taşıma|. . Bunun @yerine @:çalışmadığını unutmayın.
Bubbler

@ Baloncu Teşekkürler!
Galen Ivanov

Bu güzel. Muhtemelen, bir kod dökümü değilse bile, nasıl çalıştığıyla ilgili en az yüksek düzeyde bir açıklama eklemeye değer. Bunu çözmek için bana 10m ya da öylesine aldı. Ayrıca, APL versiyonunun (aynı yaklaşımı kullanan) ne kadar kısa olduğu da ilginçtir. Görünüşe göre bu çoğunlukla tek karakterli semboller yerine digraphların sonucudur ...
Jonah

@ Jonah Bir açıklama ekleyeceğim. APL ile karşılaştırmak için, ngn'in çözümünün revizyonlarına , özellikle 28 byte versiyonuna bakabilirsiniz
Galen Ivanov

1
@Jonah Açıklama eklendi
Galen Ivanov

3

Retina 0.8.2 , 84 bayt

.+
_$&_
m`(?<!(?(1).)^(?<-1>.)*.?.?8.*¶(.)*.|8)8(?!8|.(.)*¶.*8.?.?(?<-2>.)*$(?(2).))

Çevrimiçi deneyin! Açıklama:

.+
_$&_

Her satırı 8karakter olmayanlara sarın, böylece her 8birinde en az bir karakter bulunur.

m`

Bu son aşama, bu nedenle kibritleri saymak gerekiyor. mDeğiştirici yapar ^ve $karakterler herhangi bir satırın başlangıcında veya sonunda eşleşir.

(?<!...|8)

8'den sonra doğrudan bir karakter eşleştirmeyin veya ...

(?(1).)^(?<-1>.)*.?.?8.*¶(.)*.

... 8'in altındaki bir karakter; (?(1).)^(?<-1>.)*aynı sütunu ile eşleşen ¶(.)*sonraki satırda, ancak .?.?izin verir 8sonra 1 sağa veya sola karakterin olması .sonraki satırda.

8

Maç 8s.

(?!8|...)

8'den hemen önce bir 8 ile eşleşmeyin ya da ...

.(.)*¶.*8.?.?(?<-2>.)*$(?(2).)

... aşağıdaki satırda 8 olan bir karakter; Yine, (?<-2>.)*$(?(2).)aynı sütunu ile eşleşen (.)*¶önceki satırda, ancak .?.?izin verir 81 veya sağ sol edilecek 8önce .önceki satırda.


3

Jöle , 17 bayt

=8ŒṪµŒcZIỊȦƲƇẎ⁸ḟL

Çevrimiçi deneyin! Veya test odasına bakın .

Nasıl?

=8ŒṪµŒcZIỊȦƲƇẎ⁸ḟL - Link: list of lists of integers (digits)
=8                - equals 8?
  ŒṪ              - multidimensional truthy indices (pairs of row & column indices of 8s)
    µ             - start a new monadic chain
     Œc           - all pairs (of the index-pairs) 
            Ƈ     - filter keep if:  (keep those that represent adjacent positions)
           Ʋ      -   last four links as a monad:
       Z          -     transpose
        I         -     incremental differences
         Ị        -     insignificant? (abs(x) <= 1)
          Ȧ       -     all?
             Ẏ    - tighten (to a list of all adjacent 8's index-pairs, at least once each)
              ⁸   - chain's left argument (all the index-pairs again)
               ḟ  - filter discard (remove those found to be adjacent to another)
                L - length (of the remaining pairs of indices of single 8s)

3

J, 42 bayt

[:+/@,8=]+[:+/(<:3 3#:4-.~i.9)|.!.0(_*8&=)

Çevrimiçi deneyin!

açıklama

Buradaki üst düzey yaklaşım, klasik APL çözümünde yaşam oyununa kullanılana benzer: https://www.youtube.com/watch?v=a9xAKttWgP4 .

Bu çözümde, matrisimizi 8 olası komşu yöne kaydırarak girdilerin 8 kopyasını oluşturarak onları yığar ve komşu sayımızı elde etmek için "düzlemleri" ekleriz.

Burada, bu soruna yönelik çözümü uyarlamak için "sonsuzlukla çarp" hilesini kullanıyoruz.

[: +/@, 8 = ] + [: +/ (neighbor deltas) (|.!.0) _ * 8&= NB. 
                                                        NB.
[: +/@,                                                 NB. the sum after flattening
        8 =                                             NB. a 0 1 matrix created by
                                                        NB. elmwise testing if 8
                                                        NB. equals the matrix
            (the matrix to test for equality with 8   ) NB. defined by...
            ] +                                         NB. the original input plus
                [: +/                                   NB. the elmwise sum of 8
                                                        NB. matrices defined by
                                                _ *     NB. the elmwise product of 
                                                        NB. infinity and
                                                    8&= NB. the matrix which is 1
                                                        NB. where the input is 8
                                                        NB. and 0 elsewhere, thus
                                                        NB. creating an infinity-0
                                                        NB. matrix
                                        (|.!.0)         NB. then 2d shifting that 
                                                        NB. matrix in the 8 possible
                                                        NB. "neighbor" directions
                      (neighbor deltas)                 NB. defined by the "neighbor
                                                        NB. deltas" (see below)
                                                        NB. QED.
                                                        NB. ***********************
                                                        NB. The rest of the
                                                        NB. explanation merely
                                                        NB. breaks down the neighbor
                                                        NB. delta construction.


                      (neighbor deltas  )               NB. the neighbor deltas are
                                                        NB. merely the cross product
                                                        NB. of _1 0 1 with itself,
                                                        NB. minus "0 0"
                      (<: 3 3 #: 4 -.~ i.9)             NB. to create that...
                       <:                               NB. subtract one from
                          3 3 #:                        NB. the base 3 rep of
                                       i.9              NB. the numbers 0 - 8
                                 4 -.~                  NB. minus the number 4
                                                        NB.
                                                        NB. All of which produces
                                                        NB. the eight "neighbor"
                                                        NB. deltas:
                                                        NB. 
                                                        NB.       _1 _1
                                                        NB.       _1  0
                                                        NB.       _1  1
                                                        NB.        0 _1
                                                        NB.        0  1
                                                        NB.        1 _1
                                                        NB.        1  0
                                                        NB.        1  1

1
Sen arasında boşluk kaldırmak unutmuş ~ve>
Galen Ivanov

@GalenIvanov Şimdi düzeltildi. Teşekkür ederim.
Jonah

3

Java 8, 181 157 156 bayt

(M,R,C)->{int z=0,c,f,t;for(;R-->0;)for(c=C;c-->0;z+=f>1?0:f)for(f=0,t=9;M[R][c]==8&t-->0;)try{f+=M[R+t/3-1][c+t%3-1]==8?1:0;}catch(Exception e){}return z;}

@ OlivierGrégoire sayesinde -24 bayt .

Boyutları ek parametreler R(satır miktarı) ve C(sütun miktarı) olarak alır.

Ben olduğu gibi hücreler oldukça benzer kontrol edilir benim Fryer simülatörü cevap .

Çevrimiçi deneyin.

Açıklama:

(M,R,C)->{                    // Method with integer-matrix as parameter & integer return
  int z=0,                    //  Result-counter, starting at 0
      c,f,t;                  //  Temp-integers, starting uninitialized
  for(;R-->0;)                //  Loop over the rows:
    for(c=C;c-->0             //   Inner loop over the columns:
           ;                  //     After every iteration:
            z+=f==1?          //      If the flag-integer is larger than 1:
                0             //       Leave the result-counter the same by adding 0
               :              //      Else:
                f)            //       Add the flag-integer (either 0 or 1)
      for(f=0,                //    Reset the flag to 0
          t=9;M[R][c]==8&     //    If the current cell contains an 8:
              t-->0;)         //     Inner loop `t` in the range (9, 0]:
        try{f+=               //      Increase the flag by:
               M[R+t/3-1]     //       If `t` is 0, 1, or 2: Look at the previous row
                              //       Else-if `t` is 6, 7, or 8: Look at the next row
                              //       Else (`t` is 3, 4, or 5): Look at the current row
                [c+t%3-1]     //       If `t` is 0, 3, or 6: Look at the previous column
                              //       Else-if `t` is 2, 5, or 8: Look at the next column
                              //       Else (`t` is 1, 4, or 7): Look at the current column
                ==8?          //       And if the digit in this cell is 8:
                 1            //        Increase the flag-integer by 1
                :0;           //       Else: leave it the same
        }catch(Exception e){} //      Catch and ignore ArrayIndexOutOfBoundsExceptions
                              //      (try-catch saves bytes in comparison to if-checks)
  return z;}                  //  And finally return the counter


2

Powershell, 121 bayt

param($a)(($b='='*4*($l=($a|% Le*)[0]))+($a|%{"!$_!"})+$b|sls "(?<=[^8]{3}.{$l}[^8])8(?=[^8].{$l}[^8]{3})" -a|% m*).Count

Daha az golf oynadığı test senaryosu:

$f = {

param($a)

$length=($a|% Length)[0]
$border='='*4*$length
$pattern="(?<=[^8]{3}.{$length}[^8])8(?=[^8].{$length}[^8]{3})"
$matches=$border+($a|%{"!$_!"})+$border |sls $pattern -a|% Matches
$matches.count

}

@(

,(3,"84565","93848","08615","67982","88742")
,(0,"88","23")
,(0,"534","252")
,(2,"5838")
,(2,"8","0","8")
,(1,"4285","2618","8558")
,(3,"45438182","82778393","98785428","45021869","15434561")
,(1,"8")
,(4,"85816877","99282783","28497327","92971956","69873152","19971882","35681475")
,(3,"818","257","801")
,(0,"")

) | % {
    $expected,$a = $_
    $result = &$f $a
    "$($result-eq$expected): $result : $a"
}

Çıktı:

True: 3 : 84565 93848 08615 67982 88742
True: 0 : 88 23
True: 0 : 534 252
True: 2 : 5838
True: 2 : 8 0 8
True: 1 : 4285 2618 8558
True: 3 : 45438182 82778393 98785428 45021869 15434561
True: 1 : 8
True: 4 : 85816877 99282783 28497327 92971956 69873152 19971882 35681475
True: 3 : 818 257 801
True: 0 : 

Açıklama:

İlk olarak, komut dosyası ilk dizginin uzunluğunu hesaplar.

İkincisi, dizgilere ekstra sınır ekler. Artırılmış gerçeklik dizesi şunları sever:

....=========!84565! !93848! !08615! !67982! !88742!===========....

çok satırlı dizeyi temsil eder:

...=====
=======
!84565!
!93848!
!08615!
!67982!
!88742!
=======
========...

Not 1: sayısı =herhangi bir uzunlukta bir dize için yeterlidir.

Not 2: Çok sayıda, =sekiz için arama etkilemez.

Ardından, normal ifade , önceki sekiz olmayan ve aşağıdaki sekiz olmayan (?<=[^8]{3}.{$l}[^8])8(?=[^8].{$l}[^8]{3})rakamı arar :8(?<=[^8]{3}.{$l}[^8])(?=[^8].{$l}[^8]{3})

.......
<<<....
<8>....
>>>....
.......

Son olarak, sonuç olarak sonuçların sayısı döndürülür.


2

Jöle , 12 bayt

œẹ8ạṀ¥þ`’Ạ€S

Çevrimiçi deneyin!

Nasıl çalışır

œẹ8ạṀ¥þ`’Ạ€S  Main link. Argument: M (matrix)

œẹ8           Find all multidimensional indices of 8, yielding an array A of pairs.
      þ`      Table self; for all pairs [i, j] and [k, l] in A, call the link to the
              left. Return the results as a matrix.
   ạ              Absolute difference; yield [|i - k|, |j - l|].
    Ṁ             Take the maximum.
        ’     Decrement all the maxmima, mapping 1 to 0.
         Ạ€   All each; yield 1 for each row that contains no zeroes.
           S  Take the sum.

1

JavaScript (ES6), 106 bayt

a=>a.map((r,y)=>r.map((v,x)=>k+=v==8&[...'12221000'].every((d,i,v)=>(a[y+~-d]||0)[x+~-v[i+2&7]]^8)),k=0)|k

Çevrimiçi deneyin!


Bitsel yaklaşım, 110 bayt

a=>a.map(r=>r.map(v=>x=x*2|v==8,x=k=0)|x).map((n,y,b)=>a[0].map((_,x)=>(n^1<<x|b[y-1]|b[y+1])*2>>x&7||k++))&&k

Çevrimiçi deneyin!


Bit tarzı yaklaşım başarısız[[7]]
l4m2

@ lm42 Oh, teşekkürler. Şimdi düzeltildi.
Arnauld

1

Clojure , 227 198 bayt

(fn[t w h](let[c #(for[y(range %3 %4)x(range % %2)][x y])e #(= 8(get-in t(reverse %)0))m(fn[[o p]](count(filter e(c(dec o)(+ o 2)(dec p)(+ p 2)))))](count(filter #(= 1(m %))(filter e(c 0 w 0 h))))))

Ahh. Kesinlikle hiçbir şekilde burada en kısa değil. 54 bayt parantez katildir. Yine de hala nispeten mutluyum.

-29 bayt Ben iki kez yapıyor değişiyordu beri bir dizi üreten bir yardımcı işlevi oluşturarak reducebir karşı (count (filterkurulumu ve golf sonra parçacığı makro kurtulmak.

(defn count-single-eights [td-array width height]
  ; Define three helper functions. One generates a list of coords for a given range of dimensions, another checks if an eight is
  ; at the given coord, and the other counts how many neighbors around a coord are an eight
  (letfn [(coords [x-min x-max y-min y-max]
            (for [y (range y-min y-max)
                  x (range x-min x-max)]
              [x y]))
          (eight? [[x y]] (= 8 (get-in td-array [y x] 0)))
          (n-eights-around [[cx cy]]
            (count (filter eight?
                           (coords (dec cx) (+ cx 2), (dec cy) (+ cy 2)))))]

    ; Gen a list of each coord of the matrix
    (->> (coords 0 width, 0 height)

         ; Remove any coords that don't contain an eight
         (filter eight?)

         ; Then count how many "neighborhoods" only contain 1 eight
         (filter #(= 1 (n-eights-around %)))
         (count))))

(mapv #(count-single-eights % (count (% 0)) (count %))
      test-cases)
=> [3 0 0 2 2 1 3 1 4 3]

Nerede test-casesTüm "Python test durumlarını" tutan bir dizi

Çevrimiçi deneyin!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.