Mercurial > hg > ristipolku
view Ristipolku.java @ 1:44f1e7b47fcf
Preliminary work ... puuh.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 28 Jan 2011 16:34:53 +0200 |
parents | f930f72ed0f5 |
children | 1785f66a7beb |
line wrap: on
line source
/* * Ristipolku * (C) Copyright 2011 Matti 'ccr' Hämäläinen <ccr@tnsp.org> * * Ohjelmointiprojekti Java-kurssille. */ import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import game.*; class PathInfo { public int in, inX, inY, out, outX, outY; public PathInfo(in, inX, inY, out, outX, outY) { this.in = in; this.inX = inX; this.inY = inY; this.out = out; this.outX = outX; this.outY = outY; } } class GameBoard { public static final int boardSize = 9; public static final int boardMiddle = 4; Piece[][] board; Piece current; public GameBoard() { board = new Piece[boardSize][boardSize]; board[boardMiddle][boardMiddle] = new Piece(PieceType.START); moveX = boardMiddle; moveY = boardMiddle - 1; } public void paint(Graphics2D g, int sx, int sy, double scale) { for (int y = 0; y < boardSize; y++) for (int x = 0; x < boardSize; x++) { if (board[x][y] != null) board[x][y].paint(g, sx + (x * scale), sy + (y * scale), scale - scale/10); } } private boolean isEmpty(int x, int y) { return (x >= 0 && x < boardSize && y >= 0 && y < boardSize && board[x][y] == null); } private Piece getPiece(int x, int y) { return board[x][y]; } public Point resolvePath(int x, int y, int inpoint) { } public pieceRotate(boolean dir) { current.rotate(dir); } public void pieceFinishTurn() { if (current != null) current.setType(PieceType.NORMAL); if (isEmpty(cx, cy)) { current = new Piece(PieceType.ACTIVE); lauta.setPiece(cx, cy, current); } } } public class gfxtest extends JApplet implements KeyListener { GameBoard lauta; public void init() { getContentPane().setBackground(Color.white); lauta = new GameBoard(); addKeyListener(this); } /* public Graphics2D createGraphics2D(Dimension d) { Graphics2D g2 = null; if (bimg == null || bimg.getWidth() != d.w || bimg.getHeight() != d.h) { bimg = (BufferedImage) createImage(d.w, d.h); reset(d); } g2 = bimg.createGraphics(); g2.setBackground(getBackground()); g2.clearRect(0, 0, w, h); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); return g2; } */ public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); lauta.paint(g2, 15, 15, 60); } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { switch (event.getKeyCode()) { case VK_LEFT: case VK_UP: moveRotate(false); break; case VK_RIGHT: case VK_DOWN: moveRotate(true); break; case VK_ENTER: moveNew(); break; } } }