import java.io.*; import java.net.*; class Kasutaja extends Thread{ BufferedReader sisse; Writer valja; String kasutajanimi="nimetu"; double x=10; double y=100; double z=0; double sammupikkus=2; double nurk=0; final double nurgavahe=Math.PI/6; double vx=1; double vy=0; public Kasutaja(Socket sc){ try{ sisse=new BufferedReader(new InputStreamReader(sc.getInputStream())); valja=new OutputStreamWriter(sc.getOutputStream()); start(); } catch(Exception ex){ ex.printStackTrace(); } } void arvutaKiirused(){ vx=sammupikkus*Math.cos(nurk); vy=-sammupikkus*Math.sin(nurk); } void vasakule(){ nurk-=nurgavahe; arvutaKiirused(); } void paremale(){ nurk+=nurgavahe; arvutaKiirused(); } void yles(){ z+=1; } void alla(){ z-=1; } void samm(){ if(Syda.kysiSyda().kasTohibMinna((int)(x+vx), (int)(y+vy))){ x+=vx; y+=vy; } else { vx=0; vy=0; } } int kysiX(){ return (int)x; } int kysiY(){ return (int)y; } int kysiZ(){ return (int)z; } double kysiNurk(){ return nurk; } public void run(){ try{ do{ valja.write("palun kasutajanimi\n"); valja.flush(); kasutajanimi=sisse.readLine(); }while(!Syda.kysiSyda().lisaKasutaja(this)); valja.write("Tere tulemast, "+kasutajanimi+"\n"); valja.flush(); arvutaKiirused(); }catch(Exception ex){ ex.printStackTrace(); } } String kysiKasutajaNimi(){ return kasutajanimi; } }