잠시 후 나는 Codecademy - Python 트랙을 만들고 간단한 전함 게임을 만들었습니다. 저는 지금 루비를 배우면서 파이썬에서 루비로 게임을 변환하려고했습니다. 지금까지 번역에서 잘 해왔지만이 시점에서 플레이어가 이미 추측 한 보드에 "X"를 인쇄하려고했습니다. 나는 여러 가지 방법으로 놀았지만 지금까지는 내 목표를 달성하지 못했습니다.Ruby에서 간단한 전함 게임 만들기
내가 변환하는 데 문제가 특정 라인은 다음과 같습니다 board[guess_row][guess_col] = "X"
이
여기에 전체 게임 코드 (내가 알고 다른 부분은 여전히뿐만 아니라 변경해야하지만, 질서를 통과 한거야 그리고이되었습니다 내 지금까지 중단 점, 더 이상의 팁 또한 매우 감사합니다!) :
편집 : 정보 주셔서 감사합니다, 나는 그것을 얻을 수 있었고 모든 도움으로 상상할 수 있었다! 덧글이 지적한대로 지금 나는 그냥 .. 거기에 종료 방법을 넣어하는 방법을 알아 내기 위해
def play_battleship
board = Array.new(10) { Array.new(10, "O") }
def print_board(board)
board.each do |r|
puts r.map { |p| p }.join(" ")
end
end
puts "Let's play Battleship!\n-----\nYou have 10 tries!\n-----"
print_board(board)
def random_row(board)
return rand(10)
end
def random_col(board)
return rand(10)
end
ship_row = random_row(board)
ship_col = random_col(board)
#puts ship_row ##debugging purposes
#puts ship_col ## ^^^^
for turn in 1..10
puts "Turn: #{turn}"
puts "Guess Row (0-9): "
guess_row = gets.chomp.to_i
puts "Guess Collumn (0-9): "
guess_col = gets.chomp.to_i
if turn == 10
puts "------\nGame Over!\nThe Battleship coordinates were:#{ship_row},#{ship_col}"
break
elsif (guess_row == ship_row) && (guess_col == ship_col)
puts "Congratulations! You sunk my battleship!"
break
else
if ((guess_row < 0) || (guess_row > 9)) || ((guess_col < 0) || (guess_col > 9))
puts "Oops, that's not even in the ocean."
elsif(board[guess_row][guess_col] == "X")
puts "You guessed that one already."
else
puts "You missed my battleship!"
board[guess_row][guess_col] = "X"
#if turn == 10
# puts "Game Over\nThe Battleship coordinates were:#{ship_row},#{ship_col}"
# break
#end
end
end
print_board(board)
end
end
play_battleship
다차원 배열에서 이것을 참조하십시오 : http://www.ehow.com/how_2091651_create-multidimensional-array-ruby.html 아직 만들어 보지 않았습니다 –
보드가 2 차원 배열이 아니며 단지 10 개입니다 . 'board = []'그럼'board 10 times {board << ("0"* 10)}' – Jordan
정보 녀석 들께 감사드립니다. – Tom