02. maj 2003 - 10:20Der er
18 kommentarer og 1 løsning
Forklaringer af en kode...
Heysa, jeg ville høre om der var nogle der har tid til at beskrive hele min kode i java om til normale ord, hva er det der sker osv ... Jeg har ikke tid til selv at gøre det, så det hjælper ikke så meget med links til hvor jeg kan få hjælp... På forhånd tak... Hilsen Rosgaard
Her kommer den:
import java.applet.Applet; import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class ticc extends Applet implements MouseListener, ActionListener { public ticc() { nn = 0; state = new int[9]; p = new Point[9]; b = new Button("Nyt spil"); addMouseListener(this); player1 = 0; player2 = 0; draw = 0; } public void init() { for(int i = 0; i < state.length; i++) p[i] = new Point(50 + (i / 3) * 60, (i % 3) * 60 + 50); for(int j = 0; j < state.length; j++) state[j] = 0; b.addActionListener(this); add(b); } public void paint(Graphics g) { g.drawLine(20, 140, 200, 140); g.drawLine(20, 80, 200, 80); g.drawLine(140, 20, 140, 200); g.drawLine(80, 20, 80, 200); for(int i = 0; i < 9; i++) switch(state[i]) { case 1: // '\001' g.setColor(Color.black); g.drawLine(p[i].x - 20, p[i].y - 20, p[i].x + 20, p[i].y + 20); g.drawLine(p[i].x + 20, p[i].y - 20, p[i].x - 20, p[i].y + 20); break; case 2: // '\002' g.setColor(Color.white); g.drawOval(p[i].x - 25, p[i].y - 25, 50, 50); break; } if(hasWon(1)) { showMessage("Spiller 1 har vundet!"); player1++; } else if(hasWon(2)) { showMessage("Spiller 2 har vundet!"); player2++; } else if(uafgjort()) { showMessage("Spillet endte uafgjort!"); draw++; } g.setColor(Color.black); g.drawString("Statistik:", 0, 225); g.drawString("Player1: " + player1, 0, 245); g.drawString("Player2: " + player2, 0, 265); g.drawString("Uafgjorte: " + draw, 0, 285); } public void mousePressed(MouseEvent mouseevent) { Point point = mouseevent.getPoint(); for(int i = 0; i < state.length; i++) if(point.distance(p[i]) < 20D && state[i] == 0) { state[i] = nn % 2 + 1; nn++; } repaint(); } public void actionPerformed(ActionEvent actionevent) { if(actionevent.getSource() == b) reset(); } private void reset() { for(int i = 0; i < state.length; i++) state[i] = 0; repaint(); } private boolean hasWon(int i) { return state[0] == i && state[3] == i && state[6] == i || state[1] == i && state[4] == i && state[7] == i || state[2] == i && state[5] == i && state[8] == i || state[0] == i && state[1] == i && state[2] == i || state[3] == i && state[4] == i && state[5] == i || state[6] == i && state[7] == i && state[8] == i || state[0] == i && state[4] == i && state[8] == i || state[2] == i && state[4] == i && state[6] == i; } private boolean uafgjort() { boolean flag = true; for(int i = 0; i < state.length; i++) { if(state[i] != 0) continue; flag = false; break; } return flag; } private void showMessage(String s) { JOptionPane.showMessageDialog(this, s, "F\346rdig", 1); reset(); } public void mouseReleased(MouseEvent mouseevent) { } public void mouseClicked(MouseEvent mouseevent) { } public void mouseEntered(MouseEvent mouseevent) { } public void mouseExited(MouseEvent mouseevent) { } private int nn; private int state[]; private Point p[]; private Button b; private int player1; private int player2; private int draw; }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Skriv noget ved spørgsmålstegene og sæt nogen kommentarer ind de vigtige steder i koden og så burde koden være dokumenteret:
import java.applet.Applet; import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class ticc extends Applet implements MouseListener, ActionListener { /** * Construct object and initialize member variabels. */ public ticc() { nn = 0; state = new int[9]; p = new Point[9]; b = new Button("Nyt spil"); addMouseListener(this); player1 = 0; player2 = 0; draw = 0; }
/** * Special applet initialzation metode. */ public void init() { for(int i = 0; i < state.length; i++) p[i] = new Point(50 + (i / 3) * 60, (i % 3) * 60 + 50); for(int j = 0; j < state.length; j++) state[j] = 0; b.addActionListener(this); add(b); }
/** * Eventhandler called whenever mopuse is pressed * @param mouseevent */ public void mousePressed(MouseEvent mouseevent) { Point point = mouseevent.getPoint(); for(int i = 0; i < state.length; i++) if(point.distance(p[i]) < 20D && state[i] == 0) { state[i] = nn % 2 + 1; nn++; } repaint(); }
/** * Eventhandler called whenever button is pressed. * @param actionevent */ public void actionPerformed(ActionEvent actionevent) { if(actionevent.getSource() == b) reset(); }
/* * Reset board to start again. */ private void reset() { for(int i = 0; i < state.length; i++) state[i] = 0; repaint(); }
/* * Check if player has won. * @return true/false */ private boolean hasWon(int i) { return state[0] == i && state[3] == i && state[6] == i || state[1] == i && state[4] == i && state[7] == i || state[2] == i && state[5] == i && state[8] == i || state[0] == i && state[1] == i && state[2] == i || state[3] == i && state[4] == i && state[5] == i || state[6] == i && state[7] == i && state[8] == i || state[0] == i && state[4] == i && state[8] == i || state[2] == i && state[4] == i && state[6] == i; }
/* * Check if draw. * @return true/false */ private boolean uafgjort() { boolean flag = true; for(int i = 0; i < state.length; i++) { if(state[i] != 0) continue; flag = false; break; } return flag; }
public void init() { // place all 9 points where marks can be made for(int i = 0; i < state.length; i++) p[i] = new Point(50 + (i / 3) * 60, (i % 3) * 60 + 50); // set all 9 positions to empty for(int j = 0; j < state.length; j++) state[j] = 0; // add action listener to handle click on "Nyt spil" button b.addActionListener(this); // add button to GUI add(b); }
Jeg har ikke modtaget nogen email - fandt du ud af det eller ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.