Package stanfordlogic.jocular

Source Code of stanfordlogic.jocular.Main

///////////////////////////////////////////////////////////////////////
//                        STANFORD LOGIC GROUP                       //
//                    General Game Playing Project                   //
//                                                                   //
// Sample Player Implementation                                      //
//                                                                   //
// (c) 2007. See LICENSE and CONTRIBUTORS.                           //
///////////////////////////////////////////////////////////////////////

/**
*
*/
package stanfordlogic.jocular;

import java.util.logging.Level;
import java.util.logging.Logger;

import stanfordlogic.game.GameManager;
import stanfordlogic.jocular.game.GenericGamerFactory;
import stanfordlogic.jocular.game.RLGamer;
import stanfordlogic.jocular.network.RequestHandlerFactory;
import stanfordlogic.network.ConnectionManager;
import stanfordlogic.util.CommandLineParser;
import stanfordlogic.util.LogPropertiesLoader;

/**
*
*/
public class Main
{
    public final static int DEFAULT_PORT = 4001;

    public static void setupLoggerProperties()
    {
        System.setProperty("java.util.logging.config.class",
                "stanfordlogic.util.LogPropertiesLoader");

        Logger.getLogger("stanfordlogic").setUseParentHandlers(false);
        Logger.getLogger("stanfordlogic").addHandler(
                LogPropertiesLoader.getDefaultHandler());

        Logger.getLogger("stanfordlogic.game").setLevel(Level.ALL);
        Logger.getLogger("stanfordlogic.game.search").setLevel(Level.FINE);

        Logger.getLogger("stanfordlogic.prover").setLevel(Level.INFO);
        Logger.getLogger("stanfordlogic.prover.unify").setLevel(Level.INFO);
    }

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        CommandLineParser clp = new CommandLineParser();
        clp.addFlag("--daemon");
        clp.addParam("--port");
        clp.setUsage("usage: <--daemon> <--port='portNum'>");

        clp.parse(args);
        boolean daemonMode = clp.argSpecified("--daemon");
        int port = clp.argSpecified("--port") ? clp.getArgAsInt("--port")
                : DEFAULT_PORT;

        if (!daemonMode)
        {
            System.out.println(" ########################################");
            System.out.println(" # Press Enter to shut the player down. #");
            System.out.println(" ########################################");
            System.out.println();
        }
        else
        {
            System.out.println(" ############################################################");
            System.out.println(" # Send \"(KILL abc)\" on port " + port + " to shut the player down. #");
            System.out.println(" ############################################################");
            System.out.println();
        }

        setupLoggerProperties();

        // TODO: read gamer config from file
        GenericGamerFactory factory = new GenericGamerFactory();
        factory.setGamerType(RLGamer.class);
        GameManager.setGamerFactory(factory);

        try
        {
            ConnectionManager manager = new ConnectionManager(port,new RequestHandlerFactory());
            manager.start();

            if (!daemonMode)
            {
                // Wait for input to kill the program
                System.in.read();
                manager.shutdown();
            }
            else
            {
                manager.join();
            }

            // All done.
            System.exit(0);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}
TOP

Related Classes of stanfordlogic.jocular.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.