Remove some try statements and switches

This commit is contained in:
Kai S. K. Engelbart 2020-07-01 16:01:37 +02:00
parent a0b0c09e1d
commit 5651ea76b0
No known key found for this signature in database
GPG Key ID: 0A48559CA32CB48F
4 changed files with 92 additions and 100 deletions

View File

@ -1,5 +1,7 @@
package dev.lh; package dev.lh;
import static java.awt.Color.*;
import java.awt.*; import java.awt.*;
import java.util.Random; import java.util.Random;
@ -27,30 +29,56 @@ public class FoodFactory {
* @since Snake 1.0 * @since Snake 1.0
*/ */
public static enum Food { public static enum Food {
/** /**
* Use if white food is wanted. * Use if white food is wanted.
*/ */
white, white(
WHITE, 40
),
/** /**
* Use if yellow food is wanted. * Use if yellow food is wanted.
*/ */
yellow, yellow(
YELLOW, 15
),
/** /**
* Use if orange food is wanted. * Use if orange food is wanted.
*/ */
orange, orange(
ORANGE, 6
),
/** /**
* Use if red food is wanted. * Use if red food is wanted.
*/ */
red, red(
RED, 2
),
/** /**
* Use if blue food is wanted. * Use if blue food is wanted.
*/ */
blue blue(
BLUE, 1
);
/**
* The color of the food item.
*/
public final Color color;
/**
* The length bonus of the food item.
*/
public final int lengthBonus;
private Food(Color color, int lengthBonus) {
this.color = color;
this.lengthBonus = lengthBonus;
}
} }
private static FoodFactory foodFactory = new FoodFactory(); private static FoodFactory foodFactory = new FoodFactory();
@ -142,23 +170,7 @@ public class FoodFactory {
* @since Snake 1.0 * @since Snake 1.0
*/ */
public void colorOfFood(Graphics g) { public void colorOfFood(Graphics g) {
switch (nextFood) { g.setColor(nextFood.color);
case white:
g.setColor(Color.white);
break;
case yellow:
g.setColor(Color.yellow);
break;
case orange:
g.setColor(Color.orange);
break;
case red:
g.setColor(Color.red);
break;
case blue:
g.setColor(Color.blue);
break;
}
} }
/** /**
@ -172,7 +184,7 @@ public class FoodFactory {
/** /**
* @param snakeHead the the head of a {@link Snake} object * @param snakeHead the the head of a {@link Snake} object
* @return true if the current food intersects with the snakehead * @return true if the current food intersects with the snake head
* @since Snake 1.0 * @since Snake 1.0
*/ */
public boolean checkCollision(Rectangle snakeHead) { public boolean checkCollision(Rectangle snakeHead) {
@ -186,24 +198,6 @@ public class FoodFactory {
* @since Snake 1.0 * @since Snake 1.0
*/ */
public int getAdditionalLength() { public int getAdditionalLength() {
int snakeAdditionalLength = 0; return nextFood.lengthBonus;
switch (nextFood) {
case white:
snakeAdditionalLength = 40;
break;
case yellow:
snakeAdditionalLength = 15;
break;
case orange:
snakeAdditionalLength = 6;
break;
case red:
snakeAdditionalLength = 2;
break;
case blue:
snakeAdditionalLength = 1;
break;
}
return snakeAdditionalLength;
} }
} }

View File

@ -3,8 +3,8 @@ package dev.lh;
import java.awt.Graphics; import java.awt.Graphics;
/** /**
* This interface contains everything that needs to updated regularly.<br> * This interface contains everything that needs to be updated regularly.
* <br> * <p>
* Project: <strong>Snake</strong><br> * Project: <strong>Snake</strong><br>
* File: <strong>Updateable.java</strong><br> * File: <strong>Updateable.java</strong><br>
* Created: <strong>11 Mar 2020</strong><br> * Created: <strong>11 Mar 2020</strong><br>

View File

@ -31,8 +31,6 @@ public class Endscreen extends JDialog {
*/ */
public Endscreen(int score) { public Endscreen(int score) {
this.score = score; this.score = score;
try {
setTitle("Endscreen"); setTitle("Endscreen");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setBounds(100, 100, 700, 700); setBounds(100, 100, 700, 700);
@ -43,7 +41,10 @@ public class Endscreen extends JDialog {
JButton btnNewButton = new JButton("Play again"); JButton btnNewButton = new JButton("Play again");
btnNewButton.setMnemonic(KeyEvent.VK_ENTER); btnNewButton.setMnemonic(KeyEvent.VK_ENTER);
btnNewButton.addActionListener(e -> { Main.startGame(); dispose(); }); btnNewButton.addActionListener(e -> {
Main.startGame();
dispose();
});
btnNewButton.setFont(new Font("Times New Roman", Font.PLAIN, 15)); btnNewButton.setFont(new Font("Times New Roman", Font.PLAIN, 15));
contentPanel.add(btnNewButton, BorderLayout.SOUTH); contentPanel.add(btnNewButton, BorderLayout.SOUTH);
@ -52,11 +53,11 @@ public class Endscreen extends JDialog {
contentPanel.add(lblDeinPunktestand, BorderLayout.NORTH); contentPanel.add(lblDeinPunktestand, BorderLayout.NORTH);
Image resultImage = Toolkit.getDefaultToolkit() Image resultImage = Toolkit.getDefaultToolkit()
.getImage(this.getClass().getResource((score < goodOrBadResult) ? "/Try_Again.jpg" : "/1211548-200.png")); .getImage(
this.getClass()
.getResource((score < goodOrBadResult) ? "/Try_Again.jpg" : "/1211548-200.png")
);
resultImage.flush(); resultImage.flush();
} catch (Exception e) {
e.printStackTrace();
}
} }
/** /**

View File

@ -22,12 +22,13 @@ import dev.lh.Main;
public class StartScreen extends JFrame { public class StartScreen extends JFrame {
private static final long serialVersionUID = 6055940532003735543L; private static final long serialVersionUID = 6055940532003735543L;
private JPanel contentPane;
/** /**
* Closes the application. * Closes the application.
*/ */
public static void close() { System.exit(0); } public static void close() {
System.exit(0);
}
/** /**
* Launches Snake. * Launches Snake.
@ -43,12 +44,11 @@ public class StartScreen extends JFrame {
* Create the frame. * Create the frame.
*/ */
public StartScreen() { public StartScreen() {
try {
// readInHighscores();
setTitle("Snake - Startscreen"); setTitle("Snake - Startscreen");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 550, 550); setBounds(500, 200, 550, 550);
contentPane = new JPanel();
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane); setContentPane(contentPane);
@ -66,8 +66,5 @@ public class StartScreen extends JFrame {
contentPane.add(buPlay); contentPane.add(buPlay);
contentPane.setLayout(null); contentPane.setLayout(null);
setVisible(true); setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} }
} }