Advertisement
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class ServerConnection
{
public PrintWriter outToServer;
public BufferedReader inFromServer ;
private Socket clientSocket;
public void connect(String host, int port) throws IOException
{
clientSocket = new Socket(host, port);
inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
outToServer = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
}
public char[][] look() throws IOException {
sendCommand("LOOK");
char[][] lookResponse = new char[5][];
for (int i=0; i<5; i++) {
String line = inFromServer.readLine();
System.out.println(line);
lookResponse[i] = line.toCharArray();
}
return lookResponse;
}
private void sendCommand(String string) {
System.out.println("Sending "+string);
outToServer.println(string);
}
}
public class Client extends JFrame {
private static final long serialVersionUID = -3054541431624115776L;
private Socket clientSocket;
static MyBoard myBoard;
public Container contentPane;
ServerConnection newConn = new ServerConnection();
public Client() throws UnknownHostException, IOException {
setTitle("Labyrinth");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
String hostname = "localhost";
int portNumber = 4455;
clientSocket = new Socket(hostname, portNumber);
setSize(900,800);
myBoard = new MyBoard("Images/Blank.jpg",10,10,10,10, 60,60);
myBoard.setNoOfTiles(10000); // Total number of tiles
contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
JScrollPane jsp = new JScrollPane(myBoard);
contentPane.add("Center", jsp);
//Buttons
JButton goUpButton = new JButton("Up");
JButton goDownButton = new JButton("Down");
JButton goLeftButton = new JButton("Left");
JButton goRightButton = new JButton("Right");
//ActionListener for buttons
goUpButton.addActionListener(myBoard);
goDownButton.addActionListener(myBoard);
goLeftButton.addActionListener(myBoard);
goRightButton.addActionListener(myBoard);
contentPane.add("West",goLeftButton);
contentPane.add("East",goRightButton);
contentPane.add("North",goUpButton);
contentPane.add("South", goDownButton);
setVisible(true);
char[][] lookResponse = newConn.look();
int mapHeight = lookResponse.length;
int idmap = 1;
for(int a=0;a<mapHeight;a++)
{
for(int b=0;b<lookResponse[a].length;b++)
{
switch(lookResponse[a][b])
{
case 'X': myBoard.setTile(++idmap,b,a,"Images/questionmark.jpg") ; break;
case '#': myBoard.setTile(++idmap,b,a,"Images/wall.jpg") ; break;
case '.': myBoard.setTile(++idmap,b,a,"Images/floor.jpg") ; break;
case 'E': myBoard.setTile(++idmap,b,a,"Images/exit.jpg") ; break;
case 'G': myBoard.setTile(++idmap,b,a,"Images/gold.jpg") ; break;
case 'H': myBoard.setTile(++idmap,b,a,"Images/health.jpg"); break;
case 'S': myBoard.setTile(++idmap,b,a,"Images/sword.jpg") ; break;
case 'A': myBoard.setTile(++idmap,b,a,"Images/armour.jpg"); break;
case 'L': myBoard.setTile(++idmap,b,a,"Images/lantern.jpg"); break;
case 'P': myBoard.setTile(++idmap,b,a,"Images/player.jpg") ; break;
}
repaint();
}
repaint();
}
repaint();
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
JMenu sendCommand = new JMenu("Command");
menuBar.add(fileMenu);
menuBar.add(sendCommand);
JMenuItem openAction = new JMenuItem("Load new map");
JMenuItem exitAction = new JMenuItem("Exit");
JMenuItem sendcmd = new JMenuItem("Send command");
setVisible(true);
sendCommand.add(sendcmd);
fileMenu.add(openAction);
fileMenu.addSeparator();
fileMenu.add(exitAction);
openAction.setActionCommand("open");
openAction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
}});
exitAction.setActionCommand("exit");
exitAction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}});
sendcmd.setActionCommand("sendcmd");
sendcmd.addActionListener(new DialogSender());
setVisible(true);
}//end of constructor
public static void main(String[] args){
try {
new Client();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
class DialogSender implements ActionListener {
public void actionPerformed(ActionEvent ae) {
PrintWriter outToServer = null;
try {
outToServer = new PrintWriter(new OutputStreamWriter(
clientSocket.getOutputStream()));
String sentence = JOptionPane.showInputDialog("Send a command:");
if (sentence!=null && sentence.trim().length()>0){
/* send the sentence to the server */
outToServer.println(sentence);
}
outToServer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
} catch (Exception e) {
}
}
}
}
}
|
|
[x]
The Solution Rating System
|
||
|
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
|
Loading Advertisement... |