예제 8월 19일 고양이 톰으로 카나리아 트위터 잡기 게임
2009. 8. 19. 12:02
/* 새 */ import java.util.*; class Bird { int x; int y; Bird() { } Bird(int x, int y) { this.x = x; this.y = y; } void fly() { Random rnd = new Random(); switch (rnd.nextInt(4)) { case 0: x++; break; case 1: x = (x < 0) ? 0 : x - 1; break; case 2: y++; break; default: y = (y < 0) ? 0 : y - 1; break; } System.out.println("트위터의 위치 : " + "(" + x + ", " + y + ")"); } public static void main(String[] args) { Bird twitter = new Bird(10, 5); for (int i = 0; i < 10; i++) { twitter.fly(); } } }
/* 고양이 톰 */ class Cat { static final int MAX = 3; int x; int y; void goNorth(int distance, Bird bird) { y += (distance > MAX) ? MAX : distance; if (x == bird.x && y == bird.y) { System.out.println("톰이 트위터를 잡았습니다."); System.exit(0); } System.out.println("톰의 위치: (" + x + ", " + y + ")"); bird.fly(); } void goSouth(int distance, Bird bird) { y -= (distance > MAX) ? MAX : distance; y = (y < 0) ? 0: y; if (x == bird.x && y == bird.y) { System.out.println("톰이 트위터를 잡았습니다."); System.exit(0); } System.out.println("톰의 위치: (" + x + ", " + y + ")"); bird.fly(); } void goEast(int distance, Bird bird) { x += (distance > MAX) ? MAX : distance; if (x == bird.x && y == bird.y) { System.out.println("톰이 트위터를 잡았습니다."); System.exit(0); } System.out.println("톰의 위치: (" + x + ", " + y + ")"); bird.fly(); } void goWest(int distance, Bird bird) { x -= (distance > MAX) ? MAX : distance; x = (x < 0) ? 0: x; if (x == bird.x && y == bird.y) { System.out.println("톰이 트위터를 잡았습니다."); System.exit(0); } System.out.println("톰의 위치: (" + x + ", " + y + ")"); bird.fly(); } public static void main(String[] args) { Cat tom = new Cat(); Bird twitter = new Bird(5, 5); tom.goNorth(2, twitter); tom.goNorth(3, twitter); tom.goEast(1, twitter); tom.goWest(5, twitter); } }
/* 톰과 트위터 */ import java.util.Scanner; class Stage3 { public static void main(String[] args) { int x = 0; int y = 0; Cat tom = new Cat(); Bird twitter = new Bird(10, 10); System.out.println("트위터 잡기 시작!"); twitter.fly(); while(true) { Scanner input = new Scanner(System.in); String cmd = input.next(); if (cmd.equals("e") || cmd.equals("E")) { tom.goEast(input.nextInt(), twitter); } else if (cmd.equals("w") || cmd.equals("W")) { tom.goWest(input.nextInt(), twitter); } else if (cmd.equals("n") || cmd.equals("N")) { tom.goNorth(input.nextInt(), twitter); } else if (cmd.equals("w") || cmd.equals("W")) { tom.goSouth(input.nextInt(), twitter); } else { System.out.println("에러!!"); } } } }