2014-12-06 69 views
0

我試圖構建一個由10x10網格組成的戰場。在Ruby中創建戰場網格

下面是我的代碼:

SHIP_HASH = { submarine: 2, destroyer: 3, destroyer: 3, cruiser: 4, aircraftcarrier: 5,} 

def print_results 
    board_layout = Array.new(10, " ").map{|row| Array.new(10, " ")} 
    row_label = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 
    column_label = [" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 
end 

print print_results 

我收到的輸出:

[" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]

我想什麼是產生類似下面的輸出,但我不知道知道什麼是錯誤。 0 1 2 3 4 5 6 7 8 9 0 . . . . . . . . . . 1 . . . . . . . . . . 2 . . . . . . . . . . 3 . . . . . . . . . . 4 . . . . . . . . . . 5 . . . . . . . . . . 6 . . . . . . . . . . 7 . . . . . . . . . . 8 . . . . . . . . . . 9 . . . . . . . . . .

+0

你的代碼中甚至沒有任何點,你如何期望它們被打印? – 2014-12-06 14:49:55

回答

2

所以在紅寶石中,方法中評估的最後一件東西就是返回的東西。所以在你的print results中,最後評估的是column_label的分配,這是你看到的返回值。

下面是代碼,注意別人的使用在某些情況下printputs,因爲他們做不同的事情:

SHIP_HASH = { submarine: 2, destroyer: 3, destroyer: 3, cruiser: 4, aircraftcarrier: 5,} 

def print_results 
    board_layout = Array.new(10, ".").map{|row| Array.new(10, ".")} 
    row_label = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 
    column_label = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 

    print "\t" 
    print row_label.join("\t") 
    puts 
    board_layout.each_with_index do |row, i| 
    print column_label[i] 
    print "\t" 
    print row.join("\t") 
    puts 
    end 
end 

print_results 

輸出:

0 1 2 3 4 5 6 7 8 9 
0 . . . . . . . . . . 
1 . . . . . . . . . . 
2 . . . . . . . . . . 
3 . . . . . . . . . . 
4 . . . . . . . . . . 
5 . . . . . . . . . . 
6 . . . . . . . . . . 
7 . . . . . . . . . . 
8 . . . . . . . . . . 
9 . . . . . . . . . . 

讓我知道如果您有任何關於這個的問題。

+0

如果我爲了使它看起來更整潔而刪除了括號和'「」',該怎麼辦?我嘗試使用'board_layout = Array.new(10,「。」)。map {| row | Array.new(10,「。」)}'但它不會按我想要的方式出現。我在第一篇文章中更改了預期的輸出,以便讓您瞭解我想要生成的內容。 @anthony – apple 2014-12-06 13:00:30

+1

我更新了我的答案以匹配 – Anthony 2014-12-06 13:08:13

+0

我不明白你爲什麼必須輸入'print'\ t「'並且'print row_label.join(」\ t「)'@anthony – apple 2014-12-06 13:09:36

0
SHIP_HASH = { submarine: 2, destroyer: 3, destroyer: 3, cruiser: 4, aircraftcarrier: 5,} 

def print_results 
    board_layout = Array.new(10, ".").map{|row| Array.new(10, ".")} 
    row_label = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 
    column_label = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 

print "\t" 
print row_label.join("\t") 
puts 
board_layout.each_with_index do |row, i| 
    print column_label[i] 
    print "\t" 
    print row.join("\t") 
    puts 
    end 
end 

print_results