測驗完全五度的小程式…用Ruby寫的。
程式很醜(寫完才知道有proc可以用)
不過是第一個有實用性的程式,聊表記念。
未來目標:
1.GUI化
2.改用porc
3.全音程擴充
#written by juls
def prefect5
keys = ['Bb','B','B#','Cb','C','C#','Db','D','D#','Eb','E',
'E#','Fb','F','F#','Gb','G','G#','Ab','A','A#']
extraKeys = keys + ['F##','Bbb']
keyRandNum = rand(21)
keyRand = keys[keyRandNum]
udArray = ['above','below']
udRandNum = rand(2)
udRand = udArray[udRandNum]
interval= 5
soundNumClac = ((interval-1)*3 - udRandNum*3 + keyRandNum)
puts ''
if udRandNum == 0 and keyRandNum == 0
soundNum = (soundNumClac + 1)%21
elsif udRandNum == 0 and keyRandNum == 1
soundNum = (soundNumClac + 1)%21
elsif udRandNum == 0 and keyRandNum == 2
keys = extraKeys
soundNum = 21
elsif udRandNum == 1 and keyRandNum == 12
keys = extraKeys
soundNum = 22
elsif udRandNum == 1 and keyRandNum == 13
soundNum = (soundNumClac - 1)%21
elsif udRandNum == 1 and keyRandNum == 14
soundNum = (soundNumClac - 1)%21
else
soundNum = soundNumClac %21
end
correctNote = keys [soundNum]
puts 'What is the ' + 'Perfect 5th ' + udRand + ' the key ' + keyRand + ' ?'
puts '(Enter [Q] to quit the test.)'
answer = gets.chomp
if answer.upcase == 'Q'
STDOUT.flush
puts "Goodbye!"
else
if answer.upcase == correctNote.upcase
puts 'Correct!'
prefect5
else
puts ''
puts 'Nooop, The Correct answer is ' + correctNote
prefect5
end
end
end
prefect5
程式很醜(寫完才知道有proc可以用)
不過是第一個有實用性的程式,聊表記念。
未來目標:
1.GUI化
2.改用porc
3.全音程擴充
#written by juls
def prefect5
keys = ['Bb','B','B#','Cb','C','C#','Db','D','D#','Eb','E',
'E#','Fb','F','F#','Gb','G','G#','Ab','A','A#']
extraKeys = keys + ['F##','Bbb']
keyRandNum = rand(21)
keyRand = keys[keyRandNum]
udArray = ['above','below']
udRandNum = rand(2)
udRand = udArray[udRandNum]
interval= 5
soundNumClac = ((interval-1)*3 - udRandNum*3 + keyRandNum)
puts ''
if udRandNum == 0 and keyRandNum == 0
soundNum = (soundNumClac + 1)%21
elsif udRandNum == 0 and keyRandNum == 1
soundNum = (soundNumClac + 1)%21
elsif udRandNum == 0 and keyRandNum == 2
keys = extraKeys
soundNum = 21
elsif udRandNum == 1 and keyRandNum == 12
keys = extraKeys
soundNum = 22
elsif udRandNum == 1 and keyRandNum == 13
soundNum = (soundNumClac - 1)%21
elsif udRandNum == 1 and keyRandNum == 14
soundNum = (soundNumClac - 1)%21
else
soundNum = soundNumClac %21
end
correctNote = keys [soundNum]
puts 'What is the ' + 'Perfect 5th ' + udRand + ' the key ' + keyRand + ' ?'
puts '(Enter [Q] to quit the test.)'
answer = gets.chomp
if answer.upcase == 'Q'
STDOUT.flush
puts "Goodbye!"
else
if answer.upcase == correctNote.upcase
puts 'Correct!'
prefect5
else
puts ''
puts 'Nooop, The Correct answer is ' + correctNote
prefect5
end
end
end
prefect5
全站熱搜
留言列表