ToyProblems 를 바 ¶
Board.java ¶
~cpp
import javax.swing.JOptionPane;
public class Board {
private int array[][]; // 배
private int max_x; //
private int max_y; //
//
public Board(int x, int y) {
max_x = x;
max_y = y;
array = new int[max_y][max_x];
for (int i = 0; i < max_y; i++)
for (int j = 0; j < max_x; j++)
array[i][j] = 0;
}
// ?
public boolean IsStepFull() {
for (int i = 0; i < max_y; i++)
for (int j = 0; j < max_x; j++)
if (array[i][j] == 0)
return false;
return true;
}
// 벽?
public boolean IsPostionWall(int x, int y) {
if (x == -1 || x == max_x || y == -1 || y == max_y)
return true;
else
return false;
}
// 는
public void PutStep(int x, int y) {
array[y][x]++;
//를 면 마 보
//ShowStep();
}
// 보
public void ShowStep() {
String output = "";
for (int i = 0; i < max_y; i++)
{
for (int j = 0; j < max_x; j++)
output += array[i][j] + " ";
output += '\n';
}
JOptionPane.showMessageDialog(null, output);
}
}
Roach.java ¶
~cpp
public class Roach {
private int p_x; // 바 x
private int p_y; // 바 y
//바 동
public void Move(Board bo, int x, int y) {
p_x = x;
p_y = y;
bo.PutStep(p_x, p_y);
while (!bo.IsStepFull()) {
int c_x; // 바 동 x
int c_y; // 바 동 y
do
{
c_x = p_x;
c_y = p_y;
int dir = (int)(Math.random() * 8);
switch (dir)
{
case 0:
c_y--;
break;
case 1:
c_x++;
c_y--;
break;
case 2:
c_x++;
break;
case 3:
c_x++;
c_y++;
break;
case 4:
c_y++;
break;
case 5:
c_x--;
c_y++;
break;
case 6:
c_x--;
break;
case 7:
c_x--;
c_y--;
break;
}
} while (!SeeNextPos(bo, c_x, c_y));
p_x = c_x;
p_y = c_y;
bo.PutStep(p_x, p_y);
}
}
//동 리를
//벽면 false 벽 면 true
public boolean SeeNextPos(Board bo, int x, int y) {
if (bo.IsPostionWall(x, y))
return false;
else
return true;
}
}
Human.java ¶
~cpp
import javax.swing.JOptionPane;
public class Human {
// 바를 놓는
public void PutRoach (Roach ro, Board bo, int x, int y) {
ro.Move(bo, x, y);
}
// KillRoach를 떻 ???
public void KillRoach (Roach ro) {
//명 보 ^^
}
// 본
public void SeeBoard (Board bo) {
bo.ShowStep();
}
public static void main(String[] args) {
int start_x, start_y; // 바 받 변
int board_x, board_y; // 받 변
Human sehwan = new Human();
Roach roach = new Roach();
board_x = Integer.parseInt(JOptionPane.showInputDialog(null, " "));
board_y = Integer.parseInt(JOptionPane.showInputDialog(null, " "));
start_x = Integer.parseInt(JOptionPane.showInputDialog(null, "바 "));
start_y = Integer.parseInt(JOptionPane.showInputDialog(null, "바 "));
// 맨 (0,0)
Board board = new Board(board_x, board_y);
sehwan.PutRoach(roach, board, start_x, start_y); // 바를 놓는
sehwan.SeeBoard(board); // 돌면 본
}
}
내 ¶
1. 념 바 ¶
.념
: 는 는
동: 는 능 는 는 동
) 동 -
-> 변
동 -> 메()
: 는 는
동: 는 능 는 는 동
) 동 -
,바,들,배량,, -
린,를 바,를 높 낮, 린 - 동
-> 린,를 바,를 높 낮, 린 - 동
-> 변
동 -> 메()
방
public: , , 내 는 능
private: 만 능
protected: , , 내 는 능
friendly(략): , 내 는 능
(Encapsulation):
변 메를 묶 만.
는 모듈(modularity) 보(information hiding) .
모듈 를 무 는 .
보 는 보 른 부 .
메(Message):
는데 .
메를 받 , 메 , 메 매변 등 를 .
(Class):(벽돌)
들 대 는 변 메를 .
(Instance):(낸 벽돌)
를 는
(Object)
(Inheritance)
는 들 .
(Polymorphism)
러 메 대 방 는 능.
(overloading), , (overriding)등 .
. 및 () 변 메를 묶 만.
는 모듈(modularity) 보(information hiding) .
모듈 를 무 는 .
보 는 보 른 부 .
메(Message):
는데 .
메를 받 , 메 , 메 매변 등 를 .
(Class):(벽돌)
들 대 는 변 메를 .
(Instance):(낸 벽돌)
를 는
(Object)
(Inheritance)
는 들 .
(Polymorphism)
러 메 대 방 는 능.
(overloading), , (overriding)등 .
~cpp
class {
// 변 부
…
// 메 부
…
}
~cpp = new (); 는 ; = new ();.변 및 메
public: , , 내 는 능
private: 만 능
protected: , , 내 는 능
friendly(략): , 내 는 능
.메
: 러 는
: 따 른 는
->바
: 러 는
: 따 른 는
->바
2. ¶
.
.멤 멤
변 메 )
~cpp
(매변 리) { … }
(매변 리) {
른 ; // 번 루 .
…
}
변 = new (매변 리);
.this.멤 멤
변 메 )
~cpp [] static 변 ; [] static 메 ; 변 메 ) .메() 메() .메()
. 및
변 및 블
변 및 블
~cpp
static 변=;
는
static 배변=new 배;
static {
러 변들
는
배 ;
}
3. ¶
... 는 ...
OOP ¶
, 메, , , , ,
명
명
문 ¶
- 미 데 는?
는 . 미^^;
- public protected 는?
는 문 모르는 ^^. private protected 는 루 면 됩. 만 루면 미는 . 만 동 는 봅. 런데 념. 동 념 럭 를 동 받 만들 . 랬 동 는 는 럭 . 런 protected 면 를 받 는 . 만 부 불능는 변 . 만 public 부 능 는 . 번 만들보. 떻 른 는 .
내 ¶
- ~ 벌 능 놀데? ^^; 말 뛰 디 를 능 . ? 면 른 를 ?
- 를 바보. 는 방 받 -> 바벌 마리를 놓 -> 바벌를 는 방 바.
- 바 메는 문. 대문 는 .
- 내 1 내 보.










