Merge pull request #23 from ProjectGroepA2/feature/sorting
Feature/sorting
This commit is contained in:
@@ -165,4 +165,15 @@ public class Song implements Comparable<Song>{
|
||||
}
|
||||
return timesPlayed;
|
||||
}
|
||||
|
||||
public int getHighestScore()
|
||||
{
|
||||
int highest = 0;
|
||||
for(SongInstance s : songs)
|
||||
{
|
||||
if(s.getHighestScore() > highest)
|
||||
highest = s.getHighestScore();
|
||||
}
|
||||
return highest;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ public class SongInstance {
|
||||
|
||||
private String difficulty;
|
||||
private int timesPlayed;
|
||||
private int highestScore;
|
||||
|
||||
private List<ObjectInstance> objects;
|
||||
private List<ButtonInstance> buttons;
|
||||
@@ -15,6 +16,7 @@ public class SongInstance {
|
||||
{
|
||||
this.difficulty = difficulty;
|
||||
this.timesPlayed = 0;
|
||||
this.highestScore = 0;
|
||||
|
||||
objects = new ArrayList<ObjectInstance>();
|
||||
buttons = new ArrayList<ButtonInstance>();
|
||||
@@ -94,6 +96,14 @@ public class SongInstance {
|
||||
this.timesPlayed = timesPlayed;
|
||||
}
|
||||
|
||||
public int getHighestScore() {
|
||||
return highestScore;
|
||||
}
|
||||
|
||||
public void setHighestScore(int highestScore) {
|
||||
this.highestScore = highestScore;
|
||||
}
|
||||
|
||||
public void played()
|
||||
{
|
||||
timesPlayed++;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package audio.sorting;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import audio.Song;
|
||||
|
||||
public class SortAUTHOR implements Comparator<Song> {
|
||||
|
||||
@Override
|
||||
public int compare(Song s1, Song s2) {
|
||||
return s1.getAuthor().compareTo(s2.getAuthor());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package audio.sorting;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import audio.Song;
|
||||
|
||||
public class SortSCORE implements Comparator<Song> {
|
||||
|
||||
public int compare(Song s1, Song s2) {
|
||||
if(s1.getHighestScore() < s2.getHighestScore())
|
||||
return 1;
|
||||
else if(s1.getHighestScore() > s2.getHighestScore())
|
||||
return -1;
|
||||
else
|
||||
return s1.getTitle().compareTo(s2.getTitle());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -191,6 +191,18 @@ public class SQLConnector
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Statement st4 = executeResultQuery("SELECT MAX(`score`) as score FROM `highscore` WHERE `songinstance`=(SELECT id FROM songinstance WHERE song=" + id + " AND difficulty='" + si.getDifficulty() + "')");
|
||||
try {
|
||||
ResultSet rs4 = st4.getResultSet();
|
||||
if(rs4.next())
|
||||
{
|
||||
int i = rs4.getInt(1);
|
||||
si.setHighestScore(i);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -24,7 +24,9 @@ import model.objects.highscore.Highscore;
|
||||
import audio.Song;
|
||||
import audio.SongInstance;
|
||||
import audio.sorting.SortALPHA;
|
||||
import audio.sorting.SortAUTHOR;
|
||||
import audio.sorting.SortPLAYED;
|
||||
import audio.sorting.SortSCORE;
|
||||
import control.GameStateManager;
|
||||
import control.GameStateManager.State;
|
||||
import control.button.ButtonEvent;
|
||||
@@ -102,9 +104,12 @@ public class MenuState extends GameState {
|
||||
else
|
||||
{
|
||||
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
||||
ButtonHandler.getButton(2).setColor(GameModel.colors[3]);
|
||||
|
||||
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
|
||||
ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
|
||||
ButtonHandler.getButton(3).setColor(GameModel.colors[1]);
|
||||
ButtonHandler.getButton(4).setColor(GameModel.colors[2]);
|
||||
ButtonHandler.getButton(5).setColor(GameModel.colors[4]);
|
||||
ButtonHandler.getButton(6).setColor(GameModel.colors[5]);
|
||||
JoystickHandler.REPEAT = true;
|
||||
}
|
||||
|
||||
@@ -187,19 +192,25 @@ public class MenuState extends GameState {
|
||||
subscreen = true;
|
||||
gsm.init();
|
||||
generateSubScreenForeground();
|
||||
}else if(e.getButton().getButtonID() == 5){
|
||||
sh.sort(new SortALPHA());
|
||||
selected = 0;
|
||||
sh.set(songs.indexOf(selectedToSong(selected)));
|
||||
sh.play();
|
||||
}else if(e.getButton().getButtonID() == 6){
|
||||
sh.sort(new SortPLAYED());
|
||||
selected = 0;
|
||||
sh.set(songs.indexOf(selectedToSong(selected)));
|
||||
sh.play();
|
||||
}else if(e.getButton().getButtonID() == 3){
|
||||
}else if(e.getButton().getButtonID() == 2){
|
||||
gsm.setState(control.GameStateManager.State.HELP_STATE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(e.getButton().getButtonID() == 3){
|
||||
sh.sort(new SortALPHA());
|
||||
}else if(e.getButton().getButtonID() == 4){
|
||||
sh.sort(new SortAUTHOR());
|
||||
}else if(e.getButton().getButtonID() == 5){
|
||||
sh.sort(new SortPLAYED());
|
||||
}else if(e.getButton().getButtonID() == 6){
|
||||
sh.sort(new SortSCORE());
|
||||
}
|
||||
|
||||
selected = 0;
|
||||
sh.set(songs.indexOf(selectedToSong(selected)));
|
||||
sh.play();
|
||||
}
|
||||
}
|
||||
|
||||
if(e.getButton().getButtonID() == 0)
|
||||
@@ -334,23 +345,34 @@ public class MenuState extends GameState {
|
||||
|
||||
//select
|
||||
g2.setColor(GameModel.colors[0]);
|
||||
g2.fillOval(20, 860, 30, 30);
|
||||
g2.drawString("Play", 55, 880);
|
||||
g2.fillOval(20, 780, 30, 30);
|
||||
g2.drawString("Play", 55, 800);
|
||||
|
||||
//help
|
||||
g2.setColor(GameModel.colors[3]);
|
||||
g2.fillOval(20, 900, 30, 30);
|
||||
g2.drawString("Help", 55, 920);
|
||||
g2.fillOval(20, 820, 30, 30);
|
||||
g2.drawString("Help", 55, 840);
|
||||
|
||||
//letters
|
||||
g2.setColor(GameModel.colors[1]);
|
||||
g2.fillOval(20, 940, 30, 30);
|
||||
g2.drawString("A-Z", 55, 960);
|
||||
g2.fillOval(20, 860, 30, 30);
|
||||
g2.drawString("A-Z", 55, 880);
|
||||
|
||||
//most played
|
||||
g2.setColor(GameModel.colors[2]);
|
||||
g2.fillOval(20, 900, 30, 30);
|
||||
g2.drawString("Author", 55, 920);
|
||||
|
||||
//most played
|
||||
g2.setColor(GameModel.colors[4]);
|
||||
g2.fillOval(20, 940, 30, 30);
|
||||
g2.drawString("Most Played", 55, 960);
|
||||
|
||||
//most played
|
||||
g2.setColor(GameModel.colors[5]);
|
||||
g2.fillOval(20, 980, 30, 30);
|
||||
g2.drawString("Most Played", 55, 1000);
|
||||
g2.drawString("Highest Score", 55, 1000);
|
||||
|
||||
g2.dispose();
|
||||
|
||||
mainScreenBackground.createGraphics();
|
||||
|
||||
@@ -76,11 +76,6 @@ public class PlayState extends GameState {
|
||||
{
|
||||
p.getEnemysInPath().clear();
|
||||
}
|
||||
|
||||
for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
|
||||
Button b = ButtonHandler.getButton(i);
|
||||
b.setColor(Color.BLACK);
|
||||
}
|
||||
|
||||
ButtonHandler.getButton(1).setColor(sh.getCurrentSongInstance().getButtons().get(0).getColor());
|
||||
|
||||
@@ -160,7 +155,7 @@ public class PlayState extends GameState {
|
||||
}
|
||||
|
||||
private void endGame() {
|
||||
if(sh.getProgress()/1000 < 5000)
|
||||
if(sh.getProgress()/1000 > 5000)
|
||||
{
|
||||
sql.addPlaydata(sh.getCurrentSong(), sh.getCurrentSongInstance(), sh.getProgress()/1000, enemies_missed, enemies_hit, buttons_pressed, joystick_moved);
|
||||
sh.getCurrentSongInstance().played();
|
||||
|
||||
Reference in New Issue
Block a user