분류 전체보기
-
예제 8월 19일 고양이 톰으로 카나리아 트위터 잡기 게임2009.08.19
-
연습문제 8월 18일자2009.08.19
-
예제 8월 14일2009.08.17
-
예제 8월 13일2009.08.17
-
예제 8월 12일2009.08.17
예제 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("에러!!"); } } } }
연습문제 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; } }
예제 8월 14일
2009. 8. 17. 01:20
class Hakjum { public static void main(String[] args) { int kor = new Integer(args[0]); int eng = new Integer(args[1]); int mat = new Integer(args[2]); int sum = kor + eng + mat; int avg = sum / 3; String hakjum = "가"; if (avg > 100 || avg < 0) { System.out.println("입력 오류"); /* } else if (avg >= 90) { */ } else { switch (avg / 10) { case 10: case 9: hakjum = "수"; break; case 8: hakjum = "우"; break; case 7: hakjum = "미"; break; case 6: hakjum = "양"; break; default: hakjum = "가"; break; } } } }
/* for문 */ class Loop { public static void main(String[] args) { int count = 0; for (int i = 13; i >= 2; i -= 2) { count += 1; } System.out.println("FOR문은 " + count + "번 실행됩니다."); } }
/* http://jeongsam.net 잔돈 계산 (조건) 잔돈은 1,000원, 100원, 10원 3종류가 있음. (실행) java Jandon 1560 (출력) 1560원은 1,000원 1개 100원 5개 10원 6개 */ class Jandon { public static void main(String[] args) { System.out.println(args[0] + "원은"); for (int i = 1000, count = new Integer(args[0]) / 1000, don = new Integer(args[0]) % 1000; i >= 10; i /= 10, count = don / i, don %= i) { System.out.println(i + ": " + don); System.out.println(i + "원 : " + count + " 개"); } } } /* for (int i = 1000; i >= 10 ; i /= 10) { int count = don / i; don %= i; System.out.println(i + "원 : " + count + " 개"); } */ /* for (int i = 0; i < 3; i++) { switch(i) { case 0: t = don / 1000; don = don % 1000; break; case 1: h = don / 100; don = don % 100; break; default: ten = don / 10; break; } } */
/* 요일출력 1일이 토요일로 가정 (조건) 0:일요일, 1:월요일, 2:화요일, ..., 6:토요일 (실행) java GetDays 14 (출력) 오늘은 금요일입니다. */
class MyCalendar { public static void main(String[] args) { int count = 0; System.out.println("\t일\t월\t화\t수\t목\t금\t토"); for (int i = 1; i <= 6; i++) { count++; System.out.print("\t"); } for (int i = 1; i <= 31 ;i++) { System.out.print("\t" + i); count++; if (count % 7 == 0) System.out.println(); } } }
예제 8월 13일
2009. 8. 17. 01:14
class 가산기 { public static void main(String[] args) { System.out.println("결과: " + (new Integer(args[0]) + new Integer(args[1]))); } } /* run: java 가산기 50 60 */
/* 두수를 입력받아 큰 수를 출력하는 프로그램 (실행) java GT 68 78 (출력) 78이 68보다 큽니다. /* class GT { public static main(String[] args) { if (Integer.parseInt(args[0]) > Integer.parseInt(args[1])) { System.out.println(args[0] + "은 " + args[1] + "보다 큽니다."); } else { System.out.println(args[1] + "은 " + args[0] + "보다 큽니다."); } } } class GT { public static main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); System.out.println(((a > b) ? a : b) + "은 " + ((a < b) ? a : b) + "보다 큽니다."); } }
/* 세 수를 입력받아 가장 큰 수를 출력 (실행) java Max 10 15 3 (출력) 10, 15, 3 중 가장 큰 수는 15입니다. */ class Max { public static void main(String[] args) { int i = Integer.parseInt(args[0]); int j = Integer.parseInt(args[1]); int k = Integer.parseInt(args[2]); int max = -9999; if (i > j) { if (i > k) { max = i; } else { max = k; } } else { if (j > k) { max = j; } else { max = k; } } System.out.println(i + ", " + j + ", " + k + "중 가장 큰수는" + max + "입니다."); } }
class Max2 { public static void main(String[] args) { int number = Integer.parseInt(args[0]); int max = number; for (int i = 1; i < args.length; i++) { number = Integer.parseInt(args[i]); // if (max < number) max = number; max = (max < number) ? number : max ; } System.out.println("최대값 : " + max); } }
class 계산기 { public static void main(String[] args) { int result = 0; if (args[1].equals("+")) { result = new Integer(args[0]) + new Integer(args[2]); } else if (args[1].equals("-")) { result = new Integer(args[0]) - new Integer(args[2]); } else if (args[1].equals("*")) { result = new Integer(args[0]) * new Integer(args[2]); } else { result = new Integer(args[0]) / new Integer(args[2]); } System.out.prinln(args[0] + " " + args[1] + " " + args[2] + " = " + result); } }
예제 8월 12일
2009. 8. 17. 01:09
/* 비교 연산자 == : 같다 != : 다르다 > : 크다 >= : 크거나 같다 < : 작다 <= : 작거나 같다 */ class Example0812 { public static void main(String[] args) { int i = 9, j = 10; System.out.println("조건결과 : " + ((i + 1) != j)); if ((i + 1) != j) { System.out.println(i + "은 " + j + "보다 작습니다."); } else { System.out.println(i + "은 " + j + "보다 큽니다."); } } }
<연습문제> 3. 다음 조건을 만족하도록 프로그래밍하세요. (조건) 자동차 프로그램을 만들기 위해 클래스의 이름은 Car로 지정. 속도를 저장하기 위해 speed 변수 선언후 적당한 값으로 초기화할 것. 0km 미만 속도일 경우 "후진" 0 ~ 60km 일 경우 "경제속도" 61 ~ 100km 일 경우 "고속" 100km 초과일 경우 "과속"으로 출력할 것 (출력 예) 현재 속도는 89km이며, 고속 주행 중입니다.
class Hakjum { public static void main(String[] args) { int kor = 98, eng = 80, mat = 89; int sum = kor + eng + mat; int avg = sum / 3; String msg = ""; if (avg > 100) { msg = "입력 초과"; } else if (avg < 0) { msg = "입력 초과"; } else if (avg >= 90) { msg = "수"; } else if (avg >= 80) { msg = "우"; } else if (avg >= 70) { msg = "미"; } else if (avg >= 60) { msg = "양"; } else { msg = "가"; } if (avg > 100 || avg < 0) { System.out.println(msg); } else { (System.out.println("학점은 " + msg + "입니다."); } } }
<연습문제> 2. 다음 조건을 만족하는 프로그램을 작성하세요. 조건) i = 10, j = 20, k = 30 일때 세 변수의 합이 60을 초과하면 "참 잘했습니다." 60이하이면 "분발하세요"를 출력 출력) i : 10, j : 20, k : 30 세 변수의 합 : ?? 참 잘했습니다. or 분발하세요 class Ex0812b { public static void main(String[] args) { int i = 10, j = 20, k = 30; System.out.println("세 변수의 합" + (i + j + k)); System.out.println( ((i + j + k) > 60) ? "참 잘했습니다." : "분발하세요."); /* if ((i + j + k) > 60) { System.out.println("참 잘했습니다."); } else { System.out.println("분발하세요."); } */ } }
class LogicalTest { public static void main(String[] args) { boolean bVal1 = true; boolean bVal2 = false; int iVal1 = 10, iVal2 = 20; System.out.println(bVal1 || bVal2); System.out.println(bVal1 && !bVal2); System.out.println(!(bVal2 || bVal1)); System.out.println(!bVal2 && !bVal1); System.out.println((iVa1 > iVal2) && (iVal2 < iVal1)); iVal1 = true; /* IVAL = 1 , ival1 = true; */ MYBIRTHDAT myBirthday } }
<연습문제> 1. 다음 조건을 만족하는 프로그램을 작성하세요. i = 10, j = 20 일때 i * j > j * (i - 3) 의 결과를 출력 (출력예) i와 j의 값은 각각 '10'과 '20'입니다. 조건 결과는 ?? 입니다. class Ex0812a { public static void main(String[] args) { int i = 10, j = 20; System.out.println("i와 j의 값은 각각 '" + i + "'과 '" + j + "입니다."); System.out.println("조건 결과는 " + i * j > j * (i - 3) + "입니다."); } }