UrbanTwitch
asked on
Java Client Applet - Clicking inside of JPanel
OK so I m getting a NullPointerException on line 277 -- weird...
What I am trying to do is if the mouse is inside the coordinates and is CLICKED to focus back on the game jpanel...
line 277: game.requestFocusInWindow( ); // request focus in game JPanel
Here is tileGen in full:
What I am trying to do is if the mouse is inside the coordinates and is CLICKED to focus back on the game jpanel...
line 277: game.requestFocusInWindow(
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at tileGen.mouseClicked(tileGen.java:277)
at java.awt.Component.processMouseEvent(Component.java:6270)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Here is tileGen in full:
/**
Mystik Client
Programer: Dan J.
Many thanks to objects & CEHJ
Started May 23, 2010
(c) 2010
**/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.List;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Random;
import javax.imageio.*;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class tileGen extends JApplet implements KeyListener, MouseListener,
ActionListener, Runnable {
Image[] tiles;
Image[] weapon;
Image[] userImg;
String[] user;
int x, y, px, py, tx, ty; // x tile - y tile // player x - player y // tile
// x - tile y
boolean left, right, down, up, canMove, respawn;
boolean drawFlail, drawBattleaxe;
public static int[][] board;
final int NUM_TILES = 200;
final int NUM_WEAPS = 2;
boolean[] weaponPicked;
Label lx, ly; // to see where we are!
int r1, r2, u1, u2, l1, l2, d1, d2, spawnX, spawnY;
int rightSide = 480;
int downSide = 320;
int mapX = 15;
int mapY = 10;
String txtLastFX, txtLastFY;
boolean boolRC, boolLC, boolUC, boolDC;
int leftMap, upMap, rightMap, downMap, currentMap, map;
public static TextArea c = new TextArea();
public static TextArea stats = new TextArea();
public static String newline;
public static java.awt.List list;
public static Font TimesR = new Font("MonoSpaced", Font.BOLD, 15);
public static ArrayList<String> arr;
public static tileGen anItem;
public static boolean firstpush = false;
String name, desc, typeOf, attackAdd, defenseAdd, canSell, canEat,
earnedCoins, canEquip;
public static int blkStr;
public static Random roll = new Random();
//public static String me.getUsername();
public static int[] userPX;
public static int[] userPY;
private Map<String, Player> players = new HashMap<String, Player>();
public static String[] tokens;
public static String[] temp;
public static boolean isResp = false;
public static String myCommand = "move";
private Player me;
public static boolean chatOne = false;
public int red = 0;
public static JTextField say = new JTextField();
public static JPanel game;
int xpos, ypos;
int rect1xco,rect1yco,rect1width,rect1height;
boolean gameClicked;
// Network schtuff
public static PrintStream os = null;
static Socket clientSocket = null;
static BufferedReader in;
static boolean closed;
int lastX, lastY, row, col;
Label lbl1, lbl2, p1, p2, lblRC;
int attack, defense, gold, level, exp;
public static void showInventory(ArrayList<String> theList) {
for (int i = 0; i < theList.size(); i++) {
System.out.println(theList.get(i));
}
}
public void init() {
setLayout(new BorderLayout());
JPanel invOne = new JPanel(); // inventory panel
JPanel game = new JPanel(); // game panel
//JPanel banner = new JPanel();
JPanel main = new JPanel(new BorderLayout());
main.add(game, BorderLayout.CENTER); // game screen;
main.add(c, BorderLayout.SOUTH); // chat/textarea screen
add(main, BorderLayout.CENTER);
add(say, BorderLayout.SOUTH);
/**
* arr.add("Hatchet"); arr.add("Sword"); arr.add("Shield"); arr.add(gold
* + " Gold"); System.out.println("You have " + arr.size() +
* " items in your inventory."); showInventory(arr);
**/
anItem = new tileGen();
arr = new ArrayList<String>();
list = new List();
for (String item : arr)
list.add(item);
list.addMouseListener(this);
list.setVisible(true);
list.setFocusable(false);
main.add(list, BorderLayout.EAST); // inventory screen
game.setOpaque(false);
game.setBounds(0, 0, 416, 288);
c.setBackground(Color.white);
c.setForeground(Color.black);
c.setFont(TimesR);
c.setEditable(true);
board = loadBoard(1);
currentMap = 1;
spawnY = 6;
spawnX = 10;
c.append("Welcome to the game, " + getParameter("name") + ".");
this.setFocusable(true);
addMouseListener(this);
tiles = new Image[NUM_TILES];
for (int i = 0; i < NUM_TILES; i++) {
tiles[i] = getImage(getClass().getResource(
String.format("line_tile/t%d.png", i)));
}
weapon = new Image[NUM_WEAPS];
for (int xi = 0; xi < NUM_WEAPS; xi++) {
weapon[xi] = getImage(getClass().getResource(
String.format("weapon/w%d.gif", xi)));
}
userPX = new int[10];
for (int i = 0; i < 10; i++) {
userPX[i] = -100;
}
userPY = new int[10];
for (int i = 0; i < 10; i++) {
userPY[i] = -100;
}
// demo
// player = getImage(getClass().getResource("me.gif")); // our player
addKeyListener(this);
canMove = true;
String txtY = Integer.toString(spawnY);
String txtX = Integer.toString(spawnX);
py = spawnY * 32;
px = spawnX * 32;
lastY = spawnY;
lastX = spawnX;
drawFlail = true;
drawBattleaxe = true;
this.setFocusable(true);
game.setFocusable(true);
c.setFocusable(false);
invOne.setVisible(true);
// blkStr = board[5][5];
// System.out.println("Teh black one: " +blkStr);
// board[5][5] = 26;
}
public void start() {
new Thread(this).start();
}
public void playerLogin() throws IOException {
Random roll = new Random();
int newNo = roll.nextInt(200);
// me.getUsername() = "Guest #" + roll.nextInt(110);
//String me.getUsername() = getParameter("name");
me = new Player();
me.setUsername(getParameter("name"));
me.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
me.setX(256);
me.setY(256);
me.setMap(1);
me.setCommand("move");
players.put(me.getUsername(), me);
repaint();
System.out.println(me.getUsername() + " was added. player: " + me);
os.println(me.getUsername() + "|" + me.getX() + "|" + me.getY() + "|" + me.getMap() + "|" + me.getCommand());
attack = 4;
defense = 5;
gold = 542;
level = 1;
exp = 53;
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
// equip - use - select
public void mouseClicked(MouseEvent e) {
xpos = me.getX();
ypos = me.getY();
rect1xco = 0;
rect1yco = 0;
rect1width = 480;
rect1height = 320;
if (xpos > rect1xco && xpos < rect1xco+rect1width && ypos >rect1yco && ypos < rect1yco+rect1height) {
game.requestFocusInWindow();
c.append("\nYou clicked on the game.");
}
if (e.getClickCount() == 2) {
myCommand = "chat";
c.append("\nDouble clicked on " + list.getSelectedItem());
os.println(me.getUsername() + "|1|Hello, world!|yes|chat");
}
}
private static final HashSet<Integer> BLOCKED_TILES = new HashSet<Integer>();
static {
/**
* BLOCKED_TILES.add(118); BLOCKED_TILES.add(67);
* BLOCKED_TILES.add(190); BLOCKED_TILES.add(40);
* BLOCKED_TILES.add(135); BLOCKED_TILES.add(520);
* BLOCKED_TILES.add(25); BLOCKED_TILES.add(91); BLOCKED_TILES.add(394);
* BLOCKED_TILES.add(1); BLOCKED_TILES.add(121);
**/
BLOCKED_TILES.add(1);
BLOCKED_TILES.add(6);
BLOCKED_TILES.add(7);
// add more tiles here
}
public void actionPerformed(ActionEvent actionevent) {
game.requestFocusInWindow();
}
public Player getPlayer(String username) {
return players.get(username);
}
public void run() {
System.out.println("run() still going..");
Socket s = null;
try {
// s = new Socket(getParameter("host"),
// Integer.valueOf(getParameter("port"));
// s = new Socket(getParameter("host"),
// Integer.valueOf(getParameter("port")));
s = new Socket("localhost", 25566);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
os = new PrintStream(s.getOutputStream());
playerLogin();
int buf = -1;
String responseLine;
// rawr
while ((responseLine = in.readLine()) != null) {
isResp = true;
chatOne = true;
//c.append("\nxxx\n");
// System.out.println("responseLine (|): " + responseLine);
String str = responseLine;
String delimiter = "\\|";
String[] temp = str.split(delimiter);
//c.append("\noutput: " + str);
// pid
Player player = players.get(temp[0]);
if ("chat".equalsIgnoreCase(temp[4])) {
c.append("\n"+temp[0] + " says: " + temp[2]);
//sendMsg(temp[0], temp[2], me.getUsername());
}
if (player == null) {
player = new Player();
player.setUsername(temp[0]);
player.setX(Integer.parseInt(temp[1]));
player.setY(Integer.parseInt(temp[2]));
player.setCommand(temp[4]);
player.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
player.setMap(1);
players.put(temp[0], player);
}
if ("move".equalsIgnoreCase(temp[4])) {
c.append("\n"+temp[2] + " and temp 4: " + temp[4]);
player.setX(Integer.parseInt(temp[1]));
player.setY(Integer.parseInt(temp[2]));
player.setMap(Integer.parseInt(temp[3]));
}
player.setCommand(temp[4]);
player.setUsername(temp[0]);
System.out.println("X set: " + player.getX() + " | Y set: "
+ player.getY() + " | CurrMap set: " + player.getMap()
+ " | Username set: " + player.getUsername() + " | Command set: " + temp[4]);
repaint();
}
repaint();
} catch (Exception rwe) {
// System.exit(0);
System.out.println("Server went down -- crap!");
rwe.printStackTrace();
} finally {
try {
s.close();
} catch (IOException ere) {
ere.printStackTrace();
}
}
}
public void sendMsg(String e, String msg, String getUser) {
//c.append("\n Temp0: " + temp[0] + "| me.getUsername: "+me.getUsername());
String whosay;
if (!temp[0].equals(me.getUsername())) {
whosay = e;
}else{
whosay = me.getUsername();
}
c.append("\n"+ e + " says: " + msg);
}
public void keyPressed(KeyEvent e) {
// getPlayers();
repaint();
myCommand = "move";
System.out.println("PRESSED" + myCommand);
if (isInBound(lastX, lastY) == true) {
System.out.println("\nYOU WENT OFF THE GRID.\n");
}
right = true;
left = true;
up = true;
down = true;
String choice = list.getSelectedItem();
// c.append("\nInventory selection: " + choice);
// DESCRIBE ITEM
if (e.getKeyCode() == KeyEvent.VK_D) {
String descInv = invShow(list.getSelectedItem());
c.append("\n" + descInv);
}
if (e.getKeyCode() == KeyEvent.VK_S) {
int numToReplace = 0;
int replacement = 7;
// loop through each nested array
for (int i = 0; i < board.length; i++) {
// loop through each element of the nested array
for (int j = 0; j < board[i].length; j++) {
if (board[i][j] == numToReplace) {
board[i][j] = replacement;
}
}
}
}
// USE
if (e.getKeyCode() == KeyEvent.VK_U) {
// MAP ONE
if (currentMap == 1) {
// OPEN BLOCKED TILES
if (spawnX == 10 && spawnY == 7) {
board[8][10] = 167;
c.append("\nYou opened a door.");
}
}
// MAP ONE
}
// PICK UP
if (e.getKeyCode() == KeyEvent.VK_G) {
// MAP ONE
if (currentMap == 1) {
if (spawnX == 4 && spawnY == 4) {
int xav = board[4][4];
board[4][4] = 7;
drawFlail = false;
try {
anItem.addInv(1);
} catch (Exception ere) {
ere.printStackTrace();
}
}
}
// MAP ONE
if (currentMap == 3) {
if (spawnX == 3 && spawnY == 3) {
int xav = board[3][3];
board[3][3] = 1;
drawBattleaxe = false;
try {
anItem.addInv(2);
} catch (Exception ere) {
ere.printStackTrace();
}
}
}
// MAP ONE
}
try {
if (blocked(spawnX - 1, spawnY) == true && spawnX == mapX) {
left = false;
System.out.println("You can't go left!");
}
if (blocked(spawnX + 1, spawnY) == true && spawnX == 0) {
right = false;
System.out.println("You can't go right!");
}
if (blocked(spawnX, spawnY + 1) == true && spawnX == mapX) {
down = false;
System.out.println("You can't go down!");
}
if (blocked(spawnX, spawnY - 1) == true && spawnX == mapX) {
up = false;
System.out.println("You can't go up!");
}
} catch (ArrayIndexOutOfBoundsException xe) {
xe.printStackTrace();
}
try {
if (blocked(spawnX + 1, spawnY) == true)
right = false;
} catch (ArrayIndexOutOfBoundsException xe) {
System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
}
try {
if (blocked(spawnX - 1, spawnY) == true)
left = false;
} catch (ArrayIndexOutOfBoundsException xe) {
System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
}
try {
if (blocked(spawnX, spawnY + 1) == true)
down = false;
} catch (ArrayIndexOutOfBoundsException xe) {
System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
}
try {
if (blocked(spawnX, spawnY - 1) == true)
up = false;
} catch (ArrayIndexOutOfBoundsException xe) {
System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
}
if (blocked(12, 7) == true && spawnX == mapX && spawnY - 1 == 1 - mapX) {
up = false;
}
int r1 = lastX + 1;
if (lastX > 0) {
r1 = lastX + 1;
} else {
r1 = 0;
}
int r2 = lastY;
int u1 = lastX;
int u2;
if (lastY > 0) {
u2 = lastY - 1;
} else {
u2 = 0;
}
int l1;
if (spawnX > 0) {
l1 = lastX - 1;
} else {
l1 = 0;
}
int l2 = spawnY;
int d1 = lastX;
int d2;
if (lastY > 0) {
d2 = lastY + 1;
} else {
d2 = 0;
}
try {
if (blocked(r1, r2) == true)
right = false; // we cannot go right
if (blocked(u1, u2) == true)
up = false; // we cannot go up
if (blocked(l1, l2) == true)
left = false; // we cannot go left
if (blocked(d1, d2) == true)
down = false; // we cannot go down
} catch (ArrayIndexOutOfBoundsException xe) {
System.out
.println("\n\nFuture block Array Index Out of Bounds Exception!!\n\n");
}
leftMap = 0;
upMap = 0;
rightMap = 0;
downMap = 0;
boolRC = false;
boolLC = false;
boolUC = false;
boolDC = false;
// Border Checks
if (spawnX == mapX && e.getKeyCode() == KeyEvent.VK_RIGHT) {
boolRC = true;
}
if (spawnX == 0 && e.getKeyCode() == KeyEvent.VK_LEFT) {
boolLC = true;
}
if (spawnY == 0 && e.getKeyCode() == KeyEvent.VK_UP) {
boolUC = true;
}
if (spawnY == mapY && e.getKeyCode() == KeyEvent.VK_DOWN) {
boolDC = true;
}
/** MAP SWITCHING **/
/** MAP SWITCHING **/
/** MAP SWITCHING **/
if (currentMap == 1) {
leftMap = 3;
upMap = 2;
rightMap = 4;
downMap = 5;
} else if (currentMap == 4) {
leftMap = 1;
} else if (currentMap == 2) {
downMap = 1;
} else if (currentMap == 3) {
downMap = 1;
}
if (currentMap == 5) {
upMap = 1;
}
if (leftMap == 0 && spawnX == 0)
left = false;
if (rightMap == 0 && spawnX == mapX)
right = false;
if (downMap == 0 && spawnY == mapY)
down = false;
if (upMap == 0 && spawnY == 0)
up = false;
if (e.getKeyCode() == KeyEvent.VK_UP && up == true) {
spawnY = spawnY - 1;
System.out.println("You went up.");
}
if (e.getKeyCode() == KeyEvent.VK_DOWN && down == true) {
spawnY = spawnY + 1;
System.out.println("You went down.");
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT && right == true) {
spawnX = spawnX + 1;
System.out.println("You went right.");
}
if (e.getKeyCode() == KeyEvent.VK_LEFT && left == true) {
spawnX = spawnX - 1;
System.out.println("You went left.");
}
// RIGHT TO LEFT
// LEFT TO RIGHT DONE
if (boolRC == true && right == true) {
spawnX = 0;
lastX = spawnX;
spawnY = spawnY;
board = loadBoard(rightMap);
px = 0;
py = py;
currentMap = rightMap;
}
if (boolLC == true && left == true) {
spawnX = mapX;
lastX = spawnX;
spawnY = spawnY;
board = loadBoard(leftMap);
px = rightSide;
py = py;
currentMap = leftMap;
}
if (boolUC == true && up == true) {
spawnY = mapY;
lastY = spawnY;
spawnX = spawnX;
board = loadBoard(upMap);
px = px;
py = downSide;
currentMap = upMap;
}
if (boolDC == true && down == true) {
spawnY = 0;
lastY = spawnY;
spawnX = spawnX;
board = loadBoard(downMap);
px = px;
py = 0;
currentMap = downMap;
}
/** MAP SWITCHING **/
/** MAP SWITCHING **/
/** MAP SWITCHING **/
String currX = Integer.toString(spawnX);
String currY = Integer.toString(spawnY);
System.out.println("Current/Last Y: " + currY + "/" + lastY);
System.out.println("Current/Last X: " + currX + "/" + lastX + " - "
+ board[spawnY][spawnX] + "\n\n");
if (boolLC == false) {
if (left == true) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
left = true;
px = px - 32;
lastX = lastX - 1;
}
}
} else {
if (leftMap > 0)
px = rightSide;
}
if (boolRC == false) {
if (right == true) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
right = true;
px = px + 32;
lastX = lastX + 1;
}
}
} else {
if (rightMap > 0)
px = 0;
}
if (boolDC == false) {
if (down == true) {
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
down = true;
py = py + 32;
lastY = lastY + 1;
}
}
} else {
if (downMap > 0)
py = 0;
}
if (boolUC == false) {
if (up == true) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
up = true;
py = py - 32;
lastY = lastY - 1;
}
}
} else {
if (upMap > 0)
py = downSide;
}
System.out.println("me.getUsername(): " + me.getUsername());
me = players.get(me.getUsername());
me.setX(px);
me.setY(py);
if (myCommand == "move") {
os.println(me.getUsername() + "|" + px + "|" + py + "|" + currentMap + "|move");
}else if (myCommand == "chat"){
os.println(me.getUsername() + "|1|Hello, world!|yes|chat");
}
me.setCommand(myCommand);
System.out.println("my curernt map! : " + currentMap);
repaint();
}
public void keyReleased(KeyEvent e) {
} // ignore
public void keyTyped(KeyEvent e) {
} // ignore
public void addInv(int e) {
String iname = getItem(e)[0];
String idesc = getItem(e)[1];
int itypeOf = Integer.parseInt(getItem(e)[2]);
int iattackAdd = Integer.parseInt(getItem(e)[3]);
int idefenseAdd = Integer.parseInt(getItem(e)[4]);
boolean icanSell = Boolean.parseBoolean(getItem(e)[5]);
boolean icanEat = Boolean.parseBoolean(getItem(e)[6]);
int iearnedCoins = Integer.parseInt(getItem(e)[7]);
c.append("\nYou picked up a " + iname + ".");
// for (String item : arr) list.add(item);
list.add(iname);
arr.add(iname);
}
public static String invShow(String e) {
String desc = "None";
if (e == "Flail") {
desc = "A crushing blow to the head from this weapon can make BRAIN SLUSHIE!";
}
if (e == "Battleaxe") {
desc = "Holding this weapon will make you smell like a man, man.";
}
return desc;
}
public static String[] getItem(int e) {
String[] stats = new String[7];
String name = "Null";
String desc = "Nonexx";
String typeOf = "0";
String attackAdd = "0";
String defenseAdd = "0";
String canSell = "true";
String canEat = "false";
String earnedCoins = "0";
if (e == 1) {
name = "Flail";
typeOf = "2";
attackAdd = "2";
earnedCoins = "5";
}
if (e == 2) {
name = "Battleaxe";
typeOf = "2";
attackAdd = "4";
earnedCoins = "10";
}
return new String[] { name, desc, typeOf, attackAdd, defenseAdd,
canSell, canEat, earnedCoins };
}
public static void showInventory() {
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
}
public void paint(Graphics g) {
for (row = 0; row < board.length; row++) {
for (col = 0; col < board[row].length; col++) {
int index = board[row][col];
g.drawImage(tiles[index], 32 * col, 32 * row, this);
}
}
try {
for (Player player : players.values()) {
System.out.println("++++++++++++++++++++++++++");
System.out.println("current map: " + player.getMap());
if (player.getUsername() == me.getUsername()) player.setMap(currentMap);
if (player.getUsername() == me.getUsername()) player.setCommand(myCommand);
if (player.getMap() == currentMap) {
g.drawImage(player.getPlayerImage(), player.getX(), player.getY(), this);
}
System.out.println("Command-- " + player.getCommand() + " > " +player.getUsername() + " moved to X:" + player.getX() + " and Y: " + player.getY());
System.out.println("++++++++++++++++++++++++++");
}
} catch (Exception dan) {
System.out.println("No one is on.");
}
// qq
/**
* for(int runx = 0;runx < 10;runx++) { g.drawImage(userImg[runx],
* userPX[runx], userPY[runx], this); }
**/
if (drawFlail == true && currentMap == 1)
g.drawImage(weapon[1], 32 * 4, 32 * 4, this);
if (drawBattleaxe == true && currentMap == 3)
g.drawImage(weapon[0], 32 * 3, 32 * 3, this);
System.out.println(drawFlail);
} // end paint method
public void update(Graphics g) {
paint(g);
}
public int[][] loadBoard(int map) {
if (map == 1) {
return new int[][] {
{ 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 7, 7, 7, 7, 7, 7
},
{ 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6
},
{ 7, 13, 1, 13, 1, 13, 1, 13, 13, 13, 1, 1, 13, 13, 13, 6
},
{ 7, 13, 1, 1, 1, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6
},
{ 7, 13, 13, 1, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6
},
{ 7, 13, 1, 1, 1, 13, 1, 1, 1, 13, 1, 1, 1, 1, 13, 6
},
{ 7, 13, 1, 13, 13, 13, 13, 13, 1, 13, 13, 1, 13, 13, 13, 6
},
{ 7, 13, 1, 1, 13, 13, 13, 1, 1, 13, 13, 1, 13, 13, 13, 6
},
{ 7, 13, 13, 13, 13, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13, 6
},
{ 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 6
},
{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
}
};
}else if (map == 2) {
return new int[][] { { 145, 145, 55, 145, 145, 55, 184, 163, 55, 163, 163, 55, 145, 181, 145, 145
},
{ 145, 13, 145, 145, 166, 166, 166, 163, 163, 13, 13, 13, 13, 13, 13, 145
},
{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 13, 13, 13, 13, 13, 13, 163
},
{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 145, 145, 145, 145, 13, 145
},
{ 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 166, 166, 166, 145, 13, 145
},
{ 145, 13, 13, 163, 163, 95, 163, 145, 13, 145, 166, 166, 166, 145, 13, 145
},
{ 145, 13, 13, 13, 13, 13, 13, 13, 13, 166, 166, 166, 166, 145, 13, 145
},
{ 145, 145, 13, 13, 13, 13, 13, 13, 13, 163, 145, 55, 145, 145, 13, 145
},
{ 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 145
},
{ 145, 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 145
},
{ 145, 145, 145, 145, 145, 145, 13, 13, 13, 13, 13, 145, 145, 145, 145, 145
}
};
}
return board;
}
public boolean blocked(int tx, int ty) {
return BLOCKED_TILES.contains(board[ty][tx]);
}
public boolean isInBound(int r, int c) {
return (r >= 0) && (r < 8) && (c >= 12) && (c < 1);
}
} // end whole thing3
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
no its because the listener access the member var, but in init you set a local var. So the game member var never gets set
ASKER
what is the difference between the member and local var?
relates to the scope (among other things)
http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html
http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html
ASKER
I am guessing I get that error because when I click on the game... the init() hasn't run? :P