mirror of
				https://github.com/lov3b/Schack.git
				synced 2025-10-31 05:10:22 +01:00 
			
		
		
		
	det fungerar!
This commit is contained in:
		| @@ -1,11 +1,13 @@ | ||||
| package com.billenius.schack.boards; | ||||
|  | ||||
| import java.io.EOFException; | ||||
| import java.io.IOException; | ||||
| import java.io.ObjectInputStream; | ||||
| import java.io.ObjectOutputStream; | ||||
| import java.net.Inet4Address; | ||||
| import java.net.ServerSocket; | ||||
| import java.net.Socket; | ||||
| import java.net.SocketTimeoutException; | ||||
| import java.util.Random; | ||||
| import java.awt.BorderLayout; | ||||
| import java.awt.Dimension; | ||||
| @@ -21,12 +23,12 @@ import com.billenius.schack.Move; | ||||
| import com.billenius.schack.SchackState; | ||||
| import com.billenius.schack.pieces.Piece; | ||||
|  | ||||
| public final class NetworkBoard extends Board { | ||||
| public final class NetworkBoard extends Board implements Runnable { | ||||
|     private final Socket socket; | ||||
|     private ServerSocket serverSocket = null; | ||||
|     private final ObjectInputStream inputStream; | ||||
|     private final ObjectOutputStream outputStream; | ||||
|  | ||||
|     private final Thread inputListener; | ||||
|     private Boolean myColor = null; | ||||
|  | ||||
|     public NetworkBoard(DefaultListModel<Move> listModel) throws IOException { | ||||
| @@ -86,6 +88,8 @@ public final class NetworkBoard extends Board { | ||||
|             System.out.println("Getting inputstream"); | ||||
|             inputStream = new ObjectInputStream(socket.getInputStream()); | ||||
|         } | ||||
|         inputListener = new Thread(this); | ||||
|         inputListener.start(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -94,8 +98,11 @@ public final class NetworkBoard extends Board { | ||||
|             turnCount++; | ||||
|             moveList.addElement(move); | ||||
|             move.movedPiece.move(pieces, move.to); | ||||
|             System.out.println("repainting"); | ||||
|             getParent().repaint(); | ||||
|             System.out.println("Sending move to opponent"); | ||||
|             outputStream.writeObject(move); | ||||
|             System.out.println("Move sent"); | ||||
|  | ||||
|             SchackState state = getSchackState(); | ||||
|             switch (state) { | ||||
| @@ -117,14 +124,6 @@ public final class NetworkBoard extends Board { | ||||
|                     break; | ||||
|                 default: | ||||
|             } | ||||
|  | ||||
|             move = (Move) inputStream.readObject(); | ||||
|             moveList.addElement(move); | ||||
|             turnCount++; | ||||
|  | ||||
|             System.out.println(move); | ||||
|             pieces[move.from.x][move.from.y].move(pieces, move.to); | ||||
|             getParent().repaint(); | ||||
|         } catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
| @@ -151,4 +150,27 @@ public final class NetworkBoard extends Board { | ||||
|             validMovesToDraw.addAll(selectedPiece.validMoves(pieces, true)); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void run() { | ||||
|         try { | ||||
|             while (true) { | ||||
|                 Move move = (Move) inputStream.readObject(); | ||||
|                 System.out.println("Got move"); | ||||
|                 moveList.addElement(move); | ||||
|                 turnCount++; | ||||
|  | ||||
|                 System.out.println("Moving piece"); | ||||
|                 pieces[move.from.x][move.from.y].move(pieces, move.to); | ||||
|                 System.out.println("Repainting"); | ||||
|                 getParent().repaint(); | ||||
|             } | ||||
|         } catch (EOFException eof) { | ||||
|             JOptionPane.showMessageDialog(this, "Lost connection to opponent"); | ||||
|         } catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|             JOptionPane.showMessageDialog(this, e); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user