Forever Опубликовано 24 марта, 2010 Жалоба Поделиться Опубликовано 24 марта, 2010 пишу курсовую, по Jave сильно не шарюнужно сделать описание классов и методов| Author: Kong-Kat Wong ([email protected]) |\* Date 1-19-1996 *///be bear with my codes, considering it's my first Java applet!import java.awt.*;import java.applet.*;import java.util.*;public class Tower extends Applet { TowerPanel panel; TowerControl control; public void init() { resize(500,450); setLayout(new BorderLayout()); panel = new TowerPanel(); add("Center", panel); add("South", control = new TowerControl(panel)); } public void start() { panel.start(); } public void stop() { panel.stop(); } public boolean action(Event evt, Object arg) { if (arg instanceof Boolean) { if (((Checkbox)evt.target).getLabel().equals("Reset")) { panel.reset = ((Boolean)arg).booleanValue(); } else { panel.reset = ((Boolean)arg).booleanValue(); } return true; } return false; }}class Towering { int num_rings[] = new int[3]; int top_size[] = new int[3]; public Towering(int a){ num_rings[0] = a; num_rings[1] = 0; num_rings[2] = 0; top_size[0] = 40; top_size[1] = 1000; top_size[2] = 1000; } public void reset(int { num_rings[0] = b; num_rings[1] = 0; num_rings[2] = 0; top_size[0] = 40; top_size[1] = 1000; top_size[2] = 1000; }}class ring { int ring_size[] = new int[10]; int old_x[] = new int[10]; int which_x[] = new int[10]; int which_y[] = new int[10]; int order[] = new int[10]; int which_tower[] = new int[10]; public ring(int a){ for(int i = 0; i ring_size[i] = 40+20*i; which_x[i] = 100; old_x[i] = which_x[i]; which_y[i] = 400-30*(a-i); order[i] = a-i; which_tower[i] = 0; } } public void reset(int { for(int i = 0; i ring_size[i] = 40+20*i; which_x[i] = 100; old_x[i] = which_x[i]; which_y[i] = 400-30*(b-i); order[i] = b-i; which_tower[i] = 0; } }}class TowerPanel extends Panel implements Runnable{ Thread going = null; int width = 500; int height = 400; int tower_height = 350; int tower_width = 20; int num_rings = 8; int pick_ring = 1000; int tempx; int tempy; boolean win = false; boolean reset; //special effect words String s = new String("Tower of Hanoi"); char separated[]; int x_coord = 0, y_coord = 0; Towering towers = new Towering(num_rings); ring rings = new ring(num_rings); TowerPanel(){ setFont(new Font("TimesRoman",Font.BOLD,40)); setBackground(new Color(170,170,170)); separated = new char [s.length()]; s.getChars(0,s.length(),separated,0); } public void paint(Graphics g) { //special words for(int i=0;i { x_coord = (int) (Math.random()*10+15*i+100); y_coord = (int) (Math.random()*10+36); g.setColor(new Color(200-10*i, 10*i, 10*i)); g.drawChars(separated, i,1,x_coord,y_coord); } //drawing those three towers g.setColor(Color.red); g.fill3DRect(90,height-tower_height, tower_width, tower_height, true); g.setColor(Color.blue); g.fill3DRect(240,height-tower_height, tower_width, tower_height, true); g.setColor(Color.yellow); g.fill3DRect(390,height-tower_height, tower_width, tower_height, true); //drawing all the rings g.setColor(Color.black); for(int j=0;j g.setColor(new Color(20*j+55,200-20*j,20*j+55)); g.fill3DRect(rings.which_x[j]-rings.ring_size[j]/2, rings.which_y[j], rings.ring_size[j], 30, true); } //Congratulation if(win){ g.setColor(Color.white); g.drawString("Congratulation!!!",150,150); } } public synchronized boolean mouseDown(Event evt, int x, int y) { for(int k=0; k if(rings.order[k] == towers.num_rings[rings.which_tower[k]]) { if((x>=(rings.which_x[k]-rings.ring_size[k]/2))&&(x<=((rings.which_x[k]-rings.ring_size[k]/2)+rings.ring_size[k]))){ if((y>=rings.which_y[k])&&(y<=(rings.which_y[k]+30))){ pick_ring = k; }}}} return true; } public synchronized boolean mouseDrag(Event evt, int x, int y) { if(pick_ring!=1000){ rings.which_x[pick_ring] = x; rings.which_y[pick_ring] = y; //repaint(1,x-40,y-40,rings.ring_size[pick_ring]*5,200); repaint(); } return true; } public synchronized boolean mouseUp(Event evt, int x, int y) { if(pick_ring!=1000){ if((140>=rings.which_x[pick_ring])&&(100<=(rings.which_x[pick_ring]+rings.ring_size[pick_ring]))&&(rings.ring_size[pick_ring] ++towers.num_rings[0]; --towers.num_rings[rings.which_tower[pick_ring]]; rings.which_tower[pick_ring] = 0; rings.which_x[pick_ring] = 100; rings.order[pick_ring] = towers.num_rings[0]; rings.which_y[pick_ring] = 400-30*towers.num_rings[0]; } else if((280>=rings.which_x[pick_ring])&&(240<=(rings.which_x[pick_ring]+rings.ring_size[pick_ring]))&&(rings.ring_size[pick_ring] ++towers.num_rings[1]; --towers.num_rings[rings.which_tower[pick_ring]]; rings.which_tower[pick_ring] = 1; rings.which_x[pick_ring] = 250; rings.order[pick_ring] = towers.num_rings[1]; rings.which_y[pick_ring] = 400-30*towers.num_rings[1]; } else if((430>=rings.which_x[pick_ring])&&(390<=(rings.which_x[pick_ring]+rings.ring_size[pick_ring]))&&(rings.ring_size[pick_ring] ++towers.num_rings[2]; --towers.num_rings[rings.which_tower[pick_ring]]; rings.which_tower[pick_ring] = 2; rings.which_x[pick_ring] = 400; rings.order[pick_ring] = towers.num_rings[2]; rings.which_y[pick_ring] = 400-30*towers.num_rings[2]; } else{ rings.which_x[pick_ring] = rings.old_x[pick_ring]; rings.which_y[pick_ring] = 400-30*towers.num_rings[rings.which_tower[pick_ring]]; } } rings.old_x[pick_ring] = rings.which_x[pick_ring]; pick_ring = 1000; //recompute the to_size for all towers for(int z=0;z if(rings.order[z] == towers.num_rings[rings.which_tower[z]]){ towers.top_size[rings.which_tower[z]] = rings.ring_size[z]; } } //see if the user wins for(int t=0;t<3;++t){ if((t!=0)&&(towers.num_rings[t] == num_rings)){ win = true; } if(towers.num_rings[t] == 0){ towers.top_size[t] = 1000; } } repaint(); return true; } public void start(){ if(going == null){ going = new Thread(this); going.start(); } } public void stop() { going = null; }/* private Image offScreenImage; private Dimension offScreenSize; private Graphics offScreenGraphics; public final synchronized void update (Graphics g){ Dimension d = size(); if((offScreenImage == null) || (d.width !=offScreenSize.width) || (d.height != offScreenSize.height)) { offScreenImage = createImage(d.width, d.height); offScreenSize = d; offScreenGraphics = offScreenImage.getGraphics(); } paint(offScreenGraphics); g.drawImage(offScreenImage, 0, 0, null); }*/ public void run() { while (going!=null) { try {Thread.sleep(100);} catch (InterruptedException e){} repaint(1,0,0,500,45); //repaint(); } going = null; } public void reset(boolean filled, int num_blocks) { win = false; num_rings = num_blocks; towers.reset(num_rings); rings.reset(num_rings); repaint(); }}class TowerControl extends Panel { TextField s; TextField e; TowerPanel pa; public TowerControl(TowerPanel pa) { this.pa = pa; add(s = new TextField("8", 4)); add(new Button("Reset Blocks Number")); } public boolean action(Event ev, Object arg) { if (ev.target instanceof Button) { String label = (String)arg; pa.reset(label.equals("Reset Blocks Number"), Integer.parseInt(s.getText().trim())); return true; } return false; }}/* Interactive Tower of Hanoi *\ Ссылка на комментарий
ViktorOBM Опубликовано 24 марта, 2010 Жалоба Поделиться Опубликовано 24 марта, 2010 ForeverТы отредактируй, немного, своё сообщение: Отключи, в этом сообщении, поддержку смайлов, а то в коде в некоторых местах, смайлы, вместо текста, отображаются. Ссылка на комментарий
Forever Опубликовано 24 марта, 2010 Автор Жалоба Поделиться Опубликовано 24 марта, 2010 отредактировал Ссылка на комментарий
Гость bot Опубликовано 24 марта, 2010 Жалоба Поделиться Опубликовано 24 марта, 2010 Топик был перенесен из форума IT-взаимопомощь в форум Форум программистов VR Ссылка на комментарий
Forever Опубликовано 25 марта, 2010 Автор Жалоба Поделиться Опубликовано 25 марта, 2010 неужели никто не сможет помоч? Ссылка на комментарий
coder Опубликовано 25 марта, 2010 Жалоба Поделиться Опубликовано 25 марта, 2010 Foreverписать нехоца Ссылка на комментарий
Forever Опубликовано 28 марта, 2010 Автор Жалоба Поделиться Опубликовано 28 марта, 2010 чо даже за плату никто не хочет помоч? Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти