package ge.edu.freeuni.sdp.snake;
import ge.edu.freeuni.sdp.snake.model.Configuration;
import ge.edu.freeuni.sdp.snake.model.Level;
import ge.edu.freeuni.sdp.snake.model.Size;
import ge.edu.freeuni.sdp.snake.presenter.PresenterFactory;
import ge.edu.freeuni.sdp.snake.view.ViewController;
import ge.edu.freeuni.sdp.snake.view.ViewFactory;
import ge.edu.freeuni.sdp.snake.view.swing.SwingViewFactory;
import java.awt.Dimension;
import java.util.List;
import javax.swing.JFrame;
public class SwingApp {
public static void main(String[] args) {
Size size = new Size(50, 30);
List<Level> levels = LevelRegistry.getLevels();
Configuration.init(size, levels);
JFrame frame = createFrame(size);
ViewFactory viewFactory = new SwingViewFactory(frame);
ViewController controller =
new ViewController(
viewFactory,
new PresenterFactory());
controller.run();
}
private static JFrame createFrame(Size size) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(
new Dimension(
size.getWidth() * 15,
size.getHeight() * 15));
frame.setResizable(false);
frame.setTitle("Snake Game");
return frame;
}
}