开发者

Saving each of this boards into a Data Structure [closed]

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. Closed 10 years ago.

This is a dumb question and I feel embarrassed to ask it, but I'm pressed for time and I'm burnt out.

I have this sample input:

1 4 2
3 0 5
6 7 8

3 1 2
6 4 5
0 7 8

-1 -1 -1

Each group of numbers represent开发者_如何学JAVAs a board of the 8 puzzle, I don't know how many boards will appear on the text file. I only know its end is marked with -1 -1 -1.

I know the logic for this thing is simple, I'm just tired and can't put the code to work.

The output for the first board should be:

142305678

and for the second one

312645078

I'm getting:

142142142 
312312312 

Here's my code so far:

package puzzle;

import java.io.*;
import java.util.*;

/**
 *
 * @author Administrator
 */
public class Main {



    /**
     * @param args the command line arguments
     */





    public static void saveTheLine (String [] splittedLine ) {


            }

    public static void main(String[] args) throws IOException{
        // TODO code application logic here

    FileReader fr = new FileReader("E://Documents and Settings//Administrator//My Documents//NetBeansProjects//8Puzzle//src//puzzle//ocho.in");

    BufferedReader br = new BufferedReader(fr);


  /*
    String line = br.readLine();

    while (!line.equals("-1 -1 -1")) {


        line= br.readLine();
         //ArrayList <String> board = new ArrayList<String>();


              String board = new String("");
               while (!line.equals(null))
                {

                   board = board + line;
                   line= br.readLine();

               }

                System.out.println("a board is " + board);

            }

*/




    while (true) {

        String line= br.readLine();
        if (!line.equals("-1 -1 -1")){

            if (line.equals(" ")) {
                continue;
            }


            String board = new String (" ");

            ArrayList<String> board2 = new ArrayList<String>();
            for (int i =0; i<3; i++){

                String [] splittedLine = line.split(" ");
                board = line+board;

                for (int addToBoardIndex =0; addToBoardIndex < splittedLine.length; addToBoardIndex++){

                    board2.add(splittedLine[addToBoardIndex]);
                }
                br.readLine();



            }

            //System.out.println(board);

            for (String s : board2) {
                System.out.print(s);
            }

            System.out.println(" ");

        }

        else if (line.equals("-1 -1 -1")) {
                break;
            }
    }


    /*String line = br.readLine();




    while (!line.equals("-1 -1 -1"))

    {


        //StringBuilder board = new StringBuilder("");

        ArrayList<String> board = new ArrayList<String>();

        for (int lineIndex =0; lineIndex<3; lineIndex++){

            line = br.readLine();
            String [] splittedLine = line.split(" ");
            board.add(splittedLine [0]);
            board.add(splittedLine [1]);
            board.add(splittedLine [2]);


        }




         for (String boardIndex: board){
             System.out.println(boardIndex);
         }



         String blankLine = br.readLine();





     }*/
    }

}


...
br.readLine();
...

You call readLine(), but you don't actually assign it to line or do anything else with it. Thus you keep re-using the first line over and over.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜