forked from IF-LK-2020/wordle
Anfang
This commit is contained in:
33
GUI.java
Normal file
33
GUI.java
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse GUI.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class GUI
|
||||||
|
{
|
||||||
|
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
|
||||||
|
private int x;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für Objekte der Klasse GUI
|
||||||
|
*/
|
||||||
|
public GUI()
|
||||||
|
{
|
||||||
|
// Instanzvariable initialisieren
|
||||||
|
x = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
|
||||||
|
*
|
||||||
|
* @param y ein Beispielparameter für eine Methode
|
||||||
|
* @return die Summe aus x und y
|
||||||
|
*/
|
||||||
|
public int beispielMethode(int y)
|
||||||
|
{
|
||||||
|
// tragen Sie hier den Code ein
|
||||||
|
return x + y;
|
||||||
|
}
|
||||||
|
}
|
||||||
38
Game.java
Normal file
38
Game.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse Game.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class Game
|
||||||
|
{
|
||||||
|
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
|
||||||
|
WordleServer wordleServer = new WordleServer();
|
||||||
|
User user = new User();
|
||||||
|
DatabaseConnector databaseConnector;//Datenbankverbindung aufstellen
|
||||||
|
private String wordle;
|
||||||
|
private String[] words;
|
||||||
|
private int Count;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für Objekte der Klasse Game
|
||||||
|
*/
|
||||||
|
public Game()
|
||||||
|
{
|
||||||
|
// Instanzvariable initialisieren
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
|
||||||
|
*
|
||||||
|
* @param y ein Beispielparameter für eine Methode
|
||||||
|
* @return die Summe aus x und y
|
||||||
|
*/
|
||||||
|
public int beispielMethode(int y)
|
||||||
|
{
|
||||||
|
// tragen Sie hier den Code ein
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
}
|
||||||
228
Queue.java
228
Queue.java
@@ -16,127 +16,127 @@
|
|||||||
* @version Generisch_02 2014-02-21
|
* @version Generisch_02 2014-02-21
|
||||||
*/
|
*/
|
||||||
public class Queue<ContentType> {
|
public class Queue<ContentType> {
|
||||||
|
|
||||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||||
|
|
||||||
private class QueueNode {
|
private class QueueNode {
|
||||||
|
|
||||||
private ContentType content = null;
|
private ContentType content = null;
|
||||||
private QueueNode nextNode = null;
|
private QueueNode nextNode = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||||
*
|
*
|
||||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||||
*/
|
*/
|
||||||
public QueueNode(ContentType pContent) {
|
public QueueNode(ContentType pContent) {
|
||||||
content = pContent;
|
content = pContent;
|
||||||
nextNode = null;
|
nextNode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||||
* gesetzt.
|
* gesetzt.
|
||||||
*
|
*
|
||||||
* @param pNext der Nachfolger des Knotens
|
* @param pNext der Nachfolger des Knotens
|
||||||
*/
|
*/
|
||||||
public void setNext(QueueNode pNext) {
|
public void setNext(QueueNode pNext) {
|
||||||
nextNode = pNext;
|
nextNode = pNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Liefert das naechste Element des aktuellen Knotens.
|
* Liefert das naechste Element des aktuellen Knotens.
|
||||||
*
|
*
|
||||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||||
*/
|
*/
|
||||||
public QueueNode getNext() {
|
public QueueNode getNext() {
|
||||||
return nextNode;
|
return nextNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||||
*
|
*
|
||||||
* @return das Inhaltsobjekt des Knotens
|
* @return das Inhaltsobjekt des Knotens
|
||||||
*/
|
*/
|
||||||
public ContentType getContent() {
|
public ContentType getContent() {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||||
|
|
||||||
private QueueNode head;
|
private QueueNode head;
|
||||||
private QueueNode tail;
|
private QueueNode tail;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Eine leere Schlange wird erzeugt.
|
* Eine leere Schlange wird erzeugt.
|
||||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||||
* ContentType sein.
|
* ContentType sein.
|
||||||
*/
|
*/
|
||||||
public Queue() {
|
public Queue() {
|
||||||
head = null;
|
head = null;
|
||||||
tail = null;
|
tail = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||||
* sonst liefert sie den Wert false.
|
* sonst liefert sie den Wert false.
|
||||||
*
|
*
|
||||||
* @return true, falls die Schlange leer ist, sonst false
|
* @return true, falls die Schlange leer ist, sonst false
|
||||||
*/
|
*/
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
return head == null;
|
return head == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||||
*
|
*
|
||||||
* @param pContent
|
* @param pContent
|
||||||
* das anzuhaengende Objekt vom Typ ContentType
|
* das anzuhaengende Objekt vom Typ ContentType
|
||||||
*/
|
*/
|
||||||
public void enqueue(ContentType pContent) {
|
public void enqueue(ContentType pContent) {
|
||||||
if (pContent != null) {
|
if (pContent != null) {
|
||||||
QueueNode newNode = new QueueNode(pContent);
|
QueueNode newNode = new QueueNode(pContent);
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
head = newNode;
|
head = newNode;
|
||||||
tail = newNode;
|
tail = newNode;
|
||||||
} else {
|
} else {
|
||||||
tail.setNext(newNode);
|
tail.setNext(newNode);
|
||||||
tail = newNode;
|
tail = newNode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das erste Objekt wird aus der Schlange entfernt.
|
* Das erste Objekt wird aus der Schlange entfernt.
|
||||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||||
*/
|
*/
|
||||||
public void dequeue() {
|
public void dequeue() {
|
||||||
if (!this.isEmpty()) {
|
if (!this.isEmpty()) {
|
||||||
head = head.getNext();
|
head = head.getNext();
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
head = null;
|
head = null;
|
||||||
tail = null;
|
tail = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||||
* Die Schlange bleibt unveraendert.
|
* Die Schlange bleibt unveraendert.
|
||||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||||
*
|
*
|
||||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||||
* falls die Schlange leer ist
|
* falls die Schlange leer ist
|
||||||
*/
|
*/
|
||||||
public ContentType front() {
|
public ContentType front() {
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return head.getContent();
|
return head.getContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
106
Server.java
106
Server.java
@@ -244,16 +244,16 @@ public abstract class Server
|
|||||||
|
|
||||||
public boolean isOpen()
|
public boolean isOpen()
|
||||||
{
|
{
|
||||||
return(connectionHandler.active);
|
return(connectionHandler.active);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isConnectedTo(String pClientIP, int pClientPort)
|
public boolean isConnectedTo(String pClientIP, int pClientPort)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
||||||
if (aMessageHandler != null)
|
if (aMessageHandler != null)
|
||||||
return(aMessageHandler.active);
|
return(aMessageHandler.active);
|
||||||
else
|
else
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send(String pClientIP, int pClientPort, String pMessage)
|
public void send(String pClientIP, int pClientPort, String pMessage)
|
||||||
@@ -265,15 +265,15 @@ public abstract class Server
|
|||||||
|
|
||||||
public void sendToAll(String pMessage)
|
public void sendToAll(String pMessage)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
messageHandlers.getContent().send(pMessage);
|
messageHandlers.getContent().send(pMessage);
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeConnection(String pClientIP, int pClientPort)
|
public void closeConnection(String pClientIP, int pClientPort)
|
||||||
@@ -294,15 +294,15 @@ public abstract class Server
|
|||||||
|
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler;
|
ClientMessageHandler aMessageHandler;
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
aMessageHandler = messageHandlers.getContent();
|
aMessageHandler = messageHandlers.getContent();
|
||||||
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
||||||
aMessageHandler.close();
|
aMessageHandler.close();
|
||||||
messageHandlers.remove();
|
messageHandlers.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -314,46 +314,46 @@ public abstract class Server
|
|||||||
|
|
||||||
private void addNewClientMessageHandler(Socket pClientSocket)
|
private void addNewClientMessageHandler(Socket pClientSocket)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeClientMessageHandler(ClientMessageHandler pClientMessageHandler)
|
private void removeClientMessageHandler(ClientMessageHandler pClientMessageHandler)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
if (pClientMessageHandler == messageHandlers.getContent())
|
if (pClientMessageHandler == messageHandlers.getContent())
|
||||||
{
|
{
|
||||||
messageHandlers.remove();
|
messageHandlers.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClientMessageHandler findClientMessageHandler(String pClientIP, int pClientPort)
|
private ClientMessageHandler findClientMessageHandler(String pClientIP, int pClientPort)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler;
|
ClientMessageHandler aMessageHandler;
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
|
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
aMessageHandler = messageHandlers.getContent();
|
aMessageHandler = messageHandlers.getContent();
|
||||||
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
||||||
return (aMessageHandler);
|
return (aMessageHandler);
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
return (null);
|
return (null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
67
User.java
Normal file
67
User.java
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
/**
|
||||||
|
* Beschreiben Sie hier die Klasse User.
|
||||||
|
*
|
||||||
|
* @author (Ihr Name)
|
||||||
|
* @version (eine Versionsnummer oder ein Datum)
|
||||||
|
*/
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
|
||||||
|
private String name;
|
||||||
|
private String password;
|
||||||
|
private int timesPlayed;
|
||||||
|
private int winPercentage;
|
||||||
|
private int currentStreak;
|
||||||
|
private int maxStreak;
|
||||||
|
private int[] winInTurn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für Objekte der Klasse User
|
||||||
|
*/
|
||||||
|
public User()
|
||||||
|
{
|
||||||
|
// Instanzvariable initialisieren
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
|
||||||
|
*
|
||||||
|
* @param y ein Beispielparameter für eine Methode
|
||||||
|
* @return die Summe aus x und y
|
||||||
|
*/
|
||||||
|
public void setPassword(String pW)
|
||||||
|
{
|
||||||
|
// tragen Sie hier den Code ein
|
||||||
|
password = pW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword()
|
||||||
|
{
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String pN)
|
||||||
|
{
|
||||||
|
// tragen Sie hier den Code ein
|
||||||
|
name = pN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String pN)
|
||||||
|
{
|
||||||
|
// tragen Sie hier den Code ein
|
||||||
|
name = pN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -4,14 +4,14 @@
|
|||||||
*/
|
*/
|
||||||
public class WordleServer extends Server {
|
public class WordleServer extends Server {
|
||||||
|
|
||||||
public static final int DEFAULT_PORT = 1000;
|
public static final int DEFAULT_PORT = 1000;
|
||||||
|
|
||||||
public static void main( String[] args ) {
|
public static void main( String[] args ) {
|
||||||
new WordleServer();
|
new WordleServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DatabaseConnector db;
|
private DatabaseConnector db;
|
||||||
|
|
||||||
|
|
||||||
public WordleServer() {
|
public WordleServer() {
|
||||||
@@ -26,17 +26,17 @@ public class WordleServer extends Server {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processNewConnection( String pClientIP, int pClientPort ) {
|
public void processNewConnection( String pClientIP, int pClientPort ) {
|
||||||
System.out.println("New connection: " + pClientPort);
|
System.out.println("New connection: " + pClientPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processClosingConnection( String pClientIP, int pClientPort ) {
|
public void processClosingConnection( String pClientIP, int pClientPort ) {
|
||||||
System.out.println("Closed connection: " + pClientPort);
|
System.out.println("Closed connection: " + pClientPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processMessage( String pClientIP, int pClientPort, String pMessage ) {
|
public void processMessage( String pClientIP, int pClientPort, String pMessage ) {
|
||||||
System.out.println("Message: " + pMessage);
|
System.out.println("Message: " + pMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
130
package.bluej
130
package.bluej
@@ -1,91 +1,109 @@
|
|||||||
#BlueJ package file
|
#BlueJ package file
|
||||||
dependency1.from=DecisionNode
|
dependency1.from=DatabaseConnector
|
||||||
dependency1.to=Dataset
|
dependency1.to=QueryResult
|
||||||
dependency1.type=UsesDependency
|
dependency1.type=UsesDependency
|
||||||
dependency2.from=Classification
|
dependency2.from=DatabaseConnector
|
||||||
dependency2.to=Dataset
|
dependency2.to=Queue
|
||||||
dependency2.type=UsesDependency
|
dependency2.type=UsesDependency
|
||||||
dependency3.from=Decision
|
dependency3.from=Server
|
||||||
dependency3.to=Dataset
|
dependency3.to=List
|
||||||
dependency3.type=UsesDependency
|
dependency3.type=UsesDependency
|
||||||
dependency4.from=DecisionTreeBuilder
|
dependency4.from=WordleServer
|
||||||
dependency4.to=BinaryTree
|
dependency4.to=DatabaseConnector
|
||||||
dependency4.type=UsesDependency
|
dependency4.type=UsesDependency
|
||||||
dependency5.from=DecisionTreeBuilder
|
dependency5.from=Game
|
||||||
dependency5.to=DecisionNode
|
dependency5.to=WordleServer
|
||||||
dependency5.type=UsesDependency
|
dependency5.type=UsesDependency
|
||||||
dependency6.from=DecisionTreeBuilder
|
dependency6.from=Game
|
||||||
dependency6.to=Classification
|
dependency6.to=User
|
||||||
dependency6.type=UsesDependency
|
dependency6.type=UsesDependency
|
||||||
dependency7.from=DecisionTreeBuilder
|
dependency7.from=Game
|
||||||
dependency7.to=Decision
|
dependency7.to=DatabaseConnector
|
||||||
dependency7.type=UsesDependency
|
dependency7.type=UsesDependency
|
||||||
dependency8.from=DecisionTreeBuilder
|
|
||||||
dependency8.to=Dataset
|
|
||||||
dependency8.type=UsesDependency
|
|
||||||
editor.fx.0.height=722
|
editor.fx.0.height=722
|
||||||
editor.fx.0.width=800
|
editor.fx.0.width=800
|
||||||
editor.fx.0.x=388
|
editor.fx.0.x=346
|
||||||
editor.fx.0.y=50
|
editor.fx.0.y=91
|
||||||
objectbench.height=66
|
objectbench.height=96
|
||||||
objectbench.width=1201
|
objectbench.width=1201
|
||||||
package.divider.horizontal=0.6
|
package.divider.horizontal=0.6
|
||||||
package.divider.vertical=0.8983286908077994
|
package.divider.vertical=0.8476331360946746
|
||||||
package.editor.height=622
|
package.editor.height=553
|
||||||
package.editor.width=1078
|
package.editor.width=1090
|
||||||
package.editor.x=39
|
package.editor.x=39
|
||||||
package.editor.y=24
|
package.editor.y=24
|
||||||
package.frame.height=776
|
package.frame.height=776
|
||||||
package.frame.width=1241
|
package.frame.width=1241
|
||||||
package.numDependencies=8
|
package.numDependencies=7
|
||||||
package.numTargets=6
|
package.numTargets=9
|
||||||
package.showExtends=true
|
package.showExtends=true
|
||||||
package.showUses=true
|
package.showUses=true
|
||||||
project.charset=UTF-8
|
project.charset=UTF-8
|
||||||
readme.height=58
|
readme.height=60
|
||||||
readme.name=@README
|
readme.name=@README
|
||||||
readme.width=47
|
readme.width=49
|
||||||
readme.x=10
|
readme.x=10
|
||||||
readme.y=10
|
readme.y=10
|
||||||
target1.height=40
|
target1.height=70
|
||||||
target1.name=Classification
|
target1.name=DatabaseConnector
|
||||||
target1.showInterface=false
|
target1.showInterface=false
|
||||||
target1.type=ClassTarget
|
target1.type=ClassTarget
|
||||||
target1.width=210
|
target1.width=150
|
||||||
target1.x=40
|
target1.x=370
|
||||||
target1.y=460
|
target1.y=20
|
||||||
target2.height=50
|
target2.height=70
|
||||||
target2.name=Decision
|
target2.name=QueryResult
|
||||||
target2.showInterface=false
|
target2.showInterface=false
|
||||||
target2.type=ClassTarget
|
target2.type=ClassTarget
|
||||||
target2.width=190
|
target2.width=120
|
||||||
target2.x=300
|
target2.x=110
|
||||||
target2.y=460
|
target2.y=80
|
||||||
target3.height=120
|
target3.height=70
|
||||||
target3.name=BinaryTree
|
target3.name=User
|
||||||
target3.showInterface=false
|
target3.showInterface=false
|
||||||
target3.type=ClassTarget
|
target3.type=ClassTarget
|
||||||
target3.width=440
|
target3.width=120
|
||||||
target3.x=890
|
target3.x=770
|
||||||
target3.y=250
|
target3.y=50
|
||||||
target4.height=40
|
target4.height=70
|
||||||
target4.name=Dataset
|
target4.name=Game
|
||||||
target4.showInterface=false
|
target4.showInterface=false
|
||||||
target4.type=ClassTarget
|
target4.type=ClassTarget
|
||||||
target4.width=270
|
target4.width=120
|
||||||
target4.x=430
|
target4.x=960
|
||||||
target4.y=30
|
target4.y=30
|
||||||
target5.height=50
|
target5.height=70
|
||||||
target5.name=DecisionNode
|
target5.name=Server
|
||||||
target5.showInterface=false
|
target5.showInterface=false
|
||||||
target5.type=AbstractTarget
|
target5.type=AbstractTarget
|
||||||
target5.width=110
|
target5.width=120
|
||||||
target5.x=210
|
target5.x=770
|
||||||
target5.y=290
|
target5.y=300
|
||||||
target6.height=60
|
target6.height=70
|
||||||
target6.name=DecisionTreeBuilder
|
target6.name=WordleServer
|
||||||
target6.showInterface=false
|
target6.showInterface=false
|
||||||
target6.type=ClassTarget
|
target6.type=ClassTarget
|
||||||
target6.width=270
|
target6.width=120
|
||||||
target6.x=580
|
target6.x=540
|
||||||
target6.y=230
|
target6.y=210
|
||||||
|
target7.height=70
|
||||||
|
target7.name=List
|
||||||
|
target7.showInterface=false
|
||||||
|
target7.type=ClassTarget
|
||||||
|
target7.width=140
|
||||||
|
target7.x=390
|
||||||
|
target7.y=380
|
||||||
|
target8.height=70
|
||||||
|
target8.name=GUI
|
||||||
|
target8.showInterface=false
|
||||||
|
target8.type=ClassTarget
|
||||||
|
target8.width=120
|
||||||
|
target8.x=630
|
||||||
|
target8.y=80
|
||||||
|
target9.height=60
|
||||||
|
target9.name=Queue
|
||||||
|
target9.showInterface=false
|
||||||
|
target9.type=ClassTarget
|
||||||
|
target9.width=120
|
||||||
|
target9.x=80
|
||||||
|
target9.y=380
|
||||||
|
|||||||
Reference in New Issue
Block a user