Project Code Start{"clazzesSourceCode":["class MyApp {\n Screen screen;\n Startscreen startscreen;\n Turm[] tuerme;\n Turm markiert=null;\n int aktuellerSchritt;\n \n void onStart( ) {\n screen = new Screen( );\n screen.hide();\n startscreen=new Startscreen();\n tuerme=new Turm[3];\n tuerme[0]=new Turm(screen.turm1);\n tuerme[1]=new Turm(screen.turm2);\n tuerme[2]=new Turm(screen.turm3);\n \n }\n \n void startGame(int hoehe){\n Turm t;\n for (int i = 0; i < tuerme.length; i++) {\n t=tuerme[i];\n t.leeren(); \n }\n t=tuerme[0];\n for (int i = 0; i < hoehe; i++) {\n Scheibe s=new Scheibe(hoehe-i+1);\n t.drauflegen(s);\n }\n screen.show();\n startscreen.hide();\n }\n \n void onAction( JComponent trigger ) {\n if (trigger==screen.close) {\n screen.hide();\n startscreen.show();\n return;\n }\n if (trigger==screen.solve) {\n \n }\n if (trigger==startscreen.start) {\n int hoehe=startscreen.hoehe.getValue();\n startGame(hoehe);\n return;\n }\n for (int i = 0; i < tuerme.length; i++) {\n if (trigger==tuerme[i].canvas) {\n clickTurm(tuerme[i]);\n } \n }\n \n }\n\n void demarkiereAlleTuerme(){\n for (int i = 0; i < tuerme.length; i++) {\n tuerme[i].markiereObersteScheibe(false); \n }\n markiert=null;\n }\n \n void markiereTurm(Turm t){\n demarkiereAlleTuerme();\n t.markiereObersteScheibe(true);\n markiert=t;\n }\n \n void clickTurm(Turm t){\n if (markiert==t) {\n demarkiereAlleTuerme();\n }else{\n if (markiert==null) {\n if (t.istLeer()) return;\n markiereTurm(t);\n }else{\n Scheibe s=markiert.wegnehmen();\n if (t.passtScheibeDrauf(s)) {\n t.drauflegen(s); \n }else{\n markiert.drauflegen(s);\n System.toast(\"Scheibe zu groß\", \"center\");\n }\n demarkiereAlleTuerme();\n }\n }\n }\n \n public static void main( String[ ] args ) {\n new MyApp( );\n }\n}",{"name":"Screen","src":"","components":[{"type":"JPanel","components":[{"type":"JButton","value":"Lösen","valueType":"html","onAction":true,"actionCommand":"","disabled":false,"x":50,"y":50,"width":100,"height":100,"cssClass":"jbutton","cssCode":"","invisible":true,"name":"solve"},{"type":"JLabel","value":"","valueType":"html","onAction":false,"actionCommand":"","align":"center","x":50,"y":50,"width":100,"height":100,"cssClass":"jlabel","cssCode":"","invisible":false},{"type":"JButton","value":"Beenden","x":50,"y":50,"width":100,"height":100,"name":"close"}],"template":"auto 1fr auto","onAction":false,"actionCommand":"","x":50,"y":50,"width":100,"height":100,"cssClass":"jpanel","cssCode":"","invisible":false},{"type":"JPanel","components":[{"type":"Canvas","components":[{"type":"JLabel","value":"","valueType":"html","onAction":false,"actionCommand":"","align":"center","x":"5","y":"5","width":"0.5","height":"11","cssClass":"jlabel","cssCode":"background: black; pointer-events: none","invisible":false}],"minX":"-0.5","maxX":"10.5","minY":"-0.5","maxY":"10.5","onAction":true,"actionCommand":"","onMouseUp":true,"onMouseDown":true,"onMouseMove":true,"sizePolicy":"fit","x":50,"y":50,"width":100,"height":100,"cssClass":"canvas","cssCode":"","invisible":false,"name":"turm1"},{"type":"Canvas","components":[{"type":"JLabel","value":"","valueType":"html","onAction":true,"actionCommand":"","align":"center","x":"5","y":"5","width":"0.5","height":"11","cssClass":"jlabel","cssCode":"background: black; pointer-events: none","invisible":false}],"minX":"-0.5","maxX":"10.5","minY":"-0.5","maxY":"10.5","onAction":true,"actionCommand":"","onMouseUp":true,"onMouseDown":true,"onMouseMove":true,"sizePolicy":"fit","x":50,"y":50,"width":100,"height":100,"cssClass":"canvas","cssCode":"","invisible":false,"name":"turm2"},{"type":"Canvas","components":[{"type":"JLabel","value":"","valueType":"html","onAction":true,"actionCommand":"","align":"center","x":"5","y":"5","width":"0.5","height":"11","cssClass":"jlabel","cssCode":"background: black; pointer-events: none","invisible":false}],"minX":"-0.5","maxX":"10.5","minY":"-0.5","maxY":"10.5","onAction":true,"actionCommand":"","onMouseUp":true,"onMouseDown":true,"onMouseMove":true,"sizePolicy":"fit","x":50,"y":50,"width":100,"height":100,"cssClass":"canvas","cssCode":"","invisible":false,"name":"turm3"}],"template":"3","onAction":false,"actionCommand":"","x":50,"y":50,"width":100,"height":100,"cssClass":"jpanel","cssCode":"","invisible":false}],"cssClass":"","cssCode":"","template":"2cm 1fr/"},"class Turm{\n Scheibe[] scheiben;\n int hoehe;\n Canvas canvas;\n \n Turm(Canvas canvas){\n this.canvas=canvas;\n this.hoehe=0;\n scheiben=new Scheibe[10];\n }\n\n void markiereObersteScheibe(boolean mark){\n Scheibe s=getObersteScheibe();\n if(s==null) return;\n s.markieren(mark);\n }\n \n Scheibe getObersteScheibe(){\n if (hoehe==0) {\n return null;\n }else{\n return scheiben[hoehe-1];\n }\n }\n\n boolean istLeer(){\n return hoehe==0;\n }\n \n boolean passtScheibeDrauf(Scheibe s){\n if (istLeer()) {\n return true;\n }\n Scheibe o=getObersteScheibe();\n return s.passtAuf(o);\n }\n \n Scheibe wegnehmen(){\n Scheibe s=getObersteScheibe();\n if(s==null) return null;\n canvas.remove(s.ui);\n scheiben[hoehe-1]=null;\n hoehe--;\n return s;\n }\n\n void leeren(){\n while (!istLeer()) {\n wegnehmen();\n }\n }\n \n void drauflegen(Scheibe s){\n canvas.add(s.ui);\n scheiben[hoehe]=s;\n s.ui.setX(5);\n s.ui.setY(hoehe);\n hoehe++;\n }\n\n void click(){\n \n }\n}","class Scheibe{\n int breite;\n JLabel ui;\n Scheibe(int breite){\n this.breite=breite;\n ui=new JLabel(\"\");\n ui.setCSS(\"background: red; border: 2pt solid black; ponter-events: none;\");\n ui.setHeight(1);\n ui.setWidth(breite);\n }\n\n void markieren(boolean mark){\n if(mark){\n ui.setStyle(\"background\", \"orange\");\n }else{\n ui.setStyle(\"background\", \"red\");\n }\n }\n\n boolean passtAuf(Scheibe s){\n if(breite
Die Türme von Hanoi","valueType":"html","onAction":false,"actionCommand":"","align":"center","x":50,"y":50,"width":100,"height":100,"cssClass":"jlabel","cssCode":"","invisible":false},{"type":"JLabel","value":"Versetze den Turm vollständig.","valueType":"html","onAction":false,"actionCommand":"","align":"center","x":50,"y":50,"width":100,"height":100,"cssClass":"jlabel","cssCode":"","invisible":false},{"type":"JPanel","components":[{"type":"JLabel","value":"Höhe des Turms:","valueType":"html","onAction":false,"actionCommand":"","align":"center","x":50,"y":50,"width":100,"height":100,"cssClass":"jlabel","cssCode":"","invisible":false},{"type":"JComboBox","value":"3","options":"[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\"]","valueType":"text","onAction":false,"actionCommand":"","disabled":false,"x":50,"y":50,"width":100,"height":100,"cssClass":"jcombobox","cssCode":"","invisible":false,"name":"hoehe"}],"template":"2","onAction":false,"actionCommand":"","x":50,"y":50,"width":100,"height":100,"cssClass":"jpanel","cssCode":"","invisible":false},{"type":"JButton","value":"Starten","valueType":"html","onAction":true,"actionCommand":"","disabled":false,"x":50,"y":50,"width":100,"height":100,"cssClass":"jbutton","cssCode":"","invisible":false,"name":"start"}],"cssClass":"","cssCode":"","template":"1"},"class Loesungsschritt{\n \n}"],"database":"","css":"","assets":false,"name":"Hanoi","description":"","theme_color":"black","background_color":"black","icon":null,"urls":["./"]}Project Code Stop