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;
+      }
+   }
 }