Ludii Forum
Compiled a game, and got Tictactoe - Printable Version

+- Ludii Forum (https://ludii.games/forums)
+-- Forum: Problems (https://ludii.games/forums/forumdisplay.php?fid=5)
+--- Forum: Ludii Player Problems (https://ludii.games/forums/forumdisplay.php?fid=6)
+--- Thread: Compiled a game, and got Tictactoe (/showthread.php?tid=112)



Compiled a game, and got Tictactoe - dale walton - 08-06-2020

"Something went wrong painting the components"

The Board briefly appears followed by a Tic tac toe board (and game) and if I reinvoke the editor, my file is overwritten by tictactoe...
The status shows "Index -1 out of bounds for length 108"  (108 seems to relat to the size of the board, and shows a different number for hex, limping,  of different sizes)


RE: Compiled a game, and got Tictactoe - cambolbro - 08-06-2020

Hi,

Can you attach the .lud that shows this problem and list the steps to recreate it?

Regards,
Cameron


RE: Compiled a game, and got Tictactoe - dale walton - 08-06-2020

Terminal screen:
dale@dale-System-Product-Name:~/Ludii$ java -jar Ludii-1.0.1.jar
Loading default preferences.

Compiled Surakarta successfully.
-----------------------
in Surakarta I loaded game from file (in my home directory)

Terminal screen:
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3
at util.state.State.updateScoreHash(State.java:1127)
at util.state.State.setScore(State.java:1118)
at util.Context.setScore(Context.java:450)
at util.action.state.ActionSetScore.apply(ActionSetScore.java:77)
at game.rules.start.set.player.SetScore.eval(SetScore.java:94)
at game.rules.start.Start.eval(Start.java:85)
at game.Game.start(Game.java:1401)
at app.game.GameSetupDesktop.cleanUpPlayerView(GameSetupDesktop.java:232)
at app.game.GameSetupDesktop.cleanUpAfterLoading(GameSetupDesktop.java:179)
at app.game.GameSetupDesktop.compileAndShowGame(GameSetupDesktop.java:100)
at app.loading.GameLoading.loadGameFromFile(GameLoading.java:99)
at app.loading.GameLoading.loadGameFromFile(GameLoading.java:59)
at app.menu.MainMenuFunctions.checkActionsPerformed(MainMenuFunctions.java:140)
at app.DesktopApp.actionPerformed(DesktopApp.java:293)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6400)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 108
at game.functions.booleans.is.site.IsEmpty.eval(IsEmpty.java:53)
at game.functions.booleans.math.And.eval(And.java:73)
at game.rules.play.moves.nonDecision.effect.Add.eval(Add.java:161)
at game.rules.play.moves.nonDecision.effect.requirement.Priority.eval(Priority.java:80)
at game.Game.moves(Game.java:1519)
at app.display.views.tools.buttons.ButtonPass.isEnabled(ButtonPass.java:64)
at app.display.views.tools.ToolButton.getButtonColour(ToolButton.java:214)
at app.display.views.tools.buttons.ButtonPass.draw(ButtonPass.java:43)
at app.display.views.tools.ToolView.paint(ToolView.java:134)
at app.display.MainWindow.paintComponent(MainWindow.java:236)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:590)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5262)
at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:246)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1060)
at java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.desktop/java.awt.Container.paint(Container.java:2002)
at java.desktop/java.awt.Window.paint(Window.java:3940)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:876)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
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.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Compiled Tic-Tac-Toe successfully.


RE: Compiled a game, and got Tictactoe - cambolbro - 08-06-2020

Hi,

1. Try:

      (start (set Score Each 0))

2. Try reformulating your Add move, something like:

    (move
        Add
        (to
            (sites Empty)
            if:(not (is Connected Mover))
        )
        (then "UpdateScores")
      )


Regards,
Cameron


RE: Compiled a game, and got Tictactoe - dale walton - 08-06-2020

Thanks, Now I can start to debug and add features...