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

回答編集履歴

6

出力の文字を正しくした

2018/02/19 10:57

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -8,8 +8,7 @@
8
8
  puts "相手の名前を入力してください"
9
9
  name2 = gets.chomp
10
10
 
11
- print "二人の相性は"
12
11
  seed = (name1 + name2).chars.map(&:ord).inject(:+)
13
12
  random_int = Random.new(seed).rand(1..10)
14
- puts "相性は#{random_int * 10}%です"
13
+ puts "二人の相性は#{random_int * 10}%です"
15
14
  ```

5

少し簡単にした

2018/02/19 10:57

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -7,8 +7,9 @@
7
7
  name1 = gets.chomp
8
8
  puts "相手の名前を入力してください"
9
9
  name2 = gets.chomp
10
+
10
11
  print "二人の相性は"
11
- seed = [name1.chars, name2.chars].flatten.map(&:ord).inject(:+)
12
+ seed = (name1 + name2).chars.map(&:ord).inject(:+)
12
13
  random_int = Random.new(seed).rand(1..10)
13
14
  puts "相性は#{random_int * 10}%です"
14
15
  ```

4

解説を追加、説明変数を追加

2018/02/19 10:54

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -1,11 +1,14 @@
1
+ `rand`は[Rubyでランダムな数値を得る方法](https://www.xmisao.com/2014/03/11/how-to-get-a-random-number-in-ruby.html)を参考にしました。
2
+
3
+ 文字を整数に変換するために、`hash`だと実行のたびに変わってしまったので、
4
+ `ord`で変換してみました。
1
5
  ```
2
6
  puts "あなたの名前を入力してください"
3
7
  name1 = gets.chomp
4
8
  puts "相手の名前を入力してください"
5
9
  name2 = gets.chomp
6
10
  print "二人の相性は"
7
- int = [name1, name2].map(&:ord).inject(:+)
11
+ seed = [name1.chars, name2.chars].flatten.map(&:ord).inject(:+)
12
+ random_int = Random.new(seed).rand(1..10)
8
- puts "相性は#{Random.new(int).rand(1..10) * 10}%です"
13
+ puts "相性は#{random_int * 10}%です"
9
- ```
14
+ ```
10
- 参考
11
- https://www.xmisao.com/2014/03/11/how-to-get-a-random-number-in-ruby.html

3

参考を追記

2018/02/19 10:51

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -6,4 +6,6 @@
6
6
  print "二人の相性は"
7
7
  int = [name1, name2].map(&:ord).inject(:+)
8
8
  puts "相性は#{Random.new(int).rand(1..10) * 10}%です"
9
- ```
9
+ ```
10
+ 参考
11
+ https://www.xmisao.com/2014/03/11/how-to-get-a-random-number-in-ruby.html

2

ordの使い方

2018/02/19 10:40

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -4,6 +4,6 @@
4
4
  puts "相手の名前を入力してください"
5
5
  name2 = gets.chomp
6
6
  print "二人の相性は"
7
- int = [name1, name2].sort.join.ord
7
+ int = [name1, name2].map(&:ord).inject(:+)
8
8
  puts "相性は#{Random.new(int).rand(1..10) * 10}%です"
9
9
  ```

1

出力を変更

2018/02/19 10:35

投稿

y-doi
y-doi

スコア322

answer CHANGED
@@ -5,5 +5,5 @@
5
5
  name2 = gets.chomp
6
6
  print "二人の相性は"
7
7
  int = [name1, name2].sort.join.ord
8
- puts "#{Random.new(int).rand(1..10) * 10} %"
8
+ puts "相性は#{Random.new(int).rand(1..10) * 10}%です"
9
9
  ```