import java.util.*;
abstract class GameObject {
protected int x, y;
public GameObject(int startX, int startY) {
this.x = startX;
this.y = startY;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public boolean collide(GameObject P) {
if (this.x == P.getX() && this.y == P.getY())
return true;
else
return false;
}
protected abstract void move(char direction);
protected abstract char getShape();
}
class Player extends GameObject {
public Player() {
super(1, 1);
}
public Player(int x, int y) {
super(x, y);
}
public int getX() {
return x;
}
public int getY() {
return y;
}
protected void move(char d) {
if ((d == 'a' && x == 0) || (d == 's' && y == 9) || (d == 'w' && y == 0)
|| (d == 'd' && x == 19)) {
System.out.println("***ERROR***");
System.out.println("SYSTEM ERROR 엘레레렐ㄹㄹ레ㅔㄹ레레레(대충 오류났을때 나오는 거)");
System.out.println("키 안알려줌.게임 많이 했으면 이거 국룰이라 알텐데 ㅋㅋㅋ.어쨌든 오류니까 한 턴 가져감ㅅㄱ");
} else if (d == 'a')
x--;
else if (d == 'w')
y--;
else if (d == 's')
y++;
else
x++;
}
protected char getShape() {
return 'i';
}
protected void move(int direction) {
}
}
class Jjam extends Player {
int d = 0;
public Jjam() {
super(10, 5);
}
public void move() {
d++;
d = d % 4;
if (x + 6 > getX() && x - 6 < getX() && y + 6 > getY() && y - 6 < getY()) {
if (d == 1)
x--;
else if (d == 2)
y++;
else if (d == 3)
y--;
else if (d == 4)
x++;
}
}
public char getShape() {
return 'u';
}
}
class Game {
public void run(Player p,Jjam j) {
Scanner sc=new Scanner(System.in);
String a;
char d;
System.out.println("잡으셈");
while(j.collide(p)==false) {
for(int i=0;i<10;i++) {
for(int i1=0;i1<20;i1++) {
if(p.getY()==i&&p.getX()==i1)
System.out.print(p.getShape());
else if(j.getY()==i&&j.getX()==i1)
System.out.print(j.getShape());
else
System.out.print("-");
}
System.out.println();
}
System.out.print("방향키 눌러라>>>");
a=sc.next();
d=a.charAt(0);
p.move(d);
j.move();
}
System.out.println("***** *** ** *****");
System.out.println("** **** ** ** **");
System.out.println("***** ** ** ** ** **");
System.out.println("** ** **** ** **");
System.out.println("***** ** *** *****");
System.out.println("ㅊㅋ");
}
}
class Main {
public static void main(String[] args) {
Player p = new Player();
Jjam j=new Jjam();
Game g=new Game();
g.run(p,j);
}
}
GUI : Grapical User Interface ( vs CUI)
컨테이너 (도화지) - frame, panel
컴포넌트 (스티커) - label, button, textfield,
Layout
1. flowlayout - 크기, 위치를 알아서 조정 , (나는 조정 못해)
2. gridlayout - 2차원 배열에다가 순서대로 집어넣기
3. borderlayout - 보통의 웹페이지
*/
/*
import javax.swing.*;
import java.awt.*;
class Main extends JFrame{
public Main() {
setTitle("GridSayout Sample");
JTextArea a = new JTextArea("hi",5,10);
a.setSize(100, 50);
a.setBackground(Color.red);// 배경색 바꾸기
a.setForeground(Color.white); //글자색
Container c = getContentPane(); // 현재의 도화지를 가져오세요
c.setLayout(new FlowLayout());
c.add(a);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500 ,300);
setVisible(true);
}
public static void main(String[] args) {
new Main();
}
}*/