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
|
||||
*/
|
||||
public class Queue<ContentType> {
|
||||
|
||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||
|
||||
private class QueueNode {
|
||||
|
||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||
|
||||
private class QueueNode {
|
||||
|
||||
private ContentType content = null;
|
||||
private QueueNode nextNode = null;
|
||||
private ContentType content = null;
|
||||
private QueueNode nextNode = null;
|
||||
|
||||
/**
|
||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||
*
|
||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||
*/
|
||||
public QueueNode(ContentType pContent) {
|
||||
content = pContent;
|
||||
nextNode = null;
|
||||
}
|
||||
/**
|
||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||
*
|
||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||
*/
|
||||
public QueueNode(ContentType pContent) {
|
||||
content = pContent;
|
||||
nextNode = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||
* gesetzt.
|
||||
*
|
||||
* @param pNext der Nachfolger des Knotens
|
||||
*/
|
||||
public void setNext(QueueNode pNext) {
|
||||
nextNode = pNext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das naechste Element des aktuellen Knotens.
|
||||
*
|
||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||
*/
|
||||
public QueueNode getNext() {
|
||||
return nextNode;
|
||||
}
|
||||
/**
|
||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||
* gesetzt.
|
||||
*
|
||||
* @param pNext der Nachfolger des Knotens
|
||||
*/
|
||||
public void setNext(QueueNode pNext) {
|
||||
nextNode = pNext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das naechste Element des aktuellen Knotens.
|
||||
*
|
||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||
*/
|
||||
public QueueNode getNext() {
|
||||
return nextNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||
*
|
||||
* @return das Inhaltsobjekt des Knotens
|
||||
*/
|
||||
public ContentType getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||
|
||||
private QueueNode head;
|
||||
private QueueNode tail;
|
||||
/**
|
||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||
*
|
||||
* @return das Inhaltsobjekt des Knotens
|
||||
*/
|
||||
public ContentType getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||
|
||||
private QueueNode head;
|
||||
private QueueNode tail;
|
||||
|
||||
/**
|
||||
* Eine leere Schlange wird erzeugt.
|
||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||
* ContentType sein.
|
||||
*/
|
||||
public Queue() {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
/**
|
||||
* Eine leere Schlange wird erzeugt.
|
||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||
* ContentType sein.
|
||||
*/
|
||||
public Queue() {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||
* sonst liefert sie den Wert false.
|
||||
*
|
||||
* @return true, falls die Schlange leer ist, sonst false
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return head == null;
|
||||
}
|
||||
/**
|
||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||
* sonst liefert sie den Wert false.
|
||||
*
|
||||
* @return true, falls die Schlange leer ist, sonst false
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return head == null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||
*
|
||||
* @param pContent
|
||||
* das anzuhaengende Objekt vom Typ ContentType
|
||||
*/
|
||||
public void enqueue(ContentType pContent) {
|
||||
if (pContent != null) {
|
||||
QueueNode newNode = new QueueNode(pContent);
|
||||
if (this.isEmpty()) {
|
||||
head = newNode;
|
||||
tail = newNode;
|
||||
} else {
|
||||
tail.setNext(newNode);
|
||||
tail = newNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||
*
|
||||
* @param pContent
|
||||
* das anzuhaengende Objekt vom Typ ContentType
|
||||
*/
|
||||
public void enqueue(ContentType pContent) {
|
||||
if (pContent != null) {
|
||||
QueueNode newNode = new QueueNode(pContent);
|
||||
if (this.isEmpty()) {
|
||||
head = newNode;
|
||||
tail = newNode;
|
||||
} else {
|
||||
tail.setNext(newNode);
|
||||
tail = newNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Das erste Objekt wird aus der Schlange entfernt.
|
||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||
*/
|
||||
public void dequeue() {
|
||||
if (!this.isEmpty()) {
|
||||
head = head.getNext();
|
||||
if (this.isEmpty()) {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Das erste Objekt wird aus der Schlange entfernt.
|
||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||
*/
|
||||
public void dequeue() {
|
||||
if (!this.isEmpty()) {
|
||||
head = head.getNext();
|
||||
if (this.isEmpty()) {
|
||||
head = null;
|
||||
tail = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||
* Die Schlange bleibt unveraendert.
|
||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||
*
|
||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||
* falls die Schlange leer ist
|
||||
*/
|
||||
public ContentType front() {
|
||||
if (this.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
return head.getContent();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||
* Die Schlange bleibt unveraendert.
|
||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||
*
|
||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||
* falls die Schlange leer ist
|
||||
*/
|
||||
public ContentType front() {
|
||||
if (this.isEmpty()) {
|
||||
return null;
|
||||
} else {
|
||||
return head.getContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
106
Server.java
106
Server.java
@@ -244,16 +244,16 @@ public abstract class Server
|
||||
|
||||
public boolean isOpen()
|
||||
{
|
||||
return(connectionHandler.active);
|
||||
return(connectionHandler.active);
|
||||
}
|
||||
|
||||
public boolean isConnectedTo(String pClientIP, int pClientPort)
|
||||
{
|
||||
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
||||
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
||||
if (aMessageHandler != null)
|
||||
return(aMessageHandler.active);
|
||||
return(aMessageHandler.active);
|
||||
else
|
||||
return(false);
|
||||
return(false);
|
||||
}
|
||||
|
||||
public void send(String pClientIP, int pClientPort, String pMessage)
|
||||
@@ -265,15 +265,15 @@ public abstract class Server
|
||||
|
||||
public void sendToAll(String pMessage)
|
||||
{
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
messageHandlers.getContent().send(pMessage);
|
||||
messageHandlers.next();
|
||||
}
|
||||
}
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
messageHandlers.getContent().send(pMessage);
|
||||
messageHandlers.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void closeConnection(String pClientIP, int pClientPort)
|
||||
@@ -294,15 +294,15 @@ public abstract class Server
|
||||
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
ClientMessageHandler aMessageHandler;
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
aMessageHandler = messageHandlers.getContent();
|
||||
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
||||
aMessageHandler.close();
|
||||
messageHandlers.remove();
|
||||
}
|
||||
ClientMessageHandler aMessageHandler;
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
aMessageHandler = messageHandlers.getContent();
|
||||
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
||||
aMessageHandler.close();
|
||||
messageHandlers.remove();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -314,46 +314,46 @@ public abstract class Server
|
||||
|
||||
private void addNewClientMessageHandler(Socket pClientSocket)
|
||||
{
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
||||
}
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
||||
}
|
||||
}
|
||||
|
||||
private void removeClientMessageHandler(ClientMessageHandler pClientMessageHandler)
|
||||
{
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
if (pClientMessageHandler == messageHandlers.getContent())
|
||||
{
|
||||
messageHandlers.remove();
|
||||
return;
|
||||
}
|
||||
else
|
||||
messageHandlers.next();
|
||||
}
|
||||
}
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
messageHandlers.toFirst();
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
if (pClientMessageHandler == messageHandlers.getContent())
|
||||
{
|
||||
messageHandlers.remove();
|
||||
return;
|
||||
}
|
||||
else
|
||||
messageHandlers.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ClientMessageHandler findClientMessageHandler(String pClientIP, int pClientPort)
|
||||
{
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
ClientMessageHandler aMessageHandler;
|
||||
messageHandlers.toFirst();
|
||||
synchronized(messageHandlers)
|
||||
{
|
||||
ClientMessageHandler aMessageHandler;
|
||||
messageHandlers.toFirst();
|
||||
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
aMessageHandler = messageHandlers.getContent();
|
||||
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
||||
return (aMessageHandler);
|
||||
messageHandlers.next();
|
||||
}
|
||||
return (null);
|
||||
}
|
||||
while (messageHandlers.hasAccess())
|
||||
{
|
||||
aMessageHandler = messageHandlers.getContent();
|
||||
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
||||
return (aMessageHandler);
|
||||
messageHandlers.next();
|
||||
}
|
||||
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 static final int DEFAULT_PORT = 1000;
|
||||
public static final int DEFAULT_PORT = 1000;
|
||||
|
||||
public static void main( String[] args ) {
|
||||
new WordleServer();
|
||||
}
|
||||
|
||||
|
||||
private DatabaseConnector db;
|
||||
private DatabaseConnector db;
|
||||
|
||||
|
||||
public WordleServer() {
|
||||
@@ -26,17 +26,17 @@ public class WordleServer extends Server {
|
||||
|
||||
@Override
|
||||
public void processNewConnection( String pClientIP, int pClientPort ) {
|
||||
System.out.println("New connection: " + pClientPort);
|
||||
System.out.println("New connection: " + pClientPort);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processClosingConnection( String pClientIP, int pClientPort ) {
|
||||
System.out.println("Closed connection: " + pClientPort);
|
||||
System.out.println("Closed connection: " + pClientPort);
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
dependency1.from=DecisionNode
|
||||
dependency1.to=Dataset
|
||||
dependency1.from=DatabaseConnector
|
||||
dependency1.to=QueryResult
|
||||
dependency1.type=UsesDependency
|
||||
dependency2.from=Classification
|
||||
dependency2.to=Dataset
|
||||
dependency2.from=DatabaseConnector
|
||||
dependency2.to=Queue
|
||||
dependency2.type=UsesDependency
|
||||
dependency3.from=Decision
|
||||
dependency3.to=Dataset
|
||||
dependency3.from=Server
|
||||
dependency3.to=List
|
||||
dependency3.type=UsesDependency
|
||||
dependency4.from=DecisionTreeBuilder
|
||||
dependency4.to=BinaryTree
|
||||
dependency4.from=WordleServer
|
||||
dependency4.to=DatabaseConnector
|
||||
dependency4.type=UsesDependency
|
||||
dependency5.from=DecisionTreeBuilder
|
||||
dependency5.to=DecisionNode
|
||||
dependency5.from=Game
|
||||
dependency5.to=WordleServer
|
||||
dependency5.type=UsesDependency
|
||||
dependency6.from=DecisionTreeBuilder
|
||||
dependency6.to=Classification
|
||||
dependency6.from=Game
|
||||
dependency6.to=User
|
||||
dependency6.type=UsesDependency
|
||||
dependency7.from=DecisionTreeBuilder
|
||||
dependency7.to=Decision
|
||||
dependency7.from=Game
|
||||
dependency7.to=DatabaseConnector
|
||||
dependency7.type=UsesDependency
|
||||
dependency8.from=DecisionTreeBuilder
|
||||
dependency8.to=Dataset
|
||||
dependency8.type=UsesDependency
|
||||
editor.fx.0.height=722
|
||||
editor.fx.0.width=800
|
||||
editor.fx.0.x=388
|
||||
editor.fx.0.y=50
|
||||
objectbench.height=66
|
||||
editor.fx.0.x=346
|
||||
editor.fx.0.y=91
|
||||
objectbench.height=96
|
||||
objectbench.width=1201
|
||||
package.divider.horizontal=0.6
|
||||
package.divider.vertical=0.8983286908077994
|
||||
package.editor.height=622
|
||||
package.editor.width=1078
|
||||
package.divider.vertical=0.8476331360946746
|
||||
package.editor.height=553
|
||||
package.editor.width=1090
|
||||
package.editor.x=39
|
||||
package.editor.y=24
|
||||
package.frame.height=776
|
||||
package.frame.width=1241
|
||||
package.numDependencies=8
|
||||
package.numTargets=6
|
||||
package.numDependencies=7
|
||||
package.numTargets=9
|
||||
package.showExtends=true
|
||||
package.showUses=true
|
||||
project.charset=UTF-8
|
||||
readme.height=58
|
||||
readme.height=60
|
||||
readme.name=@README
|
||||
readme.width=47
|
||||
readme.width=49
|
||||
readme.x=10
|
||||
readme.y=10
|
||||
target1.height=40
|
||||
target1.name=Classification
|
||||
target1.height=70
|
||||
target1.name=DatabaseConnector
|
||||
target1.showInterface=false
|
||||
target1.type=ClassTarget
|
||||
target1.width=210
|
||||
target1.x=40
|
||||
target1.y=460
|
||||
target2.height=50
|
||||
target2.name=Decision
|
||||
target1.width=150
|
||||
target1.x=370
|
||||
target1.y=20
|
||||
target2.height=70
|
||||
target2.name=QueryResult
|
||||
target2.showInterface=false
|
||||
target2.type=ClassTarget
|
||||
target2.width=190
|
||||
target2.x=300
|
||||
target2.y=460
|
||||
target3.height=120
|
||||
target3.name=BinaryTree
|
||||
target2.width=120
|
||||
target2.x=110
|
||||
target2.y=80
|
||||
target3.height=70
|
||||
target3.name=User
|
||||
target3.showInterface=false
|
||||
target3.type=ClassTarget
|
||||
target3.width=440
|
||||
target3.x=890
|
||||
target3.y=250
|
||||
target4.height=40
|
||||
target4.name=Dataset
|
||||
target3.width=120
|
||||
target3.x=770
|
||||
target3.y=50
|
||||
target4.height=70
|
||||
target4.name=Game
|
||||
target4.showInterface=false
|
||||
target4.type=ClassTarget
|
||||
target4.width=270
|
||||
target4.x=430
|
||||
target4.width=120
|
||||
target4.x=960
|
||||
target4.y=30
|
||||
target5.height=50
|
||||
target5.name=DecisionNode
|
||||
target5.height=70
|
||||
target5.name=Server
|
||||
target5.showInterface=false
|
||||
target5.type=AbstractTarget
|
||||
target5.width=110
|
||||
target5.x=210
|
||||
target5.y=290
|
||||
target6.height=60
|
||||
target6.name=DecisionTreeBuilder
|
||||
target5.width=120
|
||||
target5.x=770
|
||||
target5.y=300
|
||||
target6.height=70
|
||||
target6.name=WordleServer
|
||||
target6.showInterface=false
|
||||
target6.type=ClassTarget
|
||||
target6.width=270
|
||||
target6.x=580
|
||||
target6.y=230
|
||||
target6.width=120
|
||||
target6.x=540
|
||||
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