Kılavuz ASCII sanat kodu golf


19

Meydan okuma

Gereksinimleri karşılayan en kısa programı oluşturun

Gereksinimler

  1. Kod, aşağıdaki gibi 0'ların 5x5 ızgarasını oluşturmalıdır:

    00000
    00000
    00000
    00000
    00000
    
  2. Kod bir girişi kabul etmelidir (sütun, satır, karakter). Izgara buna göre değişmelidir:

    Başlat:

    00000
    00000
    00000
    00000
    00000
    

    Giriş:

    (2,5,*)
    

    Çıktı:

    0*000
    00000
    00000
    00000
    00000
    

    (Not: sol alt köşe konum 1,1'dir.)

  3. Satır / sütun girişi (o ızgara değil sürece) Bu seçtiğiniz herhangi bir mesaj olabilir 1,2,3,4 veya 5. değilse programı yüzden, ızgara dışında bir hata mesajı geri dönmelidir 0olduğunu kabul edilebilir bir hata çıkışı.

  4. Program yazdırılabilir tüm ASCII karakterleriyle (ABD klavyesinin) çalışmalıdır.

KAZANAN

Kazanan, en kısa koda sahip olan ve tüm gereksinimleri karşılayan kişi olacaktır. Birden fazla cevap çalışırsa ve aynı (en kısa) uzunluğa sahipse, ilk cevaplayan kişi kazanan olacaktır.


8
Program bir hata mesajı döndürmelidir . Ne hata mesajı? Program 0hataya ve başarı için ızgaraya geri dönebilir mi?
Rod

1
Matrisin kökeni nerede? sıfır veya bir dizinli olması gerekir mi?
george

3
Bu arada, PPCG'ye hoş geldiniz.
Outgolfer Erik

4
programın ABD klavyesindeki tüm karakterlerle çalışması gerekir Neden sadece ASCII? Bir ABD klavyesinin karakterlerini bile bilmiyorum ve bu meydan okumaya hiçbir şey
katmıyor

1
@LuisMendo Bence ABD klavyesi ASCII veya en azından bir alt küme.
Conor O'Brien

Yanıtlar:


11

Dyalog APL , 17 13 10 bayt

İçeren (satır, sütun) ve ardından bir karakter içeren kapalı bir dizi ister. Hatalı girişte INDEX HATASI verir.

⊖⍞@⎕⊢5 50

Çevrimiçi deneyin!

 sonucu ters çevirmek

 Girilen karakter

@ içerik değiştirilmesi de pozisyon

 değerlendirilmiş giriş (kapalı satır, sütun)

 nın-nin

5 5⍴ 5 × 5 dizi

0 sıfırlar


gerekli? Bu durumda gereksiz olduğunu düşünüyorum.
Conor O'Brien

1
@ ConorO'Brien @ ConorO'Brien yoksa, ayrıştırıcı (⊂⎕)5 5tek bir 3 elemanlı dizi olarak görür - argüman .
16:14

Bu 13 bayt değil, 13 Unicode karakter değil mi?
wilx

1
@wilx Bayt kelimesine tıklayın !
16'da Adám

Bu cevap kazanır.
Dave Jones

5

Yakut, 157149 bayt

g=(1..5).map{[0]*5}
loop{puts g.map(&:join).join ?\n
x=gets.match /\((.),(.),(.)\)/
a,b=x[1].hex,x[2].hex
1/0 if a<1||a>5||b<1||b>5
g[5-b][a-1]=x[3]}

Hatalı biçimlendirilmiş girişte veya sınır dışı konumda hata

ConorO'Brien (8 byte) ve tasarruflu (2 byte) bayt tasarrufu için teşekkürler


loop do...end-> loop{...}; Bence de Array.new(5,[0]*5)çalışıyor, hatta [*[0]*5]*5.
Conor O'Brien

@ ConorO'Brien Nope, Array.new(5,[0]*5)bir dizi referans yapın ve [*[0]*5]*5düz bir dizi yapın
TuxCrafting

Ah, doğru. İlkini atlayın *. Sonra bu hala bir dizi başvuru oluşturur.
Conor O'Brien

Array.new(5){[0]*5}(1..5).map{[0]*5}2 bayt kaydetmek için ile değiştirilebilir .
16:57

4

Toplu, 199 bayt

@echo off
if %1 gtr 0 if %1 lss 6 if %2 gtr 0 if %2 lss 6 goto g
if
:g
for /l %%j in (5,1,-1)do call:l %* %%j
exit/b
:l
set s=000000
if %2==%2 call set s=%%s:~0,%1%%%3%%s:~%1%%
echo %s:~1,5%

Konum aralık dışındaysa hatalar.


Ne için semboller kullanabilirsiniz düşünüyorum <gibi ^<. emin değilim tho.
Conor O'Brien

3

PHP 111 100 97 bayt

$s=str_repeat("00000\n",5);$s[($x=($a=$argv)[1])+29-6*$y=$a[2]]=$a[3];echo$x&&$y&&$x<6&$y<6?$s:E;

Esatır / sütun aralık dışındaysa yazdırır .
Şununla koş:php -r <code> <row> <column> <character>


3

Python, 66 bayt

lambda a,b,n,l='00000\n':6>b>0<a<6and(5-b)*l+l[:a-1]+n+l[a:]+~-b*l

Bu a = 4, b = 3 için başarısız olmaz mı?
Titus

@Titus artık değil; D
Rod

1
Çözüm ayrıca Python3 için de çalışıyor
george

3

Dyalog APL, 24 20 18 bayt

Zgarb sayesinde 4 bayt tasarruf etti! Adam sayesinde 2 bayt kurtardı!

a←5 5⍴0⋄a[⊂⎕]←⍞⋄⊖a

Girdi istemleri. Bir açıklama için aşağıya bakın.


20 bayt

{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

Bir işleve atayın ve çağırın y x f 'c'. Örneğin:

      f←{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

      5 2 f '*'
0 * 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

      6 6 f '*'
INDEX ERROR                   
     ←{a←5 5⍴0 ⋄ a[⊂⍺]←⍵ ⋄ ⊖a}
               ∧              

      0 0 f '*'
INDEX ERROR                   
     ←{a←5 5⍴0 ⋄ a[⊂⍺]←⍵ ⋄ ⊖a}
               ∧   

açıklama

{a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a}

{...}sol ve sağ argümanlı bir fonksiyondur . ifadeleri ayırır, bu yüzden üç ifade vardır:

a←5 5⍴0⋄a[⊂⍺]←⍵⋄⊖a

İlk ifade s'nin bir by by gridine a←5 5⍴0ayarlanır .a550

İkinci ifade tarafından dikte koordinatlarda setleri üye için (olan, karakter).

Son olarak, biz gerçekleştirmek üzerinde ave ilklerini veren, yani dönmek atersine çevirdi.


{a←5 5⍴0⋄a[⊂⌽⍺]←⍵⋄⊖a}birkaç bayt kaydeder.
Zgarb

@Zgarb Oh, harika! Endekslemenin böyle çalıştığını bilmiyordum.
Conor O'Brien

Geleneksel bir gövdeye dönüştürerek iki bayt kaydedebilirsiniz:a←5 5⍴0⋄a[⊂⎕]←⍞⋄⊖a
Adám

@ Adám nasıl çalışır? TryAPL üzerinde çalışmıyor gibi görünüyor.
Conor O'Brien

@ ConorO'Brien Doğru. TryAPL girişi için isteyen yasakladığını ancak alabilirsiniz ücretsiz tam sürüm.
Adam

3

JavaScript (ES6), 73 76 bayt

TypeErrorSütun veya satır aralık dışındaysa a atar .

(c,r,C,a=[...`00000
`.repeat(5)])=>(a[29+c-r*6]=C,c<1|r<1|c>5|r>5||a).join``

gösteri


Tatlı, ama 1'den küçükse cveya r1'den küçükse bir hata veriyor mu?
ETHproductions

@ETHproductions Sadece test ediyor c == 0 || r == 0. Ama sanırım haklısın: Negatif değerleri önlemek için güncelleyeceğim.
Arnauld

3

C #, 199 Bayt

Pete Arden'in cevabına dayanarak

string g(int c, int r, char a){if(c<1|c>5|r<1|r>5)return "Index Error";var b="00000";var d=new[]{b,b,b,b,b};c--;d[r-1]=new string('0',c)+a+new string('0',4-c);return string.Join("\r\n",d.Reverse());}

Ungolfed:

public static string G(int c, int r, char a)
    {
        if (c < 1 || c > 5 || r < 1 || r > 5) return "Index Error"; // Check it's not out of range
        var b = "00000";
        var d = new [] { b, b, b, b, b };                           // Generate display box, and fill with the default character
        c--;                                                        // Convert the X to a 0 based index
        d[r - 1] = new string('0',c) + a + new string('0',4-c);     // Replace the array's entry in y coordinate with a new string containing the new character
        return string.Join("\r\n", d.Reverse());                    // Reverse the array (so it's the right way up), then convert to a single string
    }

Siteye Hoşgeldiniz! C # konusunda uzman değilim, ancak kaldırabileceğiniz bazı boşluklar var gibi görünüyor.
DJMcMayhem

1
(Üzgünüz, gönderim görgü kurallarını bilmiyorum) Daha kısa G (): genel statik dize G (int c, int r, char a) {dönüş (0 <c && c <6 && 0 <r && r <6)? String.Concat (Enumerable.Range (1,29). (İ => i% 6> 0? İ / 6 == 5-r && i% 6 == c? A: '0': '\ n')): "Dizin Hatası";}
Eric

2

05AB1E , 27 22 bayt

Satır / sütun> 5 olduğunda ızgara döndürmez.

‚6‹Pi25L²<5*¹+Q5äR»1³‡

Çevrimiçi deneyin!

Önceki versiyon

‚6‹Pi26G¾5²<*¹+NQi\³}})5äR»

2

Jöle , 28 bayt

Bu çok uzun hissettiriyor ...

Ṫ0ẋ24¤;ṙÑs5UY
’ḅ5
Ṗḟ5R¤
-ÑÇ?

TryItOnline!

Nasıl?

Ṫ0ẋ24¤;ṙÑs5UY - Link 1, make grid: [row, column, character] e.g. [5,2,'*']
Ṫ             - tail: character                                  '*'
     ¤        - nilad followed by link(s) as a nilad  
 0            -     zero
  ẋ           -     repeated
   24         -     24 times                                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
      ;       - concatenate:                                     "000000000000000000000000*"
        Ñ     - call next link (2) as a monad                    21
       ṙ      - rotate left by                                   "000*000000000000000000000"
         s5   - split into chunks of length 5                    ["000*0","00000","00000","00000","00000"]
           U  - upend (reveres each)                             ["0*000","00000","00000","00000","00000"]
            Y - join with line feeds                              0*000
              - implicit print                                    00000
                                                                  00000
’ḅ5 - Link 2, position: [row, column]                             00000
’   - decrement                                                   00000
 ḅ5 - convert from base 5

Ṗḟ5R¤ - Link 3, input error checking: [row, column, character]
Ṗ     - pop: [row, column]
 ḟ    - filter out values in
  5R¤ - range(5): [1,2,3,4,5] - any values not in this remain giving a truthy result

-ÑÇ? - Main link: [row, column, character]
   ? - ternary if:
  Ç  -    last link (3) as a monad
-    -    -1 (if truthy - the error identification)
 Ñ   - next link (1) as a monad (if falsey - the grid)

2

JavaScript (ES6), 89 bayt

f=(X,Y,Z,x=5,y=5)=>x+y>1?(x?X+x-6|Y-y?0:Z:`
`)+f(X,Y,Z,x?x-1:5,y-!x):X<1|X>5|Y<1|Y>5?e:""

Çünkü özyinelemeyi seviyorum. ReferenceErrorGeçersiz koordinatlara atar .


2

Mathematica, 38 bayt

(x=Table[0,5,5];x[[-#2,#]]=#3;Grid@x)&

2

Brain-Flak 415 Bayt

İçin +3 içerir -c

([][()()()]){{}}{}({}<(({}<(({})<>)<>>)<>)<>([((((()()()){}){}){}){}]{}<([((((()()()){}){}){}){}]{})>)(()()()()()){({}[()]<(({})){{}(<({}[()])>)}{}({}<(({})){{}(<({}[()])>)}{}>)>)}{}({}{}){<>{{}}<>{}}<>>)<>(()()()()()){({}[()]<(((((((((()()()){}){}){}){})))))((()()()()()){})>)}{}{}<>({}<()((((((()()()){}){}()){}){}()[{}])({})({})({})({}){}{}[((((()()()){}){}){}){}()]){({}[()]<<>({}<>)>)}{}<>{}>)<>{({}<>)<>}<>

Çevrimiçi deneyin!

Önce karakteri, ardından satırı boşluk bırakmadan ekleyecek karakteri alır.

Bunların çoğu sadece hata işlemedir. Brain-Flak'ın değerlerin bir aralıkta olup olmadığını kontrol etmek için iyi bir yolu yoktur. Hatalar için ya hiçbir şey çıkarmaz, ya da sadece eklenmesi gereken karakteri verir. Asıl problemi çözmek sadece 211 bayt alır:

<>(()()()()()){({}[()]<(((((((((()()()){}){}){}){})))))((()()()()()){})>)}{}{}<>({}<()((((((()()()){}){}()){}){}()[{}])({})({})({})({}){}{}[((((()()()){}){}){}){}()]){({}[()]<<>({}<>)>)}{}<>{}>)<>{({}<>)<>}<>

2

Excel VBA, 67 Bayt

Vba projesinin aktif sayfasında A1: E5 aralığına çıktılar ,

Çalışma zamanı hatası '1004':

Uygulama tanımlı veya nesne tanımlı hata

geçersiz bir girdi sağlandığında.

Kod:

Sub a(c,r,x)
c=IIf(r<1Or c>5,-1,c)
[A1:E5]=0
Cells(6-r,c)=x
End Sub

Kullanımı:

a 4,5,"#"

Çıktı (yukarıdaki örnekten) :

    A   B   C   D   E
1   0   0   0   #   0
2   0   0   0   0   0
3   0   0   0   0   0
4   0   0   0   0   0
5   0   0   0   0   0

1

C #, 208 Bayt

golfed:

string G(int c,int r,char a){if(c<1||c>5||r<1||r>5)return"Index Error";var b="00000";var d=new string[]{b,b,b,b,b};d[r-1]=d[r-1].Substring(0,c-1)+a+d[r-1].Substring(c);return string.Join("\r\n",d.Reverse());}

Ungolfed:

public string G(int c, int r, char a)
{
  if (c < 1 || c > 5 || r < 1 || r > 5) return "Index Error";
  var b = "00000";
  var d = new string[] { b, b, b, b, b };
  d[r - 1] = d[r - 1].Substring(0, c - 1) + a + d[r - 1].Substring(c);
  return string.Join("\r\n", d.Reverse());
}

Test yapmak:

Console.Write(G(6, 6, '*')); //Index Error

Console.Write(G(1, 4, '#'));

00000
#0000
00000
00000
00000

Console.Write(G(5, 5, '@'));

0000@
00000
00000
00000
00000

Console.Write(G(1, 1, '}'));

00000
00000
00000
00000
}0000

Eğer cve / veya rsınırların dışında ise, IndexOutOfRangeExceptionbu yüzden özellikleri düzgün kontrol etmedim ama ilk if ifadesini kaldırabilirsiniz böylece bir atar . Bir Func<int, int, char, string>bayt kaydetmek için derleyebilirsiniz using System.Linq;, çünkü Reversekafamın tepesini hatırlayamıyorum rağmen çağrı nedeniyle eklemeniz gerekir
TheLethalCoder

4 bayt kaydetmek d[r - 1] = d[r - 1].Substring(0, c - 1) + a + d[r - 1].Substring(c);için değiştirind[--r] = d[r].Substring(0, c - 1) + a + d[r].Substring(c);
TheLethalCoder

1

WinDbg, 95 bayt

j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0

Neredeyse yarısı sadece endeksleri aralığındadır doğrulayarak bunun ... Girdi psuedo kayıtlarını ayarlayarak yapılır $t0, $t1ve $t2(burada $t2komur ASCII değeri yerine tutar). Örneğin (2,5,*), örnek şöyle olurdu:

0:000> r$t0=2
0:000> r$t1=5
0:000> r$t2=2a

0Hata durumunda yazdırır .

Nasıl çalışır:

j (0<(@$t0|@$t1)) & (6>@$t0) & (6>@$t1)  * If $t0 and $t1 are both positive and less than 6
'
    f 8<<16 L19 30;                      * Put 19 (0n25) '0's (ascii 30) at 2000000 (8<<16)
    eb 2000018+@$t0-@$t1*5 @$t2;         * Replace the specified cell with the new char
    da /c5 8<<16 L19                     * Print 19 (0n25) chars in rows of length 5
';
    ?0                                   * ...Else print 0

Örnek Çıktı:

0:000> r$t0=2
0:000> r$t1=5
0:000> r$t2=2a
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Filled 0x19 bytes
02000000  "0*000"
02000005  "00000"
0200000a  "00000"
0200000f  "00000"
02000014  "00000"


0:000> r$t0=-2
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Evaluate expression: 0 = 00000000


0:000> r$t0=4
0:000> r$t1=2
0:000> r$t2=23
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Filled 0x19 bytes
02000000  "00000"
02000005  "00000"
0200000a  "00000"
0200000f  "000#0"
02000014  "00000"


0:000> r$t1=f
0:000> j(0<(@$t0|@$t1))&(6>@$t0)&(6>@$t1)'f8<<16 L19 30;eb2000018+@$t0-@$t1*5 @$t2;da/c5 8<<16 L19';?0
Evaluate expression: 0 = 00000000

1

Haskell, 77 bayt

r=[1..5]
(x#y)c|x>0,x<6,y>0,y<6=unlines[[last$'0':[c|i==x,j==6-y]|i<-r]|j<-r]

Kullanım örneği:

*Main> putStr $ (2#5) '*'
0*000
00000
00000
00000
00000

Eğer xve yiçinden aralığında, dış ve iç döngü içindedir [1..5]kömürleşmesini almak co verilen vurursa xve yve 0aksi. Eğer xveya yaralıkta değil, bir Non-exhaustive patternsözel durumu oluşturuldu.


1

Oktav 49 bayt

@(c,r,s)char(accumarray([6-r c],s+0,[5 5],[],48))

1

QBIC , 53 50 bayt

EDIT: Şimdi başlangıç ​​ızgara göstermek zorunda olmadığını biliyorum , 3 bayt kaydederek, _!_!_?komut satırı parametreleri için kullanıcı girdilerini takas ettik ::;.

[5|?@00000|]::;~(b>5)+(c>5)>1|_Xd\$LOCATE 6-c,b|?B

Orijinal sürüm: Bu, 0 ızgarasını yazdırmak ve değiştirme için koordinatları almak arasında durur ve 0 ızgarasını gösterir.

[5|?@00000|]_!_!_?~(b>5)+(c>5)>1|_Xd\$LOCATE 6-c,b|?B

5'in 5 dizesini yazdırır 0, kullanıcıdan 2 sayısal giriş ve 1 dizgi girişi ister, sayıların <5 olup olmadığını kontrol eder LOCATEve doğru karakteri değiştirmek için QBasic'in işlevini kullanır .


0

Java, 99 bayt

(i,j,k)->{int[]b=new int[]{60,60,60,60,60};int[][]a=new int[][]{b,b,b,b,b};a[i-1][5-j]=k;return a;}

0

> <> (Balık), 36 bayt (rakip olmayan)

1-$p;
00000
00000
00000
00000
00000

Burada deneyin!

Bu [gibi yığında parametreleri yerleştirilerek çalıştırılır chr, y, x]. Alttaki sıfırlardan biri aslında chrtalimatla değiştirilir p. Muhtemelen bunu yapmanın daha iyi yolları vardır, ancak bunun bu özelliğin yararlı olduğu benzersiz ve eğlenceli bir durum olduğunu düşündüm.

açıklama

Bu program, sadece 1 çıkarır x(> <> 'de olduğu gibi, 0aslında olacaktır sütun), swap xile y, daha sonra codebox noktası değişiklikleri x, yiçine chrile p. ykodun hepsi 1 ile dengelendiği için ondan 1 çıkarılması gerekmez!

Rakip olmayan açıklama

Bu rekabet etmez çünkü gerçekte çıktı üretmez. Bunu son derece eğlenceli buldum. Bu geçerli çıktı olarak kabul edilirse, lütfen bana bildirin!

Aynı zamanda rekabet etmiyor, çünkü y0 olabilir, ancak cevabın tek sorunu olduğuna inanıyorum. Bu geçerli çıktı olarak kabul edilirse düzelteceğim, ancak aksi takdirde, cevabı daha az eğlenceli hale getirir ...


2
Bunun gibi cevaplar reddedilirse, lütfen bana bildirin, silerim!
redstarcoder

0

Bash, 59 bayt

golfed

printf '00000%0.s\n' {1..5}|sed "$1 s/./$3/$2"|grep -z "$3"

$ 1 , $ 2 - satır, sütun, $ 3 - değiştirme karakteri, hata çıkış kodu ile bildirilir

Ölçek

>./box 2 2 "*"
00000
0*000
00000
00000
00000
>echo $?
0

>./box 6 2 '*'     
>echo $?
1

0

Vim, 60 47 42 76 tuş vuruşları

Giriş (ilk satırda) biçimindedir:

25*

İmleç başlangıçta iken

"ax"bxx:if<C-r>a<1||<C-r>a>5||<C-r>b<1||<C-r>b>5
^
endif
6i0<ESC>Y5pG:norm <C-r>al<C-r>bkr<C-r>-
Hqqxjq5@qdd

Giriş geçersizse, atar: E492: Not an editor command: ^

Çıktıyı üreten cide yalnızca 42bayttır, ancak bir hata oluşturmak için bayt hesabım büyük ölçüde artar.


BTW
Vim'de

0

Java 8, 194192 bayt

interface M{static void main(String[]a){String r="";int i=0,j,z=new Byte(a[0]),y=new Byte(a[1]);for(;++i<6;r+="\n")for(j=0;++j<6;r+=6-i==y&j==z?a[2]:0);System.out.print(z>0&z<7&y>0&y<7?r:0);}}

Burada doğru giriş ile deneyin.
Burada yanlış girişle deneyin.

Bu , tam program yerine işlev olarak 116 114 bayt olacaktır :

(a,b,c)->{String r="";for(int i=0,j;++i<6;r+="\n")for(j=0;++j<6;r+=b==6-i&a==j?c:0);return a>0&a<7&b>0&b<7?r:"0";}

Burada deneyin.

Açıklama:

interface M{                  // Class
  static void main(String[]a){//  Mandatory main-method
    String r="";              //   Result-String, starting empty
    int i=0,j,                //   Index-integers
        z=new Byte(a[0]),     //   First input converted to integer
        y=new Byte(a[1]);     //   Second input converted to integer
    for(;++i<6;               //   Loop (1) from 1 to 6 (inclusive)
        r+="\n")              //     After every iteration: Append a new-line to the result
      for(j=0;++j<6;          //    Inner loop (2) from 1 to 6 (inclusive)
        r+=6-i==y             //     If the second input equals `6-1`,
           &j==z?             //     and the first input equals `j`:
            a[2]              //      Append the third input to the result-String
           :                  //     Else:
            0                 //      Append a zero to the result-String
      );                      //    End of inner loop (2)
                              //   End of inner loop (1) (implicit / single-line body)
    System.out.print(         //   Print:
     z>0&z<7&y>0&y<7?         //    If the coordinates are valid (1-6):
      r                       //     Print the result `r`
     :                        //    Else:
      0);                     //     Print 0 as error instead
  }                           //  End of main-method
}                             // End of class
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.