연습문제 8월 18일자
2009. 8. 19. 00:36
8월15일 연습예제
거북이 구현하기
/* 거북이 */ class Tuttle { int x; int y; int speed; void initialize() { x = 0; y = 0; speed = 0; } void stop() { speed = 0; } void speedUp() { speed++; } void speedDown() { speed = (speed <= 0) ? 0 : speed - 1; } void goNorth() { y++; } void goSouth() { y = (y <= 0) ? 0 : y - 1; } void goEast() { x++; } void goWest() { x = (x <= 0) ? 0 : x - 1; } void getStatus() { System.out.println("거북이의 위치는 " + "(" + x + ", " + y + ")이고, "); System.out.println("속도는 " + speed + "m/h입니다."); } public static void main(String[] args) { Tuttle t = new Tuttle(); t.speedUp(); t.goNorth(); t.getStatus(); } }
탱크로 벽 부수기
/* 탱크 */ class Tank { void shoot(Wall w) { w.strike(); } }
/* 무너저내리는 벽 */ class Wall { public int durability; Wall() { durability = 10; } void strike(int power) { System.out.println("꽝!"); durability -= power; if (durability > 0) { System.out.println("현재 내구력 : " + durability); } else { crumble(); } } void crumble() { System.out.println("와르르!!"); } }
/* 벽돌 벽 */ class Brick extends Wall { Brick() { durability = 5; } }
/* 탱크로 벽 맞추기 */ class Stage { public static void main(String[] arg) { Brick w1 = new Brick(); Wall w2 = new Wall(); Tank2 t = new Tank2(); t.shootGun(w1); t.shootGun(w1); t.shootCannon(w1); } }
총과 대포를 발사하는 탱크
/* 탱크 */ class Tank2 { void shootGun(Wall w) { w.strike(1); } void shootCannon(Wall w) { w.strike(5); } }
거북이 벽에 부딪치다.
/* 장애물 탐지 거북이 */ class Tuttle2 { int x; int y; void goNorth(Wall2 w) { y++; if (x >= w.x1 && x <= w.x2 && y == w.y1) { shriek(); w.soundEffect(); } } void goSouth(Wall2 w) { y = (y < 0) ? 0 : y - 1; if (x >= w.x1 && x <= w.x2 && y == w.y1) { shriek(); w.soundEffect(); } } void goEast(Wall2 w) { x++; if (x >= w.x1 && x <= w.x2 && y == w.y1) { shriek(); w.soundEffect(); } } void goWest(Wall2 w) { x = (x < 0) ? 0 : x - 1; if (x >= w.x1 && x <= w.x2 && y == w.y1) { shriek(); w.soundEffect(); } } void shriek() { System.out.println("꽥!"); } }
/* 길이 요소를 갖는 벽 */ class Wall2 { int x1; int y1; int x2; int y2; void soundEffect() { System.out.println("꽝!!"); } Wall2() { } Wall2(int x1, int y1, int x2, int y2) { this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } }
class Stage2 { public static void main(String[] args) { Wall2 w = new Wall2(5, 5, 9, 10); Tuttle2 t = new Tuttle2(); t.goEast(w); t.goEast(w); t.goEast(w); t.goEast(w); t.goEast(w); t.goEast(w); t.goNorth(w); t.goNorth(w); t.goNorth(w); t.goNorth(w); t.goNorth(w); t.goNorth(w); t.goNorth(w); } }
/* 1에서 4사이의 난수 발생 */ import java.util.Random; class GenRandom { public static void main(String[] args) { for (int i = 0; i < 10; i++) { Random rnd = new Random(); System.out.print( rnd.nextInt(4) + " "); } System.out.println(); } }
/* 커맨드 라인 입력 받기 */ import java.util.Scanner; class CmdInput { public static void main(String[] args) { System.out.print("입력하세요: "); Scanner sc = new Scanner(System.in); System.out.println("입력한 문자는 : "); while (sc.hasNext()) { System.out.println(sc.next()); } sc = null; } }