[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Java Client Applet - if / else statement

Posted on 2010-08-13
22
Medium Priority
?
368 Views
Last Modified: 2012-05-10
Ok so this has been bugging me for over 4 hours. Well through a period of 4 hours.

Anyway, I get a new update in the player class which updates or gets the player's current command. Right now it's either chat or move.

One problem I have is that when a user clicks on the menu to chat (its just a place holder for now).. it will say the following.
weka clicks menu to chat
weka's chat screen says:
Dan|weka|Dan
Dan says: Hello, world!
weka|weka|weka
weka 44says: Hello, world!

Open in new window


As you can see, what is wrong with this is that Dan did NOT say Hello world but rather weka did.

If you look over on Dan's screen it says:
weka says: Hello, world!

As you can see that is fine output. But here's the thing... the else if statemetns are going to and not doing their job... just take a look at this code:

this is to iniate the chat
	public void mouseClicked(MouseEvent e) {
		if (e.getClickCount() == 2) {
			myCommand = "chat";
			c.append("\nDouble clicked on " + list.getSelectedItem());
			os.println(username + "|1|Hello, world!|yes|chat");
		}

	}

Open in new window


Then under
while ((responseLine = in.readLine()) != null) {

Open in new window

I have
if ("chat".equalsIgnoreCase(temp[4])) {

sendMsg(temp[0], temp[2], player.getUsername());
// incoming username, their chat message, the name of the current while-loop of the player
}

Open in new window


and in the sendMsg method I have:

	public void sendMsg(String e, String msg, String getUser) {

c.append("\n" + e + "|"+username +"|"+getUser);
if (username != getUser) {

		c.append("\n" + getUser + " says: " + msg);
}else{
		c.append("\n" + username + " 44says: " + msg);
}
	}

Open in new window


So, as you can see.. it's really a boggle of how this error is going through. Can you help me fix it? :|

Thank you.

tileGen
/**
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.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;

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 username;
	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";

	// 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();
		JPanel game = new JPanel();
		JPanel banner = new JPanel();

		add(game, BorderLayout.CENTER);
		add(c, BorderLayout.SOUTH);
		// add(banner, BorderLayout.NORTH);

		/**
		 * 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);

		add(list, BorderLayout.EAST);

		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;

		this.setFocusable(true);

		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);
	            // username = "Guest #" + roll.nextInt(110);
	            username = getParameter("name");
	            c.append("$$$$Welcome to the game, " + username);

	            Player player = new Player();
	            player.setUsername(username);
	            player.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
	            player.setX(256);
	            player.setY(256);
	            player.setMap(1);
	            player.setCommand("move");
	            players.put(username, player);

	            repaint();

	            System.out.println(username + " was added. player: " + player);
	                os.println(player.getUsername() + "|" + player.getX() + "|" + player.getY() + "|" + player.getMap() + "|" + player.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) {
		if (e.getClickCount() == 2) {
			myCommand = "chat";
			c.append("\nDouble clicked on " + list.getSelectedItem());
			os.println(username + "|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) {
		os.println("You said: NO TEXT YET - :(");
	}

	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;
				//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]);
System.out.println(temp[0] + " == " + username);
if ("chat".equalsIgnoreCase(temp[4])) {

sendMsg(temp[0], temp[2], player.getUsername());

}


				if (player == null) {
				System.out.println("player not found, adding!");
				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" + e + "|"+username +"|"+getUser);
if (username != getUser) {

		c.append("\n" + getUser + " says: " + msg);
}else{
		c.append("\n" + username + " 44says: " + 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;
		}

				Player player = players.get(username);
				player.setX(px);
player.setY(py);

if (myCommand == "move") {
		os.println(username + "|" + px + "|" + py + "|" + currentMap + "|move");
	}else if (myCommand == "chat"){
		os.println(username + "|1|Hello, world!|yes|chat");
	}

	player.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() == username) player.setMap(currentMap);
				if (player.getUsername() == username) 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

Open in new window

0
Comment
Question by:UrbanTwitch
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 11
  • 9
  • 2
22 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 33427765
>>if (username != getUser) {

should be

if (!username.equals(getUser)) {

Open in new window

0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33427782
That looks promising ... but I am still geting the same messages. That did not do anything. But thanks for the try.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 33427804
Make sure you're running recompiled code
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 92

Expert Comment

by:objects
ID: 33427820
you shouldn't need that if/else at all. just use the username from the player
0
 
LVL 92

Expert Comment

by:objects
ID: 33427848
>       public static String username;

worth getting rid of that, and instead use the Player instance ofr the current player

     private Player me;

you can initialise me in playerLogin()


           public void playerLogin() throws IOException {

                  Random roll = new Random();
                  int newNo = roll.nextInt(200);
                  // username = "Guest #" + roll.nextInt(110);
                  String username = getParameter("name");
                  c.append("$$$$Welcome to the game, " + username);

                  me = new Player();
                  mer.setUsername(username);
                  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(username + " was added. player: " + player);
                      os.println(player.getUsername() + "|" + player.getX() + "|" + player.getY() + "|" + player.getMap() + "|" + player.getCommand());

                  attack = 4;
                  defense = 5;
                  gold = 542;
                  level = 1;
                  exp = 53;

      }
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33432397
If I get rid of the username string... a LOT will be wrong.

besides in the code you just gave me .. .it uses the username string ... i don't know if you caught that. :P
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33432447
@CEHJ - Oh, I did. It looks like that should of work... but it did not. :(
0
 
LVL 92

Expert Comment

by:objects
ID: 33433974
> If I get rid of the username string... a LOT will be wrong.

like what?

> besides in the code you just gave me .. .it uses the username string ... i don't know if you caught that. :P


It uses the username string, but the value comes from the player
The username member var is not needed
0
 
LVL 92

Expert Comment

by:objects
ID: 33434090
> but the value comes from the player

thats not correct, what I meant to say was its a local var.
My point is that the username does not need to be a member var
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434262
The username variable in tileGen is the client side's username... so what do I do with it?
0
 
LVL 92

Expert Comment

by:objects
ID: 33434276
remove it and instead use the Player object (me.getUsername())
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434285
All that the username does is used to set and put the player from the client.
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434290
Ok. But I'll just set username = me.getUsername();
That look right?
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434297
I suppose I'll need to change
 os.println(player.getUsername() + "|" + player.getX() + "|" + player.getY() + "|" + player.getMap() + "|" + player.getCommand());

to
me.getX, me.getUsernaem, etc... hehe :P
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434310
OK so I did that and I get this whenever I move.

(this is from the tileGen console)
run() still going..
true
true
true
true
true
true
true
true
true
true
true
weka was added. player: Player@595e2ccd
++++++++++++++++++++++++++
current map: 1
Command-- move > weka moved to X:256 and Y: 256
++++++++++++++++++++++++++
true
++++++++++++++++++++++++++
current map: 1
Command-- move > weka moved to X:256 and Y: 256
++++++++++++++++++++++++++
true
PRESSEDmove
You went left.
Current/Last Y: 6/6
Current/Last X: 9/10 - 13


Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
        at tileGen.keyPressed(tileGen.java:777)
        at java.awt.Component.processKeyEvent(Component.java:6225)
        at java.awt.Component.processEvent(Component.java:6044)
        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.KeyboardFocusManager.redispatchEvent
(KeyboardFocusManager.java:1850)

current map: 1  at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Default
KeyboardFocusManager.java:712)

Command-- move > weka moved to X:256 and Y: 256 at java.awt.DefaultKeyboardFocus
Manager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)

++++++++++++++++++++++++++      at java.awt.DefaultKeyboardFocusManager.typeAhea
dAssertions(DefaultKeyboardFocusManager.java:855)

true    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
usManager.java:676)

        at java.awt.Component.dispatchEventImpl(Component.java:4502)
        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)


This is line 777 in tileGen: player.setX(px);

From this peice of code:
                        Player player = players.get(username);
                        player.setX(px);
player.setY(py);

What exactly would do this (when it works)?
0
 
LVL 92

Expert Comment

by:objects
ID: 33434357
you now have the current player details in the me variable
so you don't need to lookup the player anymore and that code becomes just:

me.setX(px);
me.setY(py);
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434358
The reason is that something somewhere the String username is being set to null. But yeah, I'll try tht.
0
 
LVL 92

Expert Comment

by:objects
ID: 33434384
you should not need a string username, the me var contains all the details of the current user
all the redundant vars you have introduce errors as they don't get updated correctly
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434445
So I should remove the setX(px) and setY(py)
and replace all isntance of username with me.getUsername()?
0
 
LVL 92

Accepted Solution

by:
objects earned 2000 total points
ID: 33434466
> So I should remove the setX(px) and setY(py)

no you still need that

> and replace all isntance of username with me.getUsername()?

correct

basically the me var will contain all the details for the user. So you don't need other (member) vars storing the same details
0
 
LVL 5

Author Comment

by:UrbanTwitch
ID: 33434483
and I leave this part alone, correct?

      public Player getPlayer(String username) {
            return players.get(username);
      }

no need to change anything there.
0
 
LVL 92

Expert Comment

by:objects
ID: 33434490
yes thats fine
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question