티스토리 뷰
package NewProject;
import java.security.PublicKey;
import Test.jaewon;
/*
* 공격은 순서대로 단, 객체가 살아있는 경우
* 타켓은 첫번째 객체를 집중적으로 공격을 하고 객체가 소멸하면 그 다음 객체로 이동
*/
//테란 클래스
class Tarren{
//1. 마린 3마리
Marine[] m = new Marine[3];
//2. 턴 변수 담기
int turn = 0;
//3. 마린 객체 넣기
Tarren(){
for(int i=0;i<m.length;i++) {
m[i] = new Marine();
m[i].print();
}
}
//4. 공격할 마린 선택
public Marine AttackM() {
if(m[0] != null || m[1] != null || m[2] != null) {
while(m[turn%3] == null) {
turn ++;
}
System.out.println(turn % 3 + "번째 마린이 공격 합니다.");
return m[turn++%3];
}else {
return null;
}
}
//5. 공격당할 마린 선택
public Marine WhoM() {
for(int i=0;i<m.length;i++) {
if(m[i] != null) {
System.out.println(i+"번째 마린이 공격을 당합니다.");
return m[i];
}
}
return null;
}
//6. 죽은 마린 확인
public void CheckM() {
for(int i=0;i<m.length;i++) {
if(m[i] != null && m[i].hp <= 0) {
System.out.println(i+ "번째 마린이 죽었습니다.");
m[i] = null;
}
}
}
//7. 게임종료 체크
public boolean GameoverM() {
for(int i=0;i<m.length;i++) {
if(m[i] != null) {
return true;
}
}
System.out.println("마린이 모두 죽었습니다.");
return false;
}
}
class Zerg{
//1. 저글링하고 히드라 생성
Juggling j;
Hydra h;
//2. 턴 변수 생성
int turn = 0;
//3. 저글링하고 히드라 객체 넣기
Zerg(){
j = new Juggling();
h = new Hydra();
j.print();
h.print();
}
public Juggling goJug() {
return j;
}
public Hydra goHydra() {
return h;
}
//4. 누가 마린에게 맞을 것인가?
public void attackZ(Marine m) {
if(j != null) {
System.out.println("저글링이 공격당합니다 ! ");
j.hp -= m.attack;
}else if(h != null) {
System.out.println("히드라가 공격당합니다 ! ");
h.hp -= m.attack;
}
}
//5. 누가 죽었는지 확인
public void CheckZ() {
if(j != null && j.hp <= 0) {
System.out.println("저글링이 죽었습니다.");
j = null;
}else if(h != null && h.hp <= 0) {
System.out.println("히드라가 죽었습니다.");
h = null;
}
}
//6. 게임종료확인
public boolean GameoverZ() {
if(j != null) {
return true;
}if(h != null) {
return true;
}
return false;
}
}
public class Q2 {
public static void main(String[] args) {
Tarren t = new Tarren();
Zerg z = new Zerg();
boolean chk = true;
int count = 1;
while(chk) {
//테란공격
System.out.println((count++) + "턴 테란팀이 공격합니다.");
Marine m = t.AttackM(); //공격할 마린 선택
z.attackZ(m); //마린이 저그 공격 !
z.CheckZ();
chk = z.GameoverZ();
if(chk == false) {
System.out.println("테란팀이 승리하였습니다.");
continue;
}
//저그공격
System.out.println((count++) + "턴 저그팀이 공격합니다.");
if(z.turn % 2 == 0 && z.j != null) {
//저글링이 공격
m = t.WhoM(); //마린 누가 맞을래?
Juggling j = z.goJug(); //저글링 생성
m.hp -= j.attack; // 공격 !
t.CheckM();//누가 죽었니?
chk = t.GameoverM();
if(chk == false) {
System.out.println("저그팀이 승리하였습니다.");
}
}if(z.turn % 2 == 1 && z.h != null) {
//히드라가 공격
m = t.WhoM(); //마린 누가 맞을래?
Hydra h = z.goHydra(); //히드라 생성
m.hp -= h.attack; // 공격 !
t.CheckM();//누가 죽었니?
chk = t.GameoverM();
if(chk == false) {
System.out.println("저그팀이 승리하였습니다.");
}
}
}
}
}
자기 전 마지막으로 연습할려고 스타그래프트 코드를 작성했는데 뭔가 왜 결과가 다르지...? 흠...
'고뇌' 카테고리의 다른 글
스타그래프트 게임 이제 알맞게 코딩한듯? (0) | 2022.06.20 |
---|---|
코드를 칠때마다 값이 달라지는 진귀한 현상 (0) | 2022.06.12 |
옛날 핸드폰 알파벳 입력 문제 2시간째 파는중.. (0) | 2022.06.05 |
html 공부중 .. (0) | 2022.05.29 |
JAVA : interface와 추상화 클래스 공부 중 ... !! (0) | 2022.05.27 |
댓글