質問するログイン新規登録

回答編集履歴

3

def bingo_row(hantei,i0,j0)のコメントのみ修正しました。

2020/11/14 14:24

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -26,12 +26,12 @@
26
26
  #横のビンゴ判定
27
27
  def bingo_row(hantei,i0,j0)
28
28
  (0..S-1).each do |j|
29
- #1つでも0ならNO
29
+ #1つでも頭に星がついていいならNO
30
30
  if hantei[i0][j][0] != "☆"
31
31
  return false
32
32
  end
33
33
  end
34
- #全て1の場合、YES
34
+ #全て頭に星がついている場合、YES
35
35
  return true
36
36
  end
37
37
 

2

追記しました。

2020/11/14 14:24

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -1,6 +1,17 @@
1
1
  当たりのところに☆をつけるバージョンです。
2
2
  横ビンゴの判定のみです。ほかは、付け加えてください。
3
+ かなり、書き換えました。これを使って下さい。
3
4
  ```ruby
5
+ #配列の印字
6
+ def print_array(arr_name,arr)
7
+ printf("Array=%s\n",arr_name)
8
+ (0..S-1).each do |i|
9
+ (0..S-1).each do |j|
10
+ printf("%s ",arr[i][j])
11
+ end
12
+ printf("\n")
13
+ end
14
+ end
4
15
  #文字の検索
5
16
  def find_position(arr,val)
6
17
  (0..S-1).each do |i|
@@ -24,7 +35,6 @@
24
35
  return true
25
36
  end
26
37
 
27
-
28
38
  S = gets.to_i
29
39
  word_arr = Array.new(S)
30
40
  data = [*'a'..'z', *'0'..'9']
@@ -32,14 +42,8 @@
32
42
  ar = Array.new(S){data.sample(4).join}
33
43
  word_arr[i] = ar
34
44
  end
45
+ print_array("word_arr",word_arr)
35
46
 
36
- (0..S-1).each do |i|
37
- (0..S-1).each do |j|
38
- printf("%s ",word_arr[i][j])
39
- end
40
- printf("\n")
41
- end
42
-
43
47
  N = gets.to_i
44
48
  word_arr_flat = word_arr.flatten
45
49
  word_n = word_arr_flat.sample(N)
@@ -50,7 +54,7 @@
50
54
  printf("\n")
51
55
 
52
56
  hantei = Marshal.load(Marshal.dump(word_arr))
53
- pp hantei
57
+ print_array("hantei",hantei)
54
58
  ctr = 0
55
59
  word_n.each do |val|
56
60
  i,j = find_position(word_arr,val)
@@ -70,6 +74,7 @@
70
74
  if ctr == 0
71
75
  printf("ビンゴなし\n")
72
76
  end
73
- pp hantei
77
+ print_array("hantei",hantei)
74
78
 
79
+
75
80
  ```

1

hanteiの作成方法を変えました。

2020/11/14 13:51

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -49,12 +49,7 @@
49
49
  end
50
50
  printf("\n")
51
51
 
52
- hantei = Array.new(S)
52
+ hantei = Marshal.load(Marshal.dump(word_arr))
53
- (0..S-1).each do |i|
54
- ar = word_arr[i].dup
55
- hantei[i] = ar
56
- end
57
-
58
53
  pp hantei
59
54
  ctr = 0
60
55
  word_n.each do |val|