import java.awt.*; import java.applet.Applet; import java.net.*; import java.io.*; import java.util.*; public class Piskvorky extends Applet { Point rozmer; int[][] hraciPole; Papir papir; Pocitac pocitac; Panel vysledky; Label vysLab; Button vysTlac; Button vysNastav; Button vysEnter; TextField vysJmeno; Label vysPopis; Label vysZprava; int stav; // 0..ceka se na stisk "Zacni"; 1..hraje se boolean zacinaPocitac; Point highlighted = null; public void init () { String hx = getParameter("RX"); String hy = getParameter("RY"); int rx = (hx==null)?20:Integer.valueOf(hx).intValue(); int ry = (hy==null)?20:Integer.valueOf(hy).intValue(); rozmer = new Point(rx,ry); hraciPole = new int[rozmer.x][]; for (int i = 0; i=rozmer.x || y>=rozmer.y) return false; PrijmacPapiru(new Point(x,y)); return false; } /** * ukaze udany vysledkovy panel * 0 - talcitka * 1 - vstup jmena viteze * 2 - zprava */ void zobrazVysledky(int i) { vysledky.removeAll(); switch(i) { case 0: vysledky.add(vysTlac); vysledky.add(vysLab); vysledky.add(vysNastav); break; case 1: vysledky.add(vysPopis); vysledky.add(vysJmeno); vysledky.add(vysEnter); break; case 2: vysledky.add(vysZprava); break; } vysledky.validate(); } /** * odesle jmeno viteze na bimbo */ void odesliJmeno(String jm) { try { // System.out.println("komunikuje se"); /*/ Date d = new Date(); InetAddress lh = InetAddress.getLocalHost(); String lhn = "???"; if (lh != null) { lhn = lh.getHostName(); if (lhn == null) { lhn = lh.getHostAddress(); } } String s = d.toString() + " " + lhn + " " + jm; */ String s = jm; URL url = new URL("http://bimbo.fjfi.cvut.cz/~mira/cgi/loger.cgi"); URLConnection connection = url.openConnection(); connection.setDoOutput(true); // PrintWriter out = new PrintWriter(connection.getOutputStream()); PrintStream out = new PrintStream(connection.getOutputStream()); out.println(s); out.close(); DataInputStream in = new DataInputStream(connection.getInputStream()); String inputLine; try { while ((inputLine = in.readLine()) != null) System.out.println(inputLine); } catch (Exception e) {} in.close(); // System.out.println("dokomunikovalo se"); } catch (Exception e) { System.out.println(e.toString()); vysLab.setText("Chyba spojeni "); } } } class Papir extends Canvas { Piskvorky piskvorky; Point rozmer; int[][] hraciPole; public Papir(Piskvorky pis) { piskvorky = pis; rozmer = pis.rozmer; hraciPole = pis.hraciPole; setBackground( Color.white); } public void paint(Graphics g) { Dimension s = size(); Dimension cs = new Dimension(s.width / rozmer.x, s.height / rozmer.y); g.setColor( Color.black ); for (int i=1; imaxHod && hraciPole[i][j]==0) { maxHod = hodPole[i][j]; pMaxHod.x = i; pMaxHod.y=j; } if (fProhra) { System.out.println("Prohra"); int x=pProhra.x, y=pProhra.y; for (int k = 0; k<5; k++) { hraciPole[x][y]=2+4; //pak vyrazna 2 x+=sProhra.x; y+=sProhra.y; } piskvorky.papir.repaint(); return 2; } if (fVyhra) { System.out.println("Vyhra"); int x=pVyhra.x, y=pVyhra.y; for (int k = 0; k<5; k++) { hraciPole[x][y]=1+4; //pak vyrazna 1 x+=sVyhra.x; y+=sVyhra.y; } piskvorky.papir.repaint(); return 1; } System.out.println("Pocitac hraje ("+pMaxHod.x+","+pMaxHod.y+")"); piskvorky.vysLab.setText("Hraju ["+pMaxHod.x+","+pMaxHod.y+"]"); hraciPole[pMaxHod.x][pMaxHod.y]=1; // zvyrazneni posledniho tahu piskvorky.highlighted = new Point(pMaxHod.x, pMaxHod.y); hraciPole[piskvorky.highlighted.x][piskvorky.highlighted.y] |= 8; piskvorky.papir.repaint(); return 0; } void hodSmer(int bx, int ay, int by, int sx, int sy) { for (int i = 0; i