import java.io.*; import java.net.*; import java.util.Vector; public class laevaserv { public static Vector kasutajad=new Vector(); public static int valmis=0; public static boolean mang=false; public static int[] laud1=new int[100]; public static int[] laud2=new int[100]; public static void main(String argumendid[]) throws IOException{ ServerSocket ss=new ServerSocket(22222); while(true){ if (kasutajad.size()<3)kasutajad.add(new LaevaLoim(ss.accept())); } } } class LaevaLoim extends Thread{ int kes=laevaserv.kasutajad.size()+1; public boolean veel=true; Socket sc; PrintWriter valja; BufferedReader sisse; public LaevaLoim(Socket uus_sc){ try{ sc=uus_sc; valja=new PrintWriter(sc.getOutputStream(), true); sisse=new BufferedReader( new InputStreamReader(sc.getInputStream()) ); start(); }catch(Exception e){e.printStackTrace();} } public void run(){ veel=true; try{ while(veel){ String rida=sisse.readLine(); System.out.println(""+rida); if (rida.equals("valmis")){ laevaserv.valmis++; if (laevaserv.valmis==2){ ((LaevaLoim)laevaserv.kasutajad.elementAt(0)).valja.println("k"); laevaserv.mang=true; } }else{ int koht=Integer.parseInt(rida); if (laevaserv.mang){ Kontrolli(kes,koht); } else Lisa(kes,koht); } } }catch(Exception e){e.printStackTrace();} laevaserv.kasutajad.remove(sc); } void Kontrolli(int kes,int koht){ switch(kes){ case 1: ((LaevaLoim)laevaserv.kasutajad.elementAt(0)).valja.println(""+koht); ((LaevaLoim)laevaserv.kasutajad.elementAt(1)).valja.println(""+koht); if (laevaserv.laud2[koht]!=2) { ((LaevaLoim)laevaserv.kasutajad.elementAt(0)).valja.println("m"); ((LaevaLoim)laevaserv.kasutajad.elementAt(1)).valja.println("k"); } laevaserv.laud2[koht]++; break; case 2: ((LaevaLoim)laevaserv.kasutajad.elementAt(1)).valja.println(""+koht); ((LaevaLoim)laevaserv.kasutajad.elementAt(0)).valja.println(""+koht); if (laevaserv.laud1[koht]!=2){ ((LaevaLoim)laevaserv.kasutajad.elementAt(1)).valja.println("m"); ((LaevaLoim)laevaserv.kasutajad.elementAt(0)).valja.println("k"); } laevaserv.laud1[koht]++; break; } boolean l2bi=true; for (int i=0;i<100 ;i++){ if (laevaserv.laud1[i]==2)l2bi=false; if (laevaserv.laud2[i]==2)l2bi=false; } if (l2bi)veel=false; } void Lisa (int kes, int koht){ switch(kes){ case 1: laevaserv.laud1[koht]=2; break; case 2: laevaserv.laud2[koht]=2; break; } } }