回答編集履歴

2

笑いを追加

2019/04/03 16:19

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  改行はしているけれど、一行で書いてあるから。
6
6
 
7
- あとはこれをショートコーディングすると、更に何文字か短くなるよ!
7
+ あとはこれをショートコーディングすると、更に何文字か短くなるよ!笑笑
8
8
 
9
9
  ```javascript
10
10
 

1

追加

2019/04/03 16:19

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,36 @@
1
1
  ほいよっ!
2
+
3
+
4
+
5
+ 改行はしているけれど、一行で書いてあるから。
6
+
7
+ あとはこれをショートコーディングすると、更に何文字か短くなるよ!
8
+
9
+ ```javascript
10
+
11
+ S=8,B=8,F=(m=>document.write(m.map(a=>a.map(b=>0<=b?b:'*').join(' ')).join('<br>')+'<hr>')),
12
+
13
+ M=Array(S*S).fill(0).fill(-1,0,S).sort(_=>Math.random()-.5),//マップ基本作成
14
+
15
+ M=Array(S).fill(0).map(_=>M.splice(-S)),//マップ作製
16
+
17
+ D=[-1,0,1].reduce((a,b,_,c)=>c.reduce((d,e)=>(b|e?[...d,[b,e]]:d),a),[]),//探す方向
18
+
19
+ P=M.reduce((a,b,y)=>b.reduce((c,_,x)=>(M[y][x]<0?[...c,[y,x]]:c),a),[]),//爆弾の位置
20
+
21
+ f=[...(new Set(P.reduce((a,[b,c])=>D.reduce((d,[e,f])=>([...d,[b+e,c+f]]),a),[]).filter(([y,x])=>0<=x&&0<=y&&x<S&&y<S))).values()],//爆弾の周囲の座標の重複削除
22
+
23
+ F(M),
24
+
25
+ f.forEach(([y,x])=> 0>M[y][x]||M[y][x]++),//点数計算
26
+
27
+ F(M);
28
+
29
+
30
+
31
+ ```
32
+
33
+
2
34
 
3
35
 
4
36