-
Notifications
You must be signed in to change notification settings - Fork 8
議事録(53)
yowasou edited this page Aug 13, 2023
·
3 revisions
議事録(53)
- Tはだいたい実践できていました。
- 回線はもう毎回でてるね
- 新人がいないので近況報告も
- ポジションペーパーを参照
- https://github.com/hamamatsu-rb/hamamatsu-rb.github.com/wiki/%E3%83%9D%E3%82%B8%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%9A%E3%83%BC%E3%83%91%E3%83%BC
- 数あてゲーム(High and Low)
- みんなのコードは以下
- 最初にあげた@yowasouのコード
puts "start!"
puts "input 1-10 number or give up"
kotae = rand(10) + 1
loop do
a = gets.strip
ia = a.to_i
if ia > kotae then
puts "High"
elsif ia < kotae then
puts "Low"
else
puts "OK!"
break
end
end
-
乱数はTime.now.usecを使うのもアリだと説明
-
while(1)よりloopのほうがrubyっぽい
-
p ではなく putsを使用。pはデバッグ用途
-
puts "\n" 改行できる
-
chomp->strip 両端の改行、空白を消せる。
-
rand(1..10) 範囲で乱数を取得
-
rspecは標準入出力をテストできるらしい。
-
以下Slackから拾ってきたもの
def game
r = rand(10) + 1
while gets != nil
x = $_.chop.to_i
if x < r
puts "low"
elsif x > r
puts "high"
else
puts "OK"
break
end
end
end
game
- ゲーム繰り返し版
def game
r = rand(10) + 1
while gets != nil
x = $_.chop.to_i
if x < r
puts "low"
elsif x > r
puts "high"
else
puts "OK"
break
end
end
end
while true
game
puts "Retry? (type 'e' to end)"
s = gets.chop
break if s =~ /^e/
end
- キーワードを変えるだけでRubyっぽく
ef game
r = rand(10) + 1
while gets != nil
x = $_.chop.to_i
if x < r
puts "low"
elsif x > r
puts "high"
else
puts "OK"
break
end
end
end
loop do
game
puts "Retry? (type 'e' to end)"
s = gets.chop
break if s =~ /^e/
end
- rand()使用版
class HighLow
$result = 0
def initialize()
self.init
end
def init
$result = rand(10) + 1
end
def judge(n)
if (n == "giveup")
self.init
ret = "Give Up"
elsif (n == "exit")
ret = "Exit"
elsif (n.to_i < $result && n.to_i > 0)
ret = "Low"
elsif (n.to_i > $result && n.to_i <= 10)
ret = "High"
elsif (n.to_i == $result)
self.init
ret = "Ok"
else
ret = "Error"
end
print ret + "\n"
return ret
end
end
game = HighLow.new
while str = STDIN.gets.strip
break if (game.judge(str) == "Exit")
end
- 普段使い道のない <=> を使いたかった
answer = (1..10).to_a.sample
message = {
1 => 'your answer is low',
-1 => 'your answer is high',
0 => 'good'
}
loop do
compare = answer <=> gets.to_i
puts message[compare]
break if compare == 0
end
- injectを使ってワンライナーっぽく
(1..10).inject(rand(10)+1) {|r, x| x = gets.strip.to_i; if (x == r) then puts "OK"; break; elsif x < r then puts "Low"; else puts "Hight"; end; r }
- injectからbreakできる(exitでもいい)
- 最後にWeb化した人登場(Sinatra)セッションに答えを入れてます
- 終了後にもslackへ投稿
puts "二分探索(ハイアンドロー)"
ans = rand(10)+1;
loop do
puts "1~10までの数字を入力してください。"
input = gets.chomp!.to_i
if input < 1 || 10 < input
redo
end
if ans < input
puts "Low"
elsif input < ans
puts "High"
else
puts "OK!"
break
end
end
- 問題を解く側を作った人も現る
puts "二分探索(ハイアンドロー)"
ans = rand(1000000000)+1;
low = 1
high = 1000000000
count = 0
while low < high
mid = ( high + low ) / 2
puts "検索範囲:#{low}~#{high}"
puts "#{mid}かな?"
#puts "1~1000000000までの数字を入力してください。(1~10億)"
if ans < mid
puts "Low"
high = mid
elsif mid < ans
puts "High"
low = mid + 1
else
puts "OK!"
count += 1
break
end
count += 1
end
puts "答え:#{ans}"
puts "探索回数:#{count}"
loop do
# srand(0)
x = rand(1..10)
puts "what is x? (1-10)"
loop do
y = gets.to_i
case
when x > y
puts "miss! x > #{y}"
when x < y
puts "miss! x < #{y}"
else
puts "hit! x == #{y}"
puts
break
end
end
end
- 次回はハイレベルなこともできるネタを用意するといいかも
- @jacoyutoriusさんの子LT。スタイリッシュなWebサイトを作ろうという話
- Jekyll Themesで探すとナイステンプレがたくさん出てくる
- Hamamatsu.rbもかっこよくしました
- テンプレで印象がだいぶよくなる
- Project Euler すげえ難しい トップの人は人間卒業済みらしい
- メタプロRuby2がもうすぐ。ボブがいない!?
- 今週土曜日:東海道らぐ 鴨江アートセンター206 13:00~
- https://tokaidolug.doorkeeper.jp/events/25237
- Linuxユーザーコミニティ(あんまり怖くない)カーネル読んでない人も大丈夫
- コーディング規約 空白改行許さんとこもある
- JAWS-UG浜松 Reboot#1 @yowasouがAWS Summit Tokyo2015レポ
- https://jawsug-hamamatsu.doorkeeper.jp/events/26378