import java.io.*; import java.net.*; public class server { static int[][] kaart=new int[20][20]; public static void main(String argumendid[]) throws IOException { for (int i=0;i<20;i++) { kaart[4][i]=2; // 0 - ei ole tee kaart[i][1]=2; // 1 - teine auto kaart[8][i]=2; // 2 - tee vaba kaart[18][i]=2; // 3 - ristmik kaart[i][13]=2; } kaart[4][1]=3; kaart[8][1]=3; kaart[18][1]=3; kaart[8][13]=3; kaart[4][13]=3; kaart[18][13]=3; ServerSocket ss=new ServerSocket(3001); while(true) { new kliendiloim(ss.accept()); } } } class kliendiloim extends Thread { Socket pesa; public kliendiloim(Socket uus_pesa) { pesa=uus_pesa; start(); } public String saada() { String puhver=""; for (int i=0; i<20; i++) { for (int u=0;u<20;u++) { puhver+=server.kaart[u][i]; } } return puhver; } public boolean kastohib(int kuhu,int asukohtx,int asukohty,int mitmessamm,int olivarem) { boolean kas_lubada=false; switch(kuhu) { case 1: if ((asukohtx<19) && (server.kaart[asukohtx+1][asukohty]>1)) {kas_lubada=true;} else {kas_lubada=false;} break; case 2: if ((asukohtx>0) && (server.kaart[asukohtx-1][asukohty]>1)) {kas_lubada=true;} else {kas_lubada=false;} break; case 3: if ((asukohty>0) && (server.kaart[asukohtx][asukohty-1]>1)) {kas_lubada=true;} else {kas_lubada=false;} break; case 4: if ((asukohty<19) && (server.kaart[asukohtx][asukohty+1]>1)) {kas_lubada=true;} else {kas_lubada=false;} break; } if ((kas_lubada==true) && (olivarem==3) && (mitmessamm>0)) { kas_lubada=false; } return kas_lubada; } public void run() { System.out.println("Kyljes"); if (server.kaart[0][1]==2) { try { PrintWriter valja=new PrintWriter(pesa.getOutputStream(), true); BufferedReader sisse=new BufferedReader ( new InputStreamReader(pesa.getInputStream()) ); boolean kestab=true; int asukohtx=0; int asukohty=1; int olivarem=2; server.kaart[asukohtx][asukohty]=1; while (kestab) { String suund=sisse.readLine(); int mitmessamm=0; if (suund.equals("p")) { while (kastohib(1,asukohtx,asukohty,mitmessamm,olivarem)) { mitmessamm++; server.kaart[asukohtx][asukohty]=olivarem; asukohtx++; olivarem=server.kaart[asukohtx][asukohty]; server.kaart[asukohtx][asukohty]=1; String puhver=saada(); valja.println(puhver); try{Thread.sleep(500);}catch(Exception e){} } } if (suund.equals("v")) { while (kastohib(2,asukohtx,asukohty,mitmessamm,olivarem)) { mitmessamm++; server.kaart[asukohtx][asukohty]=olivarem; asukohtx--; olivarem=server.kaart[asukohtx][asukohty]; server.kaart[asukohtx][asukohty]=1; String puhver=saada(); valja.println(puhver); try{Thread.sleep(500);}catch(Exception e){} } } if (suund.equals("y")) { while (kastohib(3,asukohtx,asukohty,mitmessamm,olivarem)) { mitmessamm++; server.kaart[asukohtx][asukohty]=olivarem; asukohty--; olivarem=server.kaart[asukohtx][asukohty]; server.kaart[asukohtx][asukohty]=1; String puhver=saada(); valja.println(puhver); try{Thread.sleep(500);}catch(Exception e){} } } if (suund.equals("a")) { while (kastohib(4,asukohtx,asukohty,mitmessamm,olivarem)) { mitmessamm++; server.kaart[asukohtx][asukohty]=olivarem; asukohty++; olivarem=server.kaart[asukohtx][asukohty]; server.kaart[asukohtx][asukohty]=1; String puhver=saada(); valja.println(puhver); try{Thread.sleep(500);}catch(Exception e){} } } if ((asukohtx==18) && (asukohty==13)) { valja.println("Sinu Voit"); kestab=false; } } pesa.close(); } catch(Exception e) { System.out.println("Probleem: "+e); } } } }