package org.ggp.base.apps.kiosk.games; import java.awt.Color; import java.awt.Graphics; import org.ggp.base.apps.kiosk.templates.CommonGraphics; import org.ggp.base.apps.kiosk.templates.GameCanvas_SimpleGrid; public class ConnectFourCanvas extends GameCanvas_SimpleGrid { private static final long serialVersionUID = 1L; @Override public String getGameName() { return "Connect Four"; } @Override protected String getGameKey() { return "connectFour"; } @Override protected int getGridHeight() { return 6; } @Override protected int getGridWidth() { return 8; } private int selectedColumn = 0; @Override protected void handleClickOnCell(int xCell, int yCell, int xWithin, int yWithin) { if(gameStateHasLegalMove("( drop " + xCell + " )")) { selectedColumn = xCell; submitWorkingMove(stringToMove("( drop " + xCell + " )")); } } @Override protected void renderCell(Graphics g, int xCell, int yCell) { yCell = 7 - yCell; int width = g.getClipBounds().width; int height = g.getClipBounds().height; g.setColor(Color.BLACK); g.drawRect(1, 1, width-2, height-2); if(gameStateHasFact("( cell " + xCell + " " + yCell + " red )")) { g.setColor(Color.RED); CommonGraphics.drawCheckersPiece(g, "wp"); } else if(gameStateHasFact("( cell " + xCell + " " + yCell + " black )")) { g.setColor(Color.BLACK); CommonGraphics.drawCheckersPiece(g, "bp"); } else { ; } if(selectedColumn == xCell) { g.setColor(Color.GREEN); g.drawRect(3, 3, width-6, height-6); } } @Override public void clearMoveSelection() { submitWorkingMove(null); selectedColumn = 0; repaint(); } }