2017-01-03 26 views
-2

我試圖創建生命遊戲,但早點擊了一個難點。 :(從文本文件中填充我的二維數組中的錯誤

我有一個文本文件,「O」和「*」爲出發網格/矩陣和我的構造函數讀取該文件,並填寫一個二維數組吧。

問題是,我有它說:錯誤「sc.nextLine();」我也不太確定什麼,我缺少的填寫陣列

import java.io.File; 
import java.util.ArrayList; 
import java.util.Scanner; 

    public class LifeGrid { 

    int x, y; 

    public LifeGrid(int newy, int newx, String filename) { 
    x = newx; 
    y = newy; 
    File file = new File(filename); 
    Scanner sc = new Scanner(file); 
    int[][] board = new int[y][x]; 
    while (sc.hasNext()) 
    { 
     for (int i = 0; i < y; i++) 
     { 
     for (int j = 0; j < x; j++) 
     { 
      board[i][j] = sc.nextLine(); <- error here 
     } 
     } 
    } 
} 
+0

你應該張貼您的。代碼:) – davidxxx

+0

修復您的縮進。如果您要求人們嘗試閱讀,則代碼應易於閱讀。 – khelwood

+0

在我添加代碼之前意外發布了它,現在應該都很好:D – Toby

回答

0

最簡單的辦法:

for (int i = 0; i < y; i++) 
    { 
    String line = sc.nextLine(); 
    for (int j = 0; j < x; j++) 
    { 
     board[i][j] = line.charAt(j)=='*'?1:0; 
    } 
    } 
+0

行「line.charAt(j)=='*'?1:0;」做? – Toby

+0

它從文本行取第j個字符。使用Scanner「sc」從文件讀取測試行。 「?」運算符是內聯的「if」。如果字符爲'*',則輸出爲「1」,否則(運算符「:」)爲「0」。 –