import java.io.*;

/**
 * SgfWriter クラスは、SGF形式のファイルを出力します。
 * @author Jiro Suzuki
 */
public class SgfWriter{

    /**
     * 空のインスタンスを生成します。
     */
    SgfWriter(){
    }

    /**
     * 指定したファイル名でSGFファイルを出力します。
     * @param fileName ファイル名(フルパス指定)
     * @param kifu 棋譜情報
     */
    public void write(String fileName,Kifu kifu){

        IntOrder intOrder=new IntOrder();
        String[] sgfOrder=intOrder.translateIntToSgf(kifu.getOrderOfMoves());
        String sgfGameInfo=kifu.getGameInformation().getSgfGameInformation();
        String sgfEnd=new String(")");
        try{
            PrintWriter writer=new PrintWriter(new FileWriter(fileName));
            writer.print("(;");
            writer.println(sgfGameInfo);
            for(int i=0;i<sgfOrder.length;i++){  
                writer.println(";" + sgfOrder[i]);
            }
            writer.print(")");
            writer.close();
        }
        catch(IOException e){
            System.out.print("Error:"+e);
            System.exit(1);
        }

    }

}