Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 3fe0bb72da | ||
|   | f7fbc8b3e4 | ||
|   | daf55abd93 | 
| @@ -2,7 +2,7 @@ | ||||
| My advanced Hello World program is a version of the old game Snake. | ||||
|  | ||||
| ## Features | ||||
| - normal playing experience of Snake | ||||
| - normal playing experience of Snake but hardware-accelerated | ||||
| - 5 different fruits that can be eaten to enlarge the Snake | ||||
| - theoretically Start- and Endscreen, currently mostly unused | ||||
| - theoretically visual display whether a result is good or bad, commented out for now as it does not appear to work as expected | ||||
| @@ -23,4 +23,4 @@ My advanced Hello World program is a version of the old game Snake. | ||||
|   - as the name suggests, defines the visual appearance before and after games  | ||||
|    | ||||
| ## JAR of the final version | ||||
| If you follow <a href="https://github.com/delvh/Snake/releases">**this link**</a> and click on release "Snake - almost finished", you can download the runnable JAR of how the completed project should look like. Unfortunately due to poor Version-Control-skills, the original code got lost and had to be rewritten, however it should resemble the executed code closely | ||||
| If you follow <a href="https://github.com/delvh/Snake/releases">**this link**</a> and click on release "Snake - Rattlesnake version", you can download the runnable JAR of how the project currently looks like. | ||||
|   | ||||
| @@ -28,7 +28,7 @@ public class Snake implements Updateable { | ||||
| 	 * @author Leon Hofmeister | ||||
| 	 * @since Snake 1.0 | ||||
| 	 */ | ||||
| 	public static enum Direction { | ||||
| 	public enum Direction { | ||||
| 		/** | ||||
| 		 * Use if the snake should head left. | ||||
| 		 */ | ||||
| @@ -50,10 +50,10 @@ public class Snake implements Updateable { | ||||
| 		DOWN; | ||||
| 	} | ||||
|  | ||||
| 	private static Endscreen endscreen; | ||||
| 	private Direction direction = Direction.RIGHT; | ||||
| 	private int length; | ||||
| 	private List<Rectangle> tiles = new ArrayList<>(); | ||||
| 	private static Endscreen		endscreen; | ||||
| 	private Direction				direction	= Direction.RIGHT; | ||||
| 	private int						length; | ||||
| 	private final List<Rectangle>	tiles		= new ArrayList<>(); | ||||
|  | ||||
| 	private static final int TILE_SIZE = 10; | ||||
|  | ||||
| @@ -78,7 +78,7 @@ public class Snake implements Updateable { | ||||
| 	 * @since Snake 1.0 | ||||
| 	 */ | ||||
| 	public void addLength(int additional) { | ||||
| 		Rectangle last = tiles.get(tiles.size() - 1); | ||||
| 		final Rectangle last = tiles.get(tiles.size() - 1); | ||||
| 		for (int i = 0; i < additional; i++) | ||||
| 			tiles.add(last); | ||||
| 		length += additional; | ||||
| @@ -96,9 +96,9 @@ public class Snake implements Updateable { | ||||
| 	 * @since Snake 1.1 | ||||
| 	 */ | ||||
| 	private void gameOver() { | ||||
| 		Main.getGame().close(); | ||||
| 		endscreen = new Endscreen(length); | ||||
| 		endscreen.setVisible(true); | ||||
| 		Main.getGame().close(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.lh.ui; | ||||
|  | ||||
| import java.awt.*; | ||||
| import java.awt.BorderLayout; | ||||
| import java.awt.Font; | ||||
| import java.awt.event.KeyEvent; | ||||
|  | ||||
| import javax.swing.*; | ||||
| @@ -20,9 +21,9 @@ public class Endscreen extends JDialog { | ||||
|  | ||||
| 	private static final long serialVersionUID = -4457484397259161063L; | ||||
|  | ||||
| 	private static final int goodOrBadResult = 200; | ||||
| 	private final JPanel contentPanel = new JPanel(); | ||||
| 	private final int score; | ||||
| 	// private static final int goodOrBadResult = 200; | ||||
| 	private final JPanel	contentPanel	= new JPanel(); | ||||
| 	private final int		score; | ||||
|  | ||||
| 	/** | ||||
| 	 * Create the dialog. | ||||
| @@ -49,9 +50,10 @@ public class Endscreen extends JDialog { | ||||
| 		lblDeinPunktestand.setFont(new Font("Times New Roman", Font.PLAIN, 25)); | ||||
| 		contentPanel.add(lblDeinPunktestand, BorderLayout.NORTH); | ||||
|  | ||||
| 		final Image resultImage = Toolkit.getDefaultToolkit() | ||||
| 			.getImage(this.getClass().getResource(score < goodOrBadResult ? "/Try_Again.jpg" : "/1211548-200.png")); | ||||
| 		resultImage.flush(); | ||||
| 		// final Image resultImage = Toolkit.getDefaultToolkit() | ||||
| 		// .getImage(this.getClass().getResource(score < goodOrBadResult ? | ||||
| 		// "/Try_Again.jpg" : "/1211548-200.png")); | ||||
| 		// resultImage.flush(); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
|   | ||||
| @@ -4,9 +4,7 @@ import java.awt.EventQueue; | ||||
| import java.awt.Font; | ||||
| import java.awt.event.KeyEvent; | ||||
|  | ||||
| import javax.swing.JButton; | ||||
| import javax.swing.JFrame; | ||||
| import javax.swing.JPanel; | ||||
| import javax.swing.*; | ||||
| import javax.swing.border.EmptyBorder; | ||||
|  | ||||
| import dev.lh.Main; | ||||
| @@ -26,9 +24,7 @@ public class StartScreen extends JFrame { | ||||
| 	/** | ||||
| 	 * Closes the application. | ||||
| 	 */ | ||||
| 	public static void close() { | ||||
| 		System.exit(0); | ||||
| 	} | ||||
| 	public static void close() { System.exit(0); } | ||||
|  | ||||
| 	/** | ||||
| 	 * Launches Snake. | ||||
| @@ -36,25 +32,22 @@ public class StartScreen extends JFrame { | ||||
| 	 * @param args the program arguments | ||||
| 	 * @since Snake 1.0 | ||||
| 	 */ | ||||
| 	public static void main(String[] args) { | ||||
| 		EventQueue.invokeLater(StartScreen::new); | ||||
| 	} | ||||
| 	public static void main(String[] args) { EventQueue.invokeLater(StartScreen::new); } | ||||
|  | ||||
| 	/** | ||||
| 	 * Create the frame. | ||||
| 	 */ | ||||
| 	public StartScreen() { | ||||
| 		setTitle("Snake - Startscreen"); | ||||
| 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||||
| 		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); | ||||
| 		setBounds(500, 200, 550, 550); | ||||
|  | ||||
| 		JPanel contentPane = new JPanel(); | ||||
| 		final JPanel contentPane = new JPanel(); | ||||
| 		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); | ||||
| 		setContentPane(contentPane); | ||||
|  | ||||
| 		JButton buPlay = new JButton("Start Game"); | ||||
| 		final JButton buPlay = new JButton("Start Game"); | ||||
| 		buPlay.setBounds(158, 197, 190, 131); | ||||
| 		buPlay.setText("Play Again"); | ||||
| 		buPlay.setMnemonic(KeyEvent.VK_ENTER); | ||||
| 		buPlay.setFont(new Font("Times New Roman", Font.PLAIN, 16)); | ||||
| 		buPlay.addActionListener(a -> { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user