EscapeRoom Projekt hinzugefügt

This commit is contained in:
Artem Didytschuk 2020-09-24 10:53:09 +02:00
commit 61affb4d0d
16 changed files with 1099 additions and 0 deletions

View File

@ -0,0 +1,93 @@
BlueJ run started: Thu Sep 24 10:47:33 CEST 2020
BlueJ version 4.2.2
Java version 11.0.2
JavaFX version 11.0.2+1
Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation)
Running on: Windows 7 6.1 (amd64)
Java Home: C:\Program Files\BlueJ\jdk
----
getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1268)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:726)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:246)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:176)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:317)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:283)
at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
at bluej.extmgr.ExtensionWrapper.<init>(ExtensionWrapper.java:94)
at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
at bluej.Main.lambda$new$2(Main.java:152)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529)
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1268)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:726)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:246)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:176)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:317)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:283)
at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128)
at bluej.extmgr.ExtensionWrapper.<init>(ExtensionWrapper.java:94)
at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155)
at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105)
at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66)
at bluej.Main.lambda$new$2(Main.java:152)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
Opening project: H:\Info\EscapeRoom
1600937258773: Listening for JDWP connection on address: javadebug
Connected to debug VM via dt_shmem transport...
java.io.FileNotFoundException while reading import cache: H:Dokumente\bluej\import-cache.xml (Das System kann die angegebene Datei nicht finden)
Communication with debug VM fully established.
ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location
java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101)
at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075)
at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48)
at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66)
at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964)
at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142)
at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673)
at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)

View File

@ -0,0 +1,13 @@
#BlueJ-Eigenschaften. Einstellungen in dieser Datei haben Vorrang vor "bluej.defs"
#Thu Sep 24 10:47:49 CEST 2020
bluej.recentProject0=H\:\\Info\\EscapeRoom
session.numeditors.stride=0
bluej.uid=81a7ce90-da5c-42b6-a94e-14f9a0524c4b
bluej.editor.fontsize=13
blackbox.uuid=9e4ac419-169d-4246-987a-ac9adaa666fd
bluej.latest.msg=2020-06-01
extensions.org.bluej.extensions.submitter.Submitter.settings.saslrealm=
bluej.editor.stride.sidebarShowing=true
bluej.terminal.y=16
bluej.terminal.x=16
session.numeditors.java=0

View File

@ -0,0 +1,365 @@
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:startup] Loading core version 0.8.1-SNAPSHOT
[BlueJ-Plus DEBUG JavaFX Application Thread @ DefaultBlueJPermissionHandler.java:loadPropertiesInto] Trying to load H:\Info\EscapeRoom\Dokumente\bluej\features.properties
[BlueJ-Plus DEBUG Thread-6 @ FileMonitorThread.java:run] FileMonitorThread started
[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Provisioning
[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Provisioning
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Subclasses
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Subclasses
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module UmlEditor
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module UmlEditor
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module CodeCompletion
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module CodeCompletion
[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Snippets
[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults
[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Snippets
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:onFrwChange] Found PkgMgrFrameWrapper for PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupMenuBarHook] Installed MenuBar hook
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupObjectBenchHook] Installed ObjectBench hook
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupFXWindowHook] Installed FXWindow hook
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Item$null in H:\Info\EscapeRoom\Item.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken name LocatableToken [beginLine=, hiddenBefore=null, type=69, position=68, length=4, text=name]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken name 68 72
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Item LocatableToken [beginLine=, hiddenBefore=null, type=69, position=90, length=4, text=Item]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Item 90 94
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getName LocatableToken [beginLine=, hiddenBefore=null, type=69, position=164, length=7, text=getName]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getName 164 171
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken use LocatableToken [beginLine=, hiddenBefore=null, type=69, position=235, length=3, text=use]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken use 235 238
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Item
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .EscapeRoom$null in H:\Info\EscapeRoom\EscapeRoom.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken main LocatableToken [beginLine=, hiddenBefore=null, type=69, position=88, length=4, text=main]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken main 88 92
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken rooms LocatableToken [beginLine=, hiddenBefore=null, type=69, position=252, length=5, text=rooms]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken rooms 252 257
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken startTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=281, length=9, text=startTime]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken startTime 281 290
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken input LocatableToken [beginLine=, hiddenBefore=null, type=69, position=317, length=5, text=input]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken input 317 322
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken EscapeRoom LocatableToken [beginLine=, hiddenBefore=null, type=69, position=340, length=10, text=EscapeRoom]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken EscapeRoom 340 350
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken addRoom LocatableToken [beginLine=, hiddenBefore=null, type=69, position=457, length=7, text=addRoom]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken addRoom 457 464
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken play LocatableToken [beginLine=, hiddenBefore=null, type=69, position=530, length=4, text=play]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken play 530 534
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken askForInt LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1111, length=9, text=askForInt]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken askForInt 1111 1120
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken askForBool LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1239, length=10, text=askForBool]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken askForBool 1239 1249
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken askForString LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1371, length=12, text=askForString]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken askForString 1371 1383
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken print LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1500, length=5, text=print]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken print 1500 1505
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken println LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1584, length=7, text=println]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken println 1584 1591
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken wait LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1672, length=4, text=wait]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken wait 1672 1676
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .GuessTheNumberRoom$null in H:\Info\EscapeRoom\GuessTheNumberRoom.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken keys LocatableToken [beginLine=, hiddenBefore=null, type=69, position=98, length=4, text=keys]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken keys 98 102
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken GuessTheNumberRoom LocatableToken [beginLine=, hiddenBefore=null, type=69, position=120, length=18, text=GuessTheNumberRoom]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken GuessTheNumberRoom 120 138
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken play LocatableToken [beginLine=, hiddenBefore=null, type=69, position=512, length=4, text=play]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken play 512 516
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in GuessTheNumberRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .RandomNumberKey$null in H:\Info\EscapeRoom\RandomNumberKey.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken number LocatableToken [beginLine=, hiddenBefore=null, type=69, position=92, length=6, text=number]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken number 92 98
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken min LocatableToken [beginLine=, hiddenBefore=null, type=69, position=100, length=3, text=min]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken min 100 103
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken max LocatableToken [beginLine=, hiddenBefore=null, type=69, position=105, length=3, text=max]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken max 105 108
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken rand LocatableToken [beginLine=, hiddenBefore=null, type=69, position=134, length=4, text=rand]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken rand 134 138
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken RandomNumberKey LocatableToken [beginLine=, hiddenBefore=null, type=69, position=156, length=15, text=RandomNumberKey]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken RandomNumberKey 156 171
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken use LocatableToken [beginLine=, hiddenBefore=null, type=69, position=373, length=3, text=use]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken use 373 376
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hint LocatableToken [beginLine=, hiddenBefore=null, type=69, position=672, length=4, text=hint]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hint 672 676
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in RandomNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .NumberLock$null in H:\Info\EscapeRoom\NumberLock.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken correctNumber LocatableToken [beginLine=, hiddenBefore=null, type=69, position=65, length=13, text=correctNumber]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken correctNumber 65 78
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken lastGuess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=80, length=9, text=lastGuess]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken lastGuess 80 89
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken NumberLock LocatableToken [beginLine=, hiddenBefore=null, type=69, position=102, length=10, text=NumberLock]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken NumberLock 102 112
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken unlock LocatableToken [beginLine=, hiddenBefore=null, type=69, position=231, length=6, text=unlock]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken unlock 231 237
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hint LocatableToken [beginLine=, hiddenBefore=null, type=69, position=628, length=4, text=hint]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hint 628 632
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in NumberLock
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Room$null in H:\Info\EscapeRoom\Room.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken locks LocatableToken [beginLine=, hiddenBefore=null, type=69, position=53, length=5, text=locks]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken locks 53 58
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Room LocatableToken [beginLine=, hiddenBefore=null, type=69, position=72, length=4, text=Room]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Room 72 76
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isUnlocked LocatableToken [beginLine=, hiddenBefore=null, type=69, position=173, length=10, text=isUnlocked]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isUnlocked 173 183
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken play LocatableToken [beginLine=, hiddenBefore=null, type=69, position=362, length=4, text=play]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken play 362 366
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Room
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ Subclasses.java:ensureSubClassesMatches] Adding custom target : QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Queue<ContentType>.QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Queue<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Queue<ContentType>.QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Queue<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: Queue and subclass: QueueNode
[BlueJ-Plus ERROR JavaFX Application Thread @ Subclasses.java:update] Class is a custom targetQueue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Queue<ContentType>.QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Queue<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Queue<ContentType>.QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Queue<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: Queue and subclass: QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Queue$null in H:\Info\EscapeRoom\Queue.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken head LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1842, length=4, text=head]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken head 1842 1846
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken tail LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1867, length=4, text=tail]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken tail 1867 1871
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Queue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2023, length=5, text=Queue]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Queue 2023 2028
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2277, length=7, text=isEmpty]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 2277 2284
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken enqueue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2560, length=7, text=enqueue]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken enqueue 2560 2567
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken dequeue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2940, length=7, text=dequeue]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken dequeue 2940 2947
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken front LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3376, length=5, text=front]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken front 3376 3381
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Queue
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .FixedNumberKey$null in H:\Info\EscapeRoom\FixedNumberKey.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken number LocatableToken [beginLine=, hiddenBefore=null, type=69, position=67, length=6, text=number]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken number 67 73
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken FixedNumberKey LocatableToken [beginLine=, hiddenBefore=null, type=69, position=91, length=14, text=FixedNumberKey]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken FixedNumberKey 91 105
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken use LocatableToken [beginLine=, hiddenBefore=null, type=69, position=213, length=3, text=use]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken use 213 216
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hint LocatableToken [beginLine=, hiddenBefore=null, type=69, position=291, length=4, text=hint]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hint 291 295
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in FixedNumberKey
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Lock$null in H:\Info\EscapeRoom\Lock.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken open LocatableToken [beginLine=, hiddenBefore=null, type=69, position=76, length=4, text=open]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken open 76 80
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Lock LocatableToken [beginLine=, hiddenBefore=null, type=69, position=98, length=4, text=Lock]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Lock 98 102
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isOpen LocatableToken [beginLine=, hiddenBefore=null, type=69, position=159, length=6, text=isOpen]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isOpen 159 165
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken unlock LocatableToken [beginLine=, hiddenBefore=null, type=69, position=230, length=6, text=unlock]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken unlock 230 236
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Lock
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ Subclasses.java:ensureSubClassesMatches] Adding custom target : StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Stack<ContentType>.StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Stack<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Stack<ContentType>.StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Stack<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: Stack and subclass: StackNode
[BlueJ-Plus ERROR JavaFX Application Thread @ Subclasses.java:update] Class is a custom targetStack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Stack<ContentType>.StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Stack<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is Stack<ContentType>.StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is Stack<ContentType>
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: Stack and subclass: StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Stack$null in H:\Info\EscapeRoom\Stack.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken head LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1757, length=4, text=head]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken head 1757 1761
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Stack LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1909, length=5, text=Stack]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Stack 1909 1914
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2153, length=7, text=isEmpty]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 2153 2160
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken push LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2443, length=4, text=push]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken push 2443 2447
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken pop LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2752, length=3, text=pop]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken pop 2752 2755
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken top LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3109, length=3, text=top]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken top 3109 3112
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Stack
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities]
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .WithHint$null in H:\Info\EscapeRoom\WithHint.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hint LocatableToken [beginLine=, hiddenBefore=null, type=69, position=68, length=4, text=hint]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hint 68 72
[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in WithHint
[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:EscapeRoom
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Queue$QueueNode in H:\Info\EscapeRoom\Queue.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Queue$QueueNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken content LocatableToken [beginLine=, hiddenBefore=null, type=69, position=762, length=7, text=content]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken content 762 769
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken nextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=798, length=8, text=nextNode]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken nextNode 798 806
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken QueueNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1052, length=9, text=QueueNode]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken QueueNode 1052 1061
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setNext LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1298, length=7, text=setNext]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setNext 1298 1305
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getNext LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1525, length=7, text=getNext]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getNext 1525 1532
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1708, length=10, text=getContent]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContent 1708 1718
[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Stack$StackNode in H:\Info\EscapeRoom\Stack.java]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Stack$StackNode
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken content LocatableToken [beginLine=, hiddenBefore=null, type=69, position=769, length=7, text=content]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken content 769 776
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken nextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=807, length=8, text=nextNode]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken nextNode 807 815
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken StackNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1053, length=9, text=StackNode]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken StackNode 1053 1062
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setNext LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1321, length=7, text=setNext]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setNext 1321 1328
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getNext LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1486, length=7, text=getNext]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getNext 1486 1493
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1620, length=10, text=getContent]
[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContent 1620 1630

74
EscapeRoom.java Normal file
View File

@ -0,0 +1,74 @@
import java.util.Scanner;
public final class EscapeRoom {
public static void main(String[] args) {
EscapeRoom er = new EscapeRoom();
er.addRoom(new GuessTheNumberRoom());
er.play();
}
private Queue<Room> rooms;
private long startTime;
private Scanner input;
public EscapeRoom() {
rooms = new Queue<Room>();
input = new Scanner(System.in);
}
public void addRoom( Room r ) {
rooms.enqueue(r);
}
public void play() {
startTime = System.currentTimeMillis();
System.out.println("Willkommen im Escape Room!");
System.out.println("Die erste Herausforderung erwartet dich!");
while( !rooms.isEmpty() ) {
rooms.front().play(this);
rooms.dequeue();
}
long endTime = System.currentTimeMillis();
int finalTime = (int) ((endTime-startTime) / (1000));
System.out.println("Du bist entkommen!");
System.out.printf("Du hast %d Sekunden gebraucht!\n", finalTime);
}
public int askForInt( String pText ) {
System.out.print(pText+" ");
return input.nextInt();
}
public boolean askForBool( String pText ) {
System.out.print(pText+" ");
return input.nextBoolean();
}
public String askForString( String pText ) {
System.out.print(pText+" ");
return input.nextLine();
}
public void print( String pText ) {
System.out.print(pText);
}
public void println( String pText ) {
System.out.println(pText);
}
public void wait( int milli ) {
try {
Thread.sleep(milli);
} catch( InterruptedException ex ) {
// Ignore
}
}
}

21
FixedNumberKey.java Normal file
View File

@ -0,0 +1,21 @@
public class FixedNumberKey extends Item {
private int number;
public FixedNumberKey( int pNumber ) {
super("Nummernschlüssel");
number = pNumber;
}
public String use() {
return Integer.toString(number);
}
public String hint() {
return "Du findest ein Stück Papier auf das die Zahl "+ number +" gekritzelt ist.";
}
}

73
GuessTheNumberRoom.java Normal file
View File

@ -0,0 +1,73 @@
import java.util.Random;
public class GuessTheNumberRoom extends Room {
private Item[] keys;
public GuessTheNumberRoom() {
super(1);
keys = new Item[4];
Random r = new Random();
int n = r.nextInt(40)+12;
locks[0] = new NumberLock(n);
keys[0] = new FixedNumberKey(n);
keys[1] = new FixedNumberKey(r.nextInt(40)+12);
keys[2] = new RandomNumberKey(12, 40);
keys[3] = new RandomNumberKey(12, 40);
}
public void play( EscapeRoom game ) {
game.println("Du betrittst einen dunklen, unheimlichen Raum!");
game.println("Die Holzdielen knirschen unter deinen Füßen.");
game.wait(1000);
String s;
do {
s = game.askForString("Was möchtest du machen?").toLowerCase();
if( s.equals("umschauen") || s.equals("untersuchen") ) {
game.println("Du siehst ein Zahlenschloss mit einem Rad.");
game.wait(500);
game.println("Du siehst einige Papierfetzen herumliegen:");
game.println(" Ein roter, ein blauer, ein gelber und ein weißer.");
} else if( s.indexOf("weiß") > -1 && s.indexOf("nimm") > -1 ) {
game.println("Du nimmst das weiße Papier.");
game.println(keys[0].hint());
} else if( s.indexOf("blau") > -1 && s.indexOf("nimm") > -1 ) {
game.println("Du nimmst das blaue Papier.");
game.println(keys[1].hint());
} else if( s.indexOf("rot") > -1 && s.indexOf("nimm") > -1 ) {
game.println("Du nimmst das rot Papier.");
game.println(keys[2].hint());
} else if( s.indexOf("gelb") > -1 && s.indexOf("nimm") > -1 ) {
game.println("Du nimmst das gelber Papier.");
game.println(keys[3].hint());
} else if( s.indexOf("weiß") > -1 && s.indexOf("benutz") > -1 ) {
game.println("Du gibst die Zahl des weißen Papiers im Schloss ein.");
locks[0].unlock(keys[0]);
game.wait(800);
game.println(locks[0].hint());
} else if( s.indexOf("blau") > -1 && s.indexOf("benutz") > -1 ) {
game.println("Du gibst die Zahl des blauen Papiers im Schloss ein.");
locks[0].unlock(keys[1]);
game.wait(500);
game.println(locks[0].hint());
} else if( s.indexOf("rot") > -1 && s.indexOf("benutz") > -1 ) {
game.println("Du gibst die Zahl des roten Papiers im Schloss ein.");
locks[0].unlock(keys[2]);
game.wait(700);
game.println(locks[0].hint());
} else if( s.indexOf("gelb") > -1 && s.indexOf("benutz") > -1 ) {
game.println("Du gibst die Zahl des gelben Papiers im Schloss ein.");
locks[0].unlock(keys[3]);
game.wait(600);
game.println(locks[0].hint());
}
game.wait(500);
} while( !isUnlocked() );
game.println("Du hast es geschafft, die Tür öffnet sich mit einem lauten Schleifen!");
}
}

17
Item.java Normal file
View File

@ -0,0 +1,17 @@
public abstract class Item extends WithHint {
private String name;
public Item( String pName ) {
name = pName;
}
public String getName() {
return name;
}
public abstract String use();
}

18
Lock.java Normal file
View File

@ -0,0 +1,18 @@
public abstract class Lock extends WithHint {
protected boolean open;
public Lock() {
open = false;
}
public boolean isOpen() {
return open;
}
public abstract boolean unlock( Item pItem );
}

44
NumberLock.java Normal file
View File

@ -0,0 +1,44 @@
public class NumberLock extends Lock {
protected int correctNumber, lastGuess;
public NumberLock( int pCorrectNumber ) {
correctNumber = pCorrectNumber;
lastGuess = -1;
}
public boolean unlock( Item pItem ) {
if( isOpen() ) {
return true;
}
try {
int n = Integer.parseInt(pItem.use());
lastGuess = n;
if( n == correctNumber ) {
open = true;
}
return isOpen();
} catch( NumberFormatException ex ) {
return false;
}
}
public String hint() {
if( lastGuess == -1 ) {
return "Du hast bisher nicht versucht das Schloss zu öffnen.";
}
try {
if( lastGuess < correctNumber ) {
return "Die Nummer muss höher sein.";
} else if( lastGuess > correctNumber ) {
return "Die Nummer muss niedriger sein.";
} else {
return "Die Nummer scheint zu passen!";
}
} catch( NumberFormatException ex ) {
return "Du musst für dieses Schloss ein Item mit einer Nummer benutzen.";
}
}
}

142
Queue.java Normal file
View File

@ -0,0 +1,142 @@
/**
* <p>
* Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
* </p>
* <p>
* Generische Klasse Queue<ContentType>
* </p>
* <p>
* Objekte der generischen Klasse Queue (Warteschlange) verwalten beliebige
* Objekte vom Typ ContentType nach dem First-In-First-Out-Prinzip, d.h., das
* zuerst abgelegte Objekt wird als erstes wieder entnommen. Alle Methoden haben
* eine konstante Laufzeit, unabhaengig von der Anzahl der verwalteten Objekte.
* </p>
*
* @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
* @version Generisch_02 2014-02-21
*/
public class Queue<ContentType> {
/* --------- Anfang der privaten inneren Klasse -------------- */
private class QueueNode {
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;
}
/**
* 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;
/**
* 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;
}
/**
* 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;
}
}
}
/**
* 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();
}
}
}

14
README.TXT Normal file
View File

@ -0,0 +1,14 @@
------------------------------------------------------------------------
Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt
beschreiben.
Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss),
alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar
zumindest die folgenden Angaben umfassen:
------------------------------------------------------------------------
PROJEKTBEZEICHNUNG:
PROJEKTZWECK:
VERSION oder DATUM:
WIE IST DAS PROJEKT ZU STARTEN:
AUTOR(EN):
BENUTZERHINWEISE:

30
RandomNumberKey.java Normal file
View File

@ -0,0 +1,30 @@
import java.util.Random;
public class RandomNumberKey extends Item {
private int number, min, max;
private Random rand;
public RandomNumberKey( int pMin, int pMax ) {
super("Nummernschlüssel");
rand = new Random();
min = pMin;
max = pMax;
number = rand.nextInt(pMax) + pMin;
}
public String use() {
int n = number;
number = rand.nextInt(max) + min;
System.out.println("Du benutzt die kleine Box, aber als du sie bewegst");
System.out.println("macht sie ein seltsames schnurrendes Geräusch.");
return Integer.toString(n);
}
public String hint() {
return "Du findest eine kleine Box. Ein Feld auf der Vorderseite\nzeigt die Nummer "+ number +" an.";
}
}

22
Room.java Normal file
View File

@ -0,0 +1,22 @@
public abstract class Room {
protected Lock[] locks;
public Room( int pNumberOfLocks ) {
locks = new Lock[pNumberOfLocks];
}
public boolean isUnlocked() {
for( Lock l: locks ) {
if( !l.isOpen() ) {
return false;
}
}
return true;
}
public abstract void play( EscapeRoom game );
}

126
Stack.java Normal file
View File

@ -0,0 +1,126 @@
/**
* <p>
* Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
* </p>
* <p>
* Generische Klasse Stack<ContentType>
* </p>
* <p>
* Objekte der generischen Klasse Stack (Keller, Stapel) verwalten beliebige
* Objekte vom Typ ContentType nach dem Last-In-First-Out-Prinzip, d.h., das
* zuletzt abgelegte Objekt wird als erstes wieder entnommen. Alle Methoden
* haben eine konstante Laufzeit, unabhaengig von der Anzahl der verwalteten
* Objekte.
* </p>
*
* @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
* @version Generisch_02 2014-02-21
*/
public class Stack<ContentType> {
/* --------- Anfang der privaten inneren Klasse -------------- */
private class StackNode {
private ContentType content = null;
private StackNode nextNode = null;
/**
* Ein neues Objekt vom Typ StackNode<ContentType> wird erschaffen. <br />
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
*
* @param pContent der Inhalt des Knotens
*/
public StackNode(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(StackNode pNext) {
nextNode = pNext;
}
/**
*
* @return das Objekt, auf das der aktuelle Verweis zeigt
*/
public StackNode getNext() {
return nextNode;
}
/**
* @return das Inhaltsobjekt vom Typ ContentType
*/
public ContentType getContent() {
return content;
}
}
/* ----------- Ende der privaten inneren Klasse -------------- */
private StackNode head;
/**
* Ein leerer Stapel wird erzeugt. Objekte, die in diesem Stapel verwaltet
* werden, muessen vom Typ ContentType sein.
*/
public Stack() {
head = null;
}
/**
* Die Anfrage liefert den Wert true, wenn der Stapel keine Objekte
* enthaelt, sonst liefert sie den Wert false.
*
* @return true, falls der Stapel leer ist, sonst false
*/
public boolean isEmpty() {
return (head == null);
}
/**
* Das Objekt pContentType wird oben auf den Stapel gelegt. Falls
* pContentType gleich null ist, bleibt der Stapel unveraendert.
*
* @param pContent
* das einzufuegende Objekt vom Typ ContentType
*/
public void push(ContentType pContent) {
if (pContent != null) {
StackNode node = new StackNode(pContent);
node.setNext(head);
head = node;
}
}
/**
* Das zuletzt eingefuegte Objekt wird von dem Stapel entfernt. Falls der
* Stapel leer ist, bleibt er unveraendert.
*/
public void pop() {
if (!isEmpty()) {
head = head.getNext();
}
}
/**
* Die Anfrage liefert das oberste Stapelobjekt. Der Stapel bleibt
* unveraendert. Falls der Stapel leer ist, wird null zurueckgegeben.
*
* @return das oberste Stackelement vom Typ ContentType oder null, falls
* der Stack leer ist
*/
public ContentType top() {
if (!this.isEmpty()) {
return head.getContent();
} else {
return null;
}
}
}

8
WithHint.java Normal file
View File

@ -0,0 +1,8 @@
public abstract class WithHint {
public abstract String hint();
}

39
package.bluej Normal file
View File

@ -0,0 +1,39 @@
#BlueJ package file
editor.fx.0.height=0
editor.fx.0.width=0
editor.fx.0.x=0
editor.fx.0.y=0
objectbench.height=93
objectbench.width=1256
package.divider.horizontal=0.6
package.divider.vertical=0.8522895125553914
package.editor.height=570
package.editor.width=1145
package.editor.x=0
package.editor.y=0
package.frame.height=776
package.frame.width=1296
package.numDependencies=0
package.numTargets=2
package.showExtends=true
package.showUses=true
project.charset=UTF-8
readme.height=58
readme.name=@README
readme.width=47
readme.x=10
readme.y=10
target1.height=80
target1.name=EscapeRoom
target1.showInterface=false
target1.type=ClassTarget
target1.width=130
target1.x=90
target1.y=90
target2.height=100
target2.name=Room
target2.showInterface=false
target2.type=AbstractTarget
target2.width=130
target2.x=360
target2.y=260