challenge ビンゴの結果を整形表示

重複無し乱数」の続編です。

「重複無し乱数」で作ったbingo関数の結果を下のように「何番目の乱数か」とセットにして10個ずつ折り返して表示するコードを書いてください。

>>> bingo(30)
  1  2  3  4  5  6  7  8  9 10
 29 14 16 13 30 15 22 11 25  9

 11 12 13 14 15 16 17 18 19 20
 23  4 18  5 28 17  8 12 21 20

 21 22 23 24 25 26 27 28 29 30
 26  6  2 19  1  7 10 27  3 24

>>> bingo(35)
  1  2  3  4  5  6  7  8  9 10
  7 15  3 32  1 16 17 28  6 29

 11 12 13 14 15 16 17 18 19 20
 19 23 30 26 20  5 12  2 25 31

 21 22 23 24 25 26 27 28 29 30
 35 13 24 18 11  8 10 34 22 21

 31 32 33 34 35
  9  4 27 33 14

Posted feedbacks - なでしこ

長くなってしまいましたが・・・

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ビンゴ(30)
●ビンゴ(n)
  bとは文字列
  cとは文字列
  nbとは整数=バイト数(n)
  //ビンゴを生成
  ビンゴ生成(n)を反復
      b=b&文字列右寄せ(対象,nb)&" "
  b=bを(nb+1)*10で行揃え
  //回数も生成
  iで1からnまで繰り返す
      c=c&文字列右寄せ(i,nb)&" "
  c=cを(nb+1)*10で行揃え
  //表示
  (切り上げ(n/10))回
      c[回数-1]を表示
      b[回数-1]を表示
      空を表示
●ビンゴ生成(n)
  rとは配列
  (n)回
    rに回数を配列追加
  rを配列シャッフル
  rで戻る

無理やり短く・・・

1
2
3
4
5
ビンゴ(30)
●ビンゴ(n)
  xとは整数=(文字数(n)+2);cとは配列;bとは配列;ビンゴ生成(n)で反復;b=b&文字列右寄(対象,x);c=c&文字列右寄(回数,x);もし(回数=n)ならば;b=行揃(b,(x*10));行揃(c,(x*10))で反復;表示(対象&改行&b[回数-1]&改行)
●ビンゴ生成(n)
  rとは配列;(n)回;配列追加(r,回数);もし(回数=n)ならば;戻(配列シャッフル(r))

Index

Feed

Other

Link

Pathtraq

loading...