객체지향 프로그래밍 - 자바 과제
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

객체지향 프로그래밍 - 자바 과제에 대한 보고서 자료입니다.

목차

객체지향 프로그래밍

목 차

①서론

②본론

③결론

④코드

본문내용

기장의 크기를 지정
}
void rollcall(){ //선수를 소개하기 위해서 선수를 불러온다
p.info();
q.info();
}
void createBall(){
ball = new Ball(field); //공을 불러온다
}
void createPlayers(){
p = new Player("맨유", "박지성","오른발잡이", -20, 0, field);
q = new Player("레딩", "설기현", "왼발잡이", 20, 0, field); //플레이어에 대한 상세한 설명
}
void start(){
System.out.println("*START*");
timeout=false;
}
void stop(){
timeout = true;
}
void run(){
int clock = 0;
int mScore = 0; //0:0으로 시작하기 위해 변수값 0으로 지정(맨유와 풀럼의 스코어)
int pScore = 0;
while(!timeout){
clock++; System.out.print("["+clock+"]"); //경기시간 표시
int dist = p.move(ball);
int distq = q.move(ball); //선수들이 공쪽으로 달려감
r = p;
if (distq < dist){r = q; dist = distq;} // 가까운 선수
if(dist<5){
r.kick(ball); // 5ft 이내 공을 찬다
System.out.print("->"+r.myname+"kick->");
}
goal = ball.move();
if(goal == true){
System.out.println(r.팀명 + "의 골입니다.");
clock++;
p = new Player("맨유", "박지성","오른발잡이", -20, 0,field);
q = new Player("레딩", "설기현", "왼발잡이", 20, 0,field);
//선수 위치를 초기화
ball = new Ball(field); //공위치 초기화
if(r.myname == p.myname){
mScore++; // 맨유의 득점
}
if(r.myname == q.myname){
pScore++; //풀럼의 득점
}
createPlayers();
createBall();
}
System.out.println("");
try{
Thread.sleep(400);
}
catch(Exception e){} //CarRace 에서 배웠던 시간을 조절하는 함수
if(clock > 45){
stop();
}
}
System.out.println("*TIME OUT*");
System.out.println("경기스코어 "+ p.팀명 +mScore+" 대 "+ q.팀명 +pScore+"입니다");
//경기스코어 추가
}
}
//경기장 클래스
class Field {
int x0, x1, y0, y1, w, h;
Field(int wide, int high) {
w = wide; h = high;
x1 = w/2; y1 = h/2;
x0 = -x1; y0 = -y1;
}
}
//공의 위치 클래스
class Ball {
Field f;
int x, y;
double dx, dy;
Ball(Field f) { x = 0; dx = 0; y = 0; dy = 0; this.f = f;}
boolean move() {
x = (int)(x + dx);
y = (int)(y + dy);
dx = dx * 0.8; dy = dy * 0.8; // 감속 비율
System.out.println("공(" + x + "," + y +")");
if (x >= 50) return true;
else return false;
}
void fly(double vx, double vy){ dx = dx +vx; dy += vy; }
int getX() { return x; }
int getY() { return y; }
}
//선수 클래스
class Player {
Field f;
int x, y;
double dx, dy, myspeed;
String myname,팀명, 자주쓰는발;
Player(String member, String name, String foot, int x0, int y0, Field f){ //생성자
x = x0;
y = y0;
myname = name;
this.f = f;
팀명 = member;
자주쓰는발 = foot;
}
int move(Ball b) {
dash(b);//공을향해 dash(b);
x = (int)(x + dx);
y =(int)(y + dy);
double dist = distance(b);
System.out.println (myname + " "+ (int)dist);
return (int)dist;
}
double distance(Ball b) {
double x2x = x - b.getX();
double y2y = y- b.getY();
return Math.sqrt(x2x*x2x + y2y*y2y);
}
void kick(Ball b){
double kx = dx*2 + randM(10) - 5;
double ky = dy*2 + randM(8) - 5;
b.fly(kx, ky);
myspeed = myspeed / 2;
}
double randM(int M){
return Math.random() * M;
}
void dash (Ball b) { //공을향해 질주하는 속도를 결정하는 메소드
double dist = distance(b) + 1; // (+1 = 선수와 공의 거리가 0이 되는 경우를 방지)
myspeed = myspeed*0.8 + randM(4); //질주 속도를 조절
dx = (b.getX() - x)/dist * myspeed; //dx를 결정
dy = (b.getY() - y)/dist * myspeed; //dy를 결정
}
void info(){
System.out.println(팀명+"의" + myname +" "+자주쓰는발 + "입니다");
}
int getX() { return x; }
int getY() { return y; }
}
  • 가격2,000
  • 페이지수11페이지
  • 등록일2015.04.03
  • 저작시기2015.4
  • 파일형식한글(hwp)
  • 자료번호#962938
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니