Mercurial > hg > ristipolku
diff 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 diff
--- a/Ristipolku.java Wed Jan 26 03:43:17 2011 +0200 +++ b/Ristipolku.java Fri Jan 28 16:34:53 2011 +0200 @@ -3,21 +3,108 @@ * (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.font.TextLayout; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.awt.event.WindowAdapter; -import java.awt.image.BufferedImage; +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; + } +} -public class RistiPolku extends JApplet implements Runnable +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; @@ -33,55 +120,44 @@ RenderingHints.VALUE_ANTIALIAS_ON); return g2; } - +*/ - public void paint(Graphics g) { - Dimension d = getSize(); - step(d.width, d.height); - Graphics2D g2 = createGraphics2D(d); - drawDemo(d.width, d.height, g2); - g2.dispose(); - g.drawImage(bimg, 0, 0, this); - } + public void paint(Graphics g) + { + Graphics2D g2 = (Graphics2D) g; + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); - public void start() { - thread = new Thread(this); - thread.setPriority(Thread.MIN_PRIORITY); - thread.start(); - } - - - public synchronized void stop() { - thread = null; - } + lauta.paint(g2, 15, 15, 60); + } - public void run() { - Thread me = Thread.currentThread(); - while (thread == me) { - repaint(); - try { - thread.sleep(10); - } catch (InterruptedException e) { break; } - } - thread = null; - } - + 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; - public static void main(String argv[]) { - final RistiPolku demo = new RistiPolku(); - demo.init(); - JFrame f = new JFrame("RistiPolku"); - f.addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) {System.exit(0);} - public void windowDeiconified(WindowEvent e) { demo.start(); } - public void windowIconified(WindowEvent e) { demo.stop(); } - }); - f.getContentPane().add("Center", demo); - f.pack(); - f.setSize(new Dimension(400,300)); - f.show(); - demo.start(); - } + case VK_RIGHT: + case VK_DOWN: + moveRotate(true); + break; + + case VK_ENTER: + moveNew(); + break; + } + } }