Lưới mã nghệ thuật ASCII


19

Thử thách

Tạo chương trình ngắn nhất đáp ứng yêu cầu

Yêu cầu

  1. Mã phải tạo ra một lưới 5x5 bằng 0, như vậy:

    00000
    00000
    00000
    00000
    00000
    
  2. Mã phải chấp nhận một đầu vào (cột, hàng, ký tự). Lưới phải thay đổi tương ứng:

    Khởi đầu:

    00000
    00000
    00000
    00000
    00000
    

    Đầu vào:

    (2,5,*)
    

    Đầu ra:

    0*000
    00000
    00000
    00000
    00000
    

    (Lưu ý: góc dưới bên trái là vị trí 1,1.)

  3. Chương trình này phải trả lại một thông báo lỗi khác với lưới nếu hàng / cột đầu vào không phải là 1,2,3,4 hoặc 5. Đây có thể là bất kỳ thông điệp của sự lựa chọn của bạn (miễn là nó không phải là lưới), do đó 0là một đầu ra lỗi chấp nhận được.

  4. Chương trình phải hoạt động với tất cả các ký tự ASCII có thể in (của bàn phím Hoa Kỳ).

NGƯỜI CHIẾN THẮNG

Người chiến thắng sẽ là người có mã ngắn nhất và đáp ứng mọi yêu cầu. Nếu có nhiều câu trả lời hoạt động và có cùng độ dài (ngắn nhất), người trả lời trước sẽ là người chiến thắng.


8
Chương trình phải trả về một thông báo lỗi . Thông báo lỗi gì? Chương trình có thể trả lại 0lỗi và lưới thành công không?
Rod

1
Nguồn gốc của ma trận ở đâu? nó cần phải bằng không hoặc một chỉ mục?
george

3
Chào mừng bạn đến với PPCG.
Erik the Outgolfer

4
Chương trình phải hoạt động với tất cả các ký tự trên bàn phím Hoa Kỳ Tại sao không chỉ ASCII? Tôi thậm chí không biết các ký tự của bàn phím Hoa Kỳ và điều đó không thêm bất cứ điều gì vào thử thách
Luis Mendo

1
@LuisMendo Tôi nghĩ bàn phím của Mỹ là ASCII hoặc ít nhất là một tập hợp con.
Conor O'Brien

Câu trả lời:


11

APL Dyalog , 17 13 10 byte

Nhắc cho một mảng kèm theo chứa (hàng, cột) và sau đó cho một ký tự. Cung cấp INDEX ERROR cho đầu vào bị lỗi.

⊖⍞@⎕⊢5 50

Hãy thử trực tuyến!

 lật ngược kết quả của

 nhập-ký tự

@ thay thế nội dung tại vị trí

 đánh giá đầu vào (hàng kèm theo, cột)

 của

5 5⍴ Mảng 5 × 5 của

0 số không


cần thiết không? Tôi nghĩ rằng trong trường hợp này nó là dư thừa.
Conor O'Brien

1
@ ConorO'Brien @ ConorO'Brien nếu không có ở đó, trình phân tích cú pháp sẽ xem (⊂⎕)5 5như một mảng 3 phần tử duy nhất - đối số .
Adám

Đó là 13 ký tự Unicode, không phải 13 byte, phải không?
wilx

1
@wilx Nhấp vào byte từ !
Adám

Câu trả lời này là người chiến thắng.
Dave Jones

5

Ruby, 157 149 byte

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]}

Lỗi về đầu vào không đúng định dạng hoặc ra khỏi vị trí bị ràng buộc

Cảm ơn ConorO'Brien (8 byte) và xa (2 byte) vì đã giúp lưu byte


loop do...end-> loop{...}; Tôi nghĩ rằng Array.new(5,[0]*5)công việc, quá, hoặc thậm chí [*[0]*5]*5.
Conor O'Brien

@ ConorO'Brien Không, Array.new(5,[0]*5)tạo một mảng tham chiếu và [*[0]*5]*5tạo một mảng phẳng
TuxCrafting

Ô đung rôi. Bỏ qua đầu tiên *. Sau đó, điều đó vẫn tạo ra một loạt các tài liệu tham khảo.
Conor O'Brien

Array.new(5){[0]*5}có thể được thay thế bằng (1..5).map{[0]*5}để lưu 2 byte.
từ

4

Hàng loạt, 199 byte

@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%

Lỗi ra nếu vị trí nằm ngoài phạm vi.


Tôi nghĩ rằng bạn có thể sử dụng các biểu tượng cho <, như ^<. không chắc tho.
Conor O'Brien

3

PHP, 111 100 97 byte

$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;

in Enếu hàng / cột ngoài phạm vi.
Chạy vớiphp -r <code> <row> <column> <character>


3

Python, 66 byte

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

Thắng đượct này thất bại cho a = 4, b = 3?
Tít

@Titus không còn nữa; D
Rod

1
Giải pháp cũng hoạt động cho Python3
george

3

APL Dyalog, 24 20 18 byte

Đã lưu 4 byte nhờ Zgarb! Đã lưu 2 byte nhờ Adam!

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

Nhắc nhở cho đầu vào. Xem dưới đây để giải thích.


20 byte

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

Gán cho một chức năng và gọi nó y x f 'c'. Ví dụ:

      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}
               ∧   

Giải trình

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

{...}là một hàm với đối số trái và đối số phải . phân tách các câu lệnh, do đó có ba câu lệnh:

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

Báo cáo kết quả đầu tiên a←5 5⍴0bộ ađến một 5bởi 5mạng lưới các 0s.

Những tuyên bố thứ hai đặt thành viên tại tọa độ quyết định bởi đến (có nghĩa là, nhân vật).

Cuối cùng, chúng tôi thực hiện trên avà trở về đó, năng suất những cái đầu tiên của ađảo ngược.


{a←5 5⍴0⋄a[⊂⌽⍺]←⍵⋄⊖a}tiết kiệm một vài byte.
Zgarb

@Zgarb ơi, tuyệt vời! Tôi không biết lập chỉ mục làm việc như vậy.
Conor O'Brien

Bạn có thể lưu hai byte bằng cách chuyển đổi sang cơ thể tradfn:a←5 5⍴0⋄a[⊂⎕]←⍞⋄⊖a
Adám

@ Adám làm thế nào mà hoạt động? Nó dường như không hoạt động trên TryAPL.
Conor O'Brien

@ ConorO'Brien Phải. TryAPL cấm nhắc nhở nhập liệu, nhưng bạn có thể nhận phiên bản đầy đủ miễn phí.
Adám

3

JavaScript (ES6), 73 76 byte

Ném a TypeErrornếu cột hoặc hàng nằm ngoài phạm vi.

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

Bản giới thiệu


Ngọt ngào, nhưng nó có ném lỗi nếu một choặc rít hơn 1 không?
Sản xuất ETH

@ETHproductions Đó chỉ là thử nghiệm c == 0 || r == 0. Nhưng tôi đoán bạn đã đúng: Tôi sẽ cập nhật nó để ngăn chặn các giá trị âm.
Arnauld

3

C #, 199 byte

Dựa trên câu trả lời của Pete Arden

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());}

Ung dung:

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
    }

Chào mừng đến với trang web! Tôi không phải là chuyên gia về C #, nhưng có vẻ như có một khoảng trắng bạn có thể xóa.
DJMcMayhem

1
(Xin lỗi, không biết phép xã giao đệ trình) Shorter G (): chuỗi tĩnh công khai G (int c, int r, char a) {return (0 <c && c <6 && 0 <r && r <6)? String.Concat (Enumerable.Range (1,29) .Chọn (i => i% 6> 0? I / 6 == 5-r && i% 6 == c? A: '0': '\ n')): "Lỗi chỉ mục";}
Eric


2

Thạch , 28 byte

Cảm giác này quá dài ...

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

Dùng thử trực tuyến!

Làm sao?

Ṫ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 byte

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:""

Bởi vì tôi yêu đệ quy. Ném a ReferenceErrorvào tọa độ không hợp lệ.



2

Brain-Flak 415 byte

Bao gồm +3 cho -c

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

Hãy thử trực tuyến!

Đưa ký tự để chèn trước, sau đó hàng sau đó cột không có khoảng trắng.

Hầu hết đây chỉ là xử lý lỗi. Brain-Flak không có cách nào tốt để kiểm tra xem các giá trị có nằm trong phạm vi không. Đối với các lỗi, nó không tạo ra kết quả gì, hoặc chỉ ký tự được cho là được chèn. Giải quyết vấn đề thực tế chỉ mất 211 byte:

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

2

VBA Excel, 67 byte

Đầu ra cho phạm vi A1: E5 trên bảng kích hoạt của dự án vba, thoát với

Lỗi thời gian chạy '1004':

Lỗi do ứng dụng xác định hoặc xác định đối tượng

khi một đầu vào không hợp lệ được cung cấp.

Mã số:

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

Sử dụng:

a 4,5,"#"

Đầu ra (từ ví dụ trên) :

    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 byte

Chơi gôn

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());}

Ung dung:

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());
}

Kiểm tra:

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

Nếu cvà / hoặc rnằm ngoài giới hạn, nó sẽ ném ra IndexOutOfRangeExceptionđể bạn có thể xóa câu lệnh if đầu tiên mặc dù tôi chưa kiểm tra đúng thông số kỹ thuật cho điều đó. Bạn có thể biên dịch thành a Func<int, int, char, string>để lưu byte, tôi tin rằng bạn cần thêm using System.Linq;vào vì Reversecuộc gọi mặc dù tôi không thể nhớ ra khỏi đỉnh đầu của mình
TheLethalCoder

Thay đổi d[r - 1] = d[r - 1].Substring(0, c - 1) + a + d[r - 1].Substring(c);thành d[--r] = d[r].Substring(0, c - 1) + a + d[r].Substring(c);để lưu 4 byte
TheLethalCoder

1

WinDbg, 95 byte

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

Hầu như một nửa của nó chỉ kiểm tra các chỉ số nằm trong phạm vi ... Input được thực hiện bằng cách thiết lập psuedo-thanh ghi $t0, $t1$t2(nơi $t2giữ giá trị ascii của char để thay thế). Ví dụ, (2,5,*)như ví dụ sẽ là:

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

In 0lỗi.

Làm thế nào nó hoạt động:

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

Đầu ra mẫu:

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 byte

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]

Ví dụ sử dụng:

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

Nếu xynằm trong phạm vi, vòng lặp bên ngoài và bên trong đi qua [1..5]và lấy char cnếu nó chạm vào cái đã cho xy0nếu không. Nếu xhoặc ykhông nằm trong phạm vi, một Non-exhaustive patternsngoại lệ được nêu ra.


1

Octave 49 byte

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

1

QBIC , 53 50 byte

EDIT: Bây giờ tôi biết rằng tôi không phải hiển thị lưới bắt đầu, tôi đã trao đổi các đầu vào của người dùng _!_!_?cho các tham số dòng lệnh ::;, tiết kiệm 3 byte.

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

Phiên bản gốc: Điều này tạm dừng giữa việc in lưới 0 và lấy tọa độ để thay thế, hiển thị lưới 0.

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

In 5 chuỗi 5 0, yêu cầu người dùng cho 2 đầu vào số và 1 đầu vào chuỗi, kiểm tra xem các số có <5 không và sử dụng LOCATEchức năng của QBasic để thay thế đúng ký tự.


0

Java, 99 byte

(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

> <> (Cá), 36 byte (không cạnh tranh)

1-$p;
00000
00000
00000
00000
00000

Hãy thử nó ở đây!

Này được điều hành bằng cách đặt các thông số trên stack như [ chr, y, x]. Một trong những số không ở phía dưới thực sự được thay đổi thành chrtheo hướng dẫnp . Có lẽ có nhiều cách tốt hơn để làm điều này, nhưng tôi nghĩ rằng đây là một tình huống độc đáo và thú vị trong đó tính năng> <> này hữu ích.

Giải trình

Chương trình này chỉ cần trừ 1 từ x(như trong> <>, 0thực sự sẽ là cột đầu tiên), hoán đổi xvới y, sau đó thay đổi điểm mã hóa x, ythành chrthông qua p. ykhông cần trừ 1, vì mã đã được bù tất cả bằng 1!

Giải thích không cạnh tranh

Điều này là không cạnh tranh bởi vì nó không thực sự tạo ra đầu ra. Tôi chỉ thấy điều này vô cùng thú vị. Nếu đây được coi là đầu ra hợp lệ, xin vui lòng cho tôi biết!

Nó cũng không cạnh tranh vì ycó thể là 0, nhưng tôi tin đó là vấn đề duy nhất với câu trả lời. Tôi sẽ sửa nếu đây được coi là đầu ra hợp lệ, nhưng nếu không, nó chỉ khiến câu trả lời trở nên ít tính giải trí hơn ...


2
Nếu câu trả lời như thế này không được khuyến khích, vui lòng cho tôi biết và tôi sẽ xóa nó!
redstarcoder

0

Bash, 59 byte

Chơi gôn

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

$ 1 , $ 2 - hàng, cột, $ 3 - char thay thế, lỗi được báo cáo thông qua mã thoát

Kiểm tra

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

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

0

Vim, 60 47 42 76 tổ hợp phím

Đầu vào có định dạng (trên dòng đầu tiên):

25*

Với con trỏ bắt đầu từ đầu

"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

Nếu đầu vào không hợp lệ, sau đó ném: E492: Not an editor command: ^

Các cide tạo ra đầu ra chỉ là 42byte, nhưng để tạo ra một lỗi, bytecount của tôi được tăng mạnh.


BTW Tôi không biết cách tạo lỗi trong Vim
Kritixi Lithos

0

Java 8, 194 192 byte

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);}}

Hãy thử nó ở đây với đầu vào chính xác.
Hãy thử nó ở đây với đầu vào không chính xác.

Đây sẽ là 116 114 byte thay vì chức năng thay vì chương trình đầy đủ:

(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";}

Hãy thử nó ở đây.

Giải trình:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.