Compare commits

...

55 Commits

Author SHA1 Message Date
d707be3e4c Namen in die Kommentare 2022-02-10 13:16:28 +01:00
88b0ba5d05 Code Cleaning 2022-02-10 08:47:16 +01:00
4f2eeb5040 Gravitation & Velocity Jump Fix &
Pipe anpassen
2022-02-10 08:35:39 +01:00
a60eb17230 Gravitation & Velocity Jump Fix &
Pipe anpassen
2022-02-10 08:33:07 +01:00
0f2352e003 Gravitation & Velocity Jump Fix &
Pipe anpassen
2022-02-10 08:32:00 +01:00
e21b4c0f2d Gravitation & Velocity Jump Fix 2022-02-09 14:55:20 +01:00
d835ec3460 Unnötige Variable entfernt 2022-02-09 14:02:01 +01:00
635aef047a Kleine Bugfixes - Punkte werden beim Pause-Button ins Hauptmenü zurückgesetzt & ESC-Taste im Spiel fixen 2022-02-09 13:56:56 +01:00
f2f88c404d Zeilenlänge anpassen nach Coding-Guidelines 2022-02-08 11:09:45 +01:00
8f5a4e6a74 Kollision Decke/Boden 2022-02-08 11:03:52 +01:00
fcb650ffef Verbesserung einer Formatierungsfunktion 2022-02-07 15:01:37 +01:00
79db8a088a Highscores-Überschrift wird geändert 2022-02-07 11:24:04 +01:00
b37993d9a2 Labels für Hinweise zu Namens/Kürzelkonventionen eingefügt 2022-01-31 10:32:18 +01:00
1f0fedeaac Korrekturen am Neustart-Button, Hauptmenü-Button aus dem End-Screen, Fix der INSERT-Abfrage 2022-01-25 13:39:53 +01:00
43ba9226e2 Fix für den Restart-Button - mehrere Neustarts ergeben keine Fehler 2022-01-25 12:57:24 +01:00
3610c3fb7a End-Screen - anfang des Eingbindens des Spiel-Neustarts & Persönliche Highscores 2022-01-25 12:45:32 +01:00
98bcfec0fd Endscreen formatieren 2022-01-25 11:42:39 +01:00
af010b5bd8 Current Score Zähler einbauen 2022-01-25 10:58:35 +01:00
b5daf848c4 Movement über Keys einbauen (W/S) 2022-01-25 10:44:35 +01:00
46bf46f92c Kollisionsabfrage 2022-01-24 15:11:57 +01:00
5894de5567 Kollisionsabfrage 2022-01-24 15:07:01 +01:00
680a80d210 kliene Änderung 2022-01-24 13:40:52 +01:00
1cd92601e1 kleine Änderungen 2022-01-24 13:39:55 +01:00
241bd0f85b z-Order im Spielscreen 2022-01-24 12:00:13 +01:00
e818be6c17 WeiterspielenButton 2022-01-24 09:40:55 +01:00
8efcc29244 Röhrenbewegung 2022-01-23 20:44:01 +01:00
49e63e3d3b Pipes Bewegung 2022-01-22 19:36:59 +01:00
e2457886c8 Hinzufügen FormatingClass 2022-01-21 15:25:44 +01:00
a348fb03a5 Endscreen fertiggestellt, nur noch nicht eingebungen - Button-Clicks existieren 2022-01-18 14:22:01 +01:00
380d469010 Endscreen wahrscheinlich fertig - aber noch keine Einbindung 2022-01-18 13:56:06 +01:00
775085a1ab Anfänge des EndScreens - Methode für das Anzeigen der persönlichen Highscores 2022-01-18 12:06:36 +01:00
e494439b1c Kleine Bugfixes mit Labeltexten 2022-01-18 11:19:30 +01:00
c55f6866b8 aktueller Stand 2022-01-18 09:58:20 +01:00
0b45380f15 Überprüfungen Kürzel und Name - Abfragen im Code enthalten 2022-01-11 14:28:12 +01:00
ac3b2908f3 Überprüfungen Kürzel und Name 2022-01-11 14:15:38 +01:00
a9f80b6f6e Funktion fürs einfügen in die DB 2022-01-11 14:00:23 +01:00
057d3c3b50 Highscores einfügen & Score im Spiel 2022-01-11 13:43:27 +01:00
ac4ab16654 Highscores einfügen & Score im Spiel 2022-01-11 13:38:37 +01:00
1f544960ac Highscores einfügen & Score im Spiel 2022-01-11 13:37:15 +01:00
7f359cb01f Merge Hintergrund, Datenbank 2022-01-10 14:22:36 +01:00
4f9de09893 Hintergründe ändern 2022-01-10 14:18:28 +01:00
e2e726adfb Connection DB with Statement 2022-01-10 14:16:14 +01:00
db77cf584c Connection DB 2022-01-10 14:12:47 +01:00
03dcf9e8a3 Gradle-Bearbeitung 2022-01-10 14:10:25 +01:00
770e6916b5 SQL-Abfragen in txt-Datei 2022-01-10 13:08:18 +01:00
bdd1c68ab9 Aktuelle Version 2022-01-10 12:24:02 +01:00
c6bf25bb6f alt 2022-01-10 12:17:38 +01:00
6c7c27bc3f Alt 2022-01-10 12:16:50 +01:00
edf4ca2595 Aktuell 2022-01-10 12:11:39 +01:00
a8a66beb54 Datenbank 2022-01-10 12:06:50 +01:00
8507e0f681 Datenbank 2022-01-10 12:05:54 +01:00
be13801a60 Merge Pipes und Pause 2021-12-21 11:07:39 +01:00
d4ba26f435 Pipe Test 2021-12-21 11:00:47 +01:00
b06d323aeb DB-Klasse 2021-12-20 20:42:33 +01:00
76eb6214d1 Erster Code für die DB 2021-12-20 20:40:08 +01:00
48 changed files with 1067 additions and 433 deletions

View File

@@ -1 +0,0 @@
HappyBirdMain.java

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

View File

@@ -3,4 +3,9 @@
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="15" />
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="Happy_Bird.main" options="--add-exports java.base/jdk.internal.module=com.example.happy_bird" />
</option>
</component>
</project>

View File

@@ -16,5 +16,10 @@
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
</component>
</project>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@@ -0,0 +1,35 @@
-- --------------------------------------------------------
-- Host: 127.0.0.1
-- Server Version: 10.6.5-MariaDB - mariadb.org binary distribution
-- Server Betriebssystem: Win64
-- HeidiSQL Version: 11.3.0.6295
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- Exportiere Datenbank Struktur für happybird
CREATE DATABASE IF NOT EXISTS `happybird` /*!40100 DEFAULT CHARACTER SET utf8mb3 */;
USE `happybird`;
-- Exportiere Struktur von Tabelle happybird.happybirddb
CREATE TABLE IF NOT EXISTS `happybirddb` (
`spielid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) DEFAULT NULL,
`punkte` int(11) DEFAULT NULL,
`highscore` tinyint(1) DEFAULT NULL,
`kuerzel` varchar(10) DEFAULT NULL,
PRIMARY KEY (`spielid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3;
-- Daten Export vom Benutzer nicht ausgewählt
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;

View File

@@ -9,6 +9,7 @@ version '1.0-SNAPSHOT'
repositories {
mavenCentral()
jcenter()
}
ext {
@@ -36,6 +37,7 @@ dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
}
test {

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -1,20 +0,0 @@
import java.beans.Statement;
import java.sql.*;
public class MariaDB
{
public String username;
public String pw;
public String url;
public String driver;
Connection con;
Statement st;
public MariaDB()
{
try {
con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=HappyBird1");
} catch (SQLException e) {
e.printStackTrace();
}
}
}

View File

@@ -1,21 +0,0 @@
package com.example.happy_bird;
import java.awt.*;
import java.awt.image.ImageObserver;
public class Bird extends SpielObjekt {
public Bird(int xWert, int yWert) {
super(xWert, yWert);
}
@Override
public void tick() {
}
@Override
public void render(Graphics2D g, ImageObserver obs) {
}
}

View File

@@ -0,0 +1,239 @@
package com.example.happy_bird;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.scene.text.TextAlignment;
public class FormatingClass {
/***
* leerer Konstruktor
*/
public FormatingClass() { }
/*** Alteköster
* Formatiert alle Buttons und fügt sie der Pane hinzu
* @param buttons ButtonArray mit allen Arrays
* @param pane Pane, auf der die Buttons angezeigt werden
*/
public void buttonsFormating(Button[] buttons, Pane pane) {
for (Button button : buttons) {
button.setPrefSize(200, 50);
button.setStyle("-fx-background-color: #e86000; " +
"-fx-text-fill: #FFFFFF; " +
"-fx-font-size: 20px; " +
"-fx-border-width: 5px;" +
"-fx-border-color: #FFFFFF;" +
"-fx-font-weight: bold;" +
"-fx-border-radius: 15px;" +
"-fx-background-radius: 20px;");
pane.getChildren().add(button);
}
}
/*** Alteköster
* Formatiert alle kleinen Labels (keine Überschrift) und fügt sie der Pane hinzu
* @param labels LabelArray mit allen Labels
* @param pane Pane, auf der die Labels angezeigt werden
*/
public void labelsFormating(Label[] labels, Pane pane) {
for (Label label : labels) {
label.setPrefSize(250, 50);
label.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 20px; " +
"-fx-border-width: 5px;" +
"-fx-border-color: #543847;" +
"-fx-font-weight: bold;" +
"-fx-alignment: center;" +
"-fx-background-radius: 20px;" +
"-fx-border-radius: 15px;");
pane.getChildren().add(label);
label.setVisible(false);
}
}
/*** Alteköster
* Formatiert alle Überschriften-Labels und fügt sie der Pane hinzu
* @param labels LabelArray mit Überschriften-Labels
* @param pane Pane, auf der die Labels angezeigt werden
*/
public void headlineFormating(Label[] labels, Pane pane) {
for (Label label : labels) {
label.setPrefSize(300, 75);
label.setTextAlignment(TextAlignment.CENTER);
label.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 35px; " +
"-fx-border-width: 5px;" +
"-fx-border-color: #543847;" +
"-fx-font-weight: bold;" +
"-fx-alignment: center;" +
"-fx-background-radius: 20px;" +
"-fx-border-radius: 15px;");
pane.getChildren().add(label);
}
}
/*** Alteköster
* Formatiert alle Textfelder und fügt sie der Pane hinzu
* @param textfields TextFieldArray mit allen Textfeldern
* @param pane Pane, auf der die Textfelder angezeigt werden
*/
public void textfieldsFormating(TextField[] textfields, Pane pane) {
for (TextField field : textfields) {
field.setPrefSize(250, 50);
field.setStyle("-fx-font-size: 20px;" +
"-fx-font-weight: bold;");
pane.getChildren().add(field);
field.setVisible(false);
}
}
/*** Alteköster
* Formatiert den soundSlider und fügt ihn der Pane hinzu
* @param slider SoundSlider
* @param pane Pane, auf der der Slider angezeigt wird
*/
public void soundSliderFormating(Slider slider, Pane pane) {
slider.setPrefSize(200, 5);
slider.setLayoutX(300);
slider.setLayoutY(295);
pane.getChildren().add(slider);
slider.setVisible(false);
}
/*** Alteköster
* Formatiert den PauseScreen
*/
public void pauseScreenFormating(Pane pause, Label pauseMenuLabel, Label soundLabelPause) {
/*pause-Pane formatieren*/
pause.setPrefSize(400, 400);
pause.setLayoutX(200);
pause.setLayoutY(150);
pause.setStyle("-fx-background-color: #DED894; " +
"-fx-border-width: 5px;" +
"-fx-border-color: #543847;" +
"-fx-border-radius: 15px;" +
"-fx-background-radius: 20px;");
/*pauseMenuLabel formatieren*/
pauseMenuLabel.setPrefSize(300,50);
pauseMenuLabel.setLayoutX(50);
pauseMenuLabel.setLayoutY(10);
pauseMenuLabel.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 35px; " +
"-fx-font-weight: bold;" +
"-fx-alignment: center;");
/*soundLabelPause formatieren*/
soundLabelPause.setPrefSize(100, 50);
soundLabelPause.setLayoutX(150);
soundLabelPause.setLayoutY(100);
soundLabelPause.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 20px; " +
"-fx-font-weight: bold;" +
"-fx-alignment: center;");
}
/*** Pape
* formatiert den End-Screen
*/
public void endScreenFormating(Pane endScreen, Label endScreenHeadline, Label currentScoreEndscreenLabel) {
/*Endscreen-Pane formatieren*/
endScreen.setPrefSize(400, 500);
endScreen.setLayoutX(200);
endScreen.setLayoutY(100);
endScreen.setStyle("-fx-background-color: #DED894; " +
"-fx-border-width: 5px;" +
"-fx-border-color: #543847;" +
"-fx-border-radius: 15px;" +
"-fx-background-radius: 20px;");
endScreenHeadline.setPrefSize(300,50);
endScreenHeadline.setLayoutX(50);
endScreenHeadline.setLayoutY(10);
endScreenHeadline.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 35px; " +
"-fx-font-weight: bold;" +
"-fx-alignment: center;");
currentScoreEndscreenLabel.setPrefSize(300,50);
currentScoreEndscreenLabel.setLayoutX(50);
currentScoreEndscreenLabel.setLayoutY(100);
currentScoreEndscreenLabel.setStyle("-fx-background-color: #DED894; " +
"-fx-text-fill: #000000; " +
"-fx-font-size: 35px; " +
"-fx-font-weight: bold;" +
"-fx-alignment: center;");
}
/*** Alteköster
* Erstellt ein neues BackgroundImage aus einer Source für ein .png
* @param img Source eines .png
* @return backgroundImage
*/
public BackgroundImage backgroundFormating(String img) {
/*Bild für Hintergrund erstellen:*/
Image image = new Image(img);
/*Hintergrund erstellen:*/
BackgroundImage backgroundImage = new BackgroundImage(
image,
BackgroundRepeat.NO_REPEAT,
BackgroundRepeat.NO_REPEAT,
BackgroundPosition.DEFAULT,
BackgroundSize.DEFAULT
);
return backgroundImage;
}
/*** Alteköster
* Formatiert die Buttons, mit denen man das Hintergrundbild ändern kann
* @param backgroundButtons Array der Buttons
* @param pane Pane, auf der die Buttons angezeigt werden sollen
*/
public void backgroundButtonsFormating(Button[] backgroundButtons, Pane pane) {
int xPosition = 150;
for(int i=0; i<backgroundButtons.length; i++) {
backgroundButtons[i].setPrefSize(200, 175);
backgroundButtons[i].setLayoutY(400);
backgroundButtons[i].setLayoutX(xPosition);
xPosition += 300;
/*Source als String*/
String img = "file:src/main/resources/com/example/happy_bird/pics/Background"+i+"button.png";
/*Hintergrund zu Pane hinzufügen:*/
Background background = new Background(backgroundFormating(img));
backgroundButtons[i].setBackground(background);
backgroundButtons[i].setStyle("-fx-border-width: 7px;" +
"-fx-border-insets: -7;" +
"-fx-border-color: #FFFFFF;" +
"-fx-border-radius: 15px;");
pane.getChildren().add(backgroundButtons[i]);
}
}
}

View File

@@ -1,25 +0,0 @@
package com.example.happy_bird;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Slider;
import javafx.scene.image.*;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;
import java.awt.*;
import java.io.IOException;
public class GameScreen extends HappyBirdMain
{
}

View File

@@ -1,9 +0,0 @@
package com.example.happy_bird;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class HappyBird extends HappyBirdMain {
}

View File

@@ -1,23 +0,0 @@
package com.example.happy_bird;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}

View File

@@ -1,14 +0,0 @@
package com.example.happy_bird;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class HelloController {
@FXML
private Label welcomeText;
@FXML
protected void onHelloButtonClick() {
welcomeText.setText("Welcome to JavaFX Application!");
}
}

View File

@@ -0,0 +1,48 @@
package com.example.happy_bird;
/** Pape */
import java.sql.*;
public class MariaDB
{
public String username;
public String pw;
public String url;
public String driver;
Connection con;
Statement st;
public MariaDB()
{
username="root";
pw="HappyBird1";
url="jdbc:mariadb://localhost:3306/happybird";
driver="org.mariadb.jdbc.Driver";
try {
Class.forName(driver);
con=DriverManager.getConnection(url, username, pw);
st=con.createStatement();
System.out.println("Connection is successful");
} catch (Exception e) {
System.out.println("Fehler in der Verbindung");
e.printStackTrace();
}
/*
try
{
con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/happybird?user=root&password=HappyBird1");
st= (Statement) con.createStatement();
driver="org.mariadb.jdbc.Driver";
System.out.println("Connection is successful");
}
catch (Exception e)
{
System.out.println("Fehler in der Verbindung");
e.printStackTrace();
}
*/
}
}

View File

@@ -1,80 +0,0 @@
package com.example.happy_bird;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.ImageObserver;
public abstract class SpielObjekt {
private int xWert;
private int yWert;
private int fxWert;
private int fyWert;
private int breite;
private int hoehe;
private Image bild;
public SpielObjekt(int xWert, int yWert) {
this.xWert = xWert;
this.yWert = yWert;
}
public int getyWert() {
return yWert;
}
public void setyWert(int yWert) {
this.yWert = yWert;
}
public int getxWert() {
return xWert;
}
public void setxWert(int xWert) {
this.xWert = xWert;
}
public int getFxWert() {
return fxWert;
}
public void setFxWert(int fxWert) {
this.fxWert = fxWert;
}
public int getFyWert() {
return fyWert;
}
public void setFyWert(int fyWert) {
this.fyWert = fyWert;
}
public int getBreite() {
return breite;
}
public void setBreite(int breite) {
this.breite = breite;
}
public int getHoehe() {
return hoehe;
}
public void setHoehe(int hoehe) {
this.hoehe = hoehe;
}
public Image getBild() {
return bild;
}
public void setBild(Image bild) {
this.bild = bild;
}
public abstract void tick();
public abstract void render(Graphics2D g, ImageObserver obs);
}

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Button?>
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
fx:controller="com.example.happy_bird.HelloController">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
</padding>
<Label fx:id="welcomeText"/>
<Button text="Hello!" onAction="#onHelloButtonClick"/>
</VBox>

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

14
SQL-Queries.txt Normal file
View File

@@ -0,0 +1,14 @@
SQL-Abfragen:
Highscores:
SELECT * FROM happybirddb ORDER BY punkte DESC LIMIT 5;
Dann Ausgabe auf dem Bildschirm
Einfügen in die DB:
INSERT INTO HappyBirdDB (name, kuerzel, punkte) VALUES ('playername', 'playerkuerzel', points);
//playername, playerkuerzel, points sind Variablen
Maximale Punkte des Spielers:
SELECT MAX(punkte) FROM happybirddb WHERE kuerzel = 'playerkuerzel';