728x90
https://github.com/rebornbb/JAVAstudy
import slimeLand.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
//슬라임과 대치하는 용사 상황을 코드로 구현
//용사를 만들기(1명)
// string 메모리를 적게쓰는법
String input = "";
Scanner scan = new Scanner(System.in);
System.out.println("용사의 이름을 입력해주세요");
//키보드 입력값을 input 변수에 할당
input = scan.nextLine();
Warrior warrior = new Warrior(input, 500, 200);
//while문 슬라임과 용사가 열심히 반복적으로 싸우는 구역
while(true){
warrior.info();
//텍스트 랜덤으로 입력값 받기(랜덤함수와 아스키코드로 랜덤 출력)
//슬라임 몬스터생성 (다수)
String input_name_A = "빨간 슬라임";
String input_name_B = "노란 슬라임";
String input_name_C = "초록 슬라임";
String input_name_D = "파란 슬라임";
int input_hp = 30;
int input_mp = 3;
slime slime_A = new slime(input_name_A, input_hp, input_mp); //인스턴스생성
slime slime_B = new slime(input_name_B, input_hp, input_mp);
slime slime_C = new slime(input_name_C, input_hp, input_mp);
slime slime_D = new slime(input_name_D, input_hp, input_mp);
//슬라임은 증식을한다
slime_A.info();
slime_B.info();
slime_C.info();
slime_D.info();
System.out.println("------slime_A------");
System.out.println(slime_A.name);
System.out.println(slime_A.hp);
System.out.println(slime_A.mp);
System.out.println("------slime_B------");
System.out.println(slime_B.name);
System.out.println(slime_B.hp);
System.out.println(slime_B.mp);
//용사의 공격(1턴)
slime_B.dmg(5);
System.out.println("------slime_B------");
System.out.println(slime_B.hp);
System.out.println(slime_B.mp);
System.out.println(slime_B.name);
//슬라임의 공격
slime_A.dmg(slime_B.att());
//if(모든 슬라임이 죽을 경우) break;
};
}
}
package slimeLand;
public class slime {
//필드값 (슬라임의 hp, mp)
public String name;
public int hp;
public int mp;
//외부에서 사용하려면public
public slime() {
this.hp = 10;
this.mp = 0;
}
//생성자 (슬라임 클래스를 인스턴스로 만들때 매개변수를 받아서 객체만들기)
public slime(String input_name, int input_hp, int input_mp) {
this.name = input_name;
this.hp = input_hp;
this.mp = input_mp;
//필드 가르킴
}
public void dmg(int dmg) {
this.hp = this.hp - dmg;
System.out.println(this.name + "은" + dmg + "공격을 받았습니다");
}
public int att() {
System.out.println(this.name + "은" +10+ "공격을 했습니다!");
return 10;
}
public void info() {
System.out.println("-------"+name+"-------");
}
}
슬라임게임 참고
https://ridd-coding.tistory.com/29?category=772279
scanner nextInt() 후 nextLine()사용시 오류
자바에서 Scanner nextInt() 후 nextLine() 사용할 때 팁 : 네이버 블로그 (naver.com)
package inventory;
public class Potion {
public String name = "HP 물약";
public int input_HPpotion() {
System.out.println(this.name + " 은 HP를 " +20+ "을 공급해줍니다");
return 20;
}
public int input_MPpotion() {
System.out.println(this.name + " 은 MP를 " +20+ "을 공급해줍니다");
return 20;
}
public int input_HPMPpotion() {
System.out.println(this.name + " 은 HP/MP를 " +20+ "을 공급해줍니다");
return 20;
}
}
package person;
import java.util.*;
public class Programmer {
private static Scanner sc = new Scanner(System.in);
boolean ongame = true;
public String job = "개발자";
public int hp = 10;
public int mp = 10;
//캐릭터정보
public void info(){
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 내 캐릭터 정보는...? `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println("나의 직업은 거지같이 퀭해보이는 "+this.job+"입니다!");
System.out.println(this.job + "의 HP = "+ this.hp);
System.out.println(this.job + "의 MP = "+ this.mp);
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 나 정말 지쳐보여! `**+ㅇO..*..+`*");
System.out.println(" ");
}
//캐릭터 공격 당했을때
public void demage(int input_demage){
this.hp = this.hp - input_demage;
System.out.println(this.job + "은 " + input_demage + " 공격을 받았습니다");
if(this.hp < 1) {
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 안녕 " +this.job+ " 수고 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.job + "는 아마도 좋은 곳에 갔을 것이다...");
while(ongame){
System.out.println("게임을 재개 하려면 Y / 게임을 종료하려면 N");
String endgame = sc.nextLine();
if(endgame.equals("y") || endgame.equals("Y")){
System.out.println("*`+ㅇO..*..+**` 개같이 부활합니다 `**+ㅇO..*..+`*");
break;
} else if(endgame.equals("n") || endgame.equals("N")) {
System.out.println("*`+ㅇO..*..+**` 게임을 종료합니다 `**+ㅇO..*..+`*");
ongame = false;
} else {
System.out.println("다시 입력해 주세요");
}
}
} else {
System.out.println(" ");
System.out.println("__ "+this.job+"의 현재 상태 __");
System.out.println(" ");
System.out.println(this.job + "HP = "+ this.hp);
System.out.println(this.job + "MP = "+ this.mp);
System.out.println(" ");
System.out.println("_______________________");
System.out.println(" ");
}
}
//캐릭터 공격 했을때
public int BasicAttack() {
// System.out.println(this.job + "는 " +10+ " 공격을 했습니다!");
// return 10;
double RandomAttack = Math.random();
int basicattack = (int)(RandomAttack * 10) + 20;
System.out.println(this.job +"은 스킬을 사용해 " + basicattack + " 공격 했습니다!");
return basicattack;
}
//캐릭터스킬사용할때
public int SkillAttack(){
double RandomAttack = Math.random();
int skillattack = (int)(RandomAttack * 60) + 30;
System.out.println(this.job +"은 스킬을 사용해 " + skillattack + " 공격 했습니다!");
return skillattack;
}
//캐릭터 상태
public void state(){
System.out.println(" ");
System.out.println("__ "+this.job+"의 현재 상태 __");
System.out.println(" ");
System.out.println(this.job + "HP = "+ this.hp);
System.out.println(this.job + "MP = "+ this.mp);
System.out.println(" ");
System.out.println("_______________________");
System.out.println(" ");
}
//HP포션먹었을때
public void eatpotion1(int input_HPpotion){
this.hp = this.hp + input_HPpotion;
System.out.println(this.job + "은 포션을 먹어 " + input_HPpotion + " 회복했습니다");
}
//MP포션먹었을때
public void eatpotion2(int input_MPpotion){
this.mp = this.mp + input_MPpotion;
System.out.println(this.job + "은 포션을 먹어 " + input_MPpotion + " 회복했습니다");
}
//HPMP포션먹었을때
public void eatpotion3(int input_HPMPpotion){
this.hp = this.hp + input_HPMPpotion;
this.mp = this.mp + input_HPMPpotion;
System.out.println(this.job + "은 포션을 먹어 " + input_HPMPpotion + " 회복했습니다");
}
}
package slime;
public class bigslime {
public String name = "김종국슬라임";
public int hp = 100;
public int mp = 0;
//몹정보
//void 빈칸
public void info(){
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 몹이 등장했다 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name+ ": '나는 사람을 찢어 ㅎㅎ' m(` O ` )m ");
System.out.println("사람을 좋아하는 몹의 이름은 " + name + "입니다");
System.out.println(this.name + "의 HP = "+ this.hp);
System.out.println(this.name + "의 MP = "+ this.mp);
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 어머 귀여워라 `**+ㅇO..*..+`*");
System.out.println(" ");
}
//몹 공격 당했을때
public void demage(int input_demage){
this.hp = this.hp - input_demage;
System.out.println(this.name + "은 " + input_demage + " 공격을 받았습니다");
if(this.hp < 1) {
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 안녕 " +name+ " 잘가 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name + "은 아마도 좋은 곳에 갔을 것이다...");
} else {
System.out.println(" ");
System.out.println("__ "+this.name+"의 현재 상태 __");
System.out.println(" ");
System.out.println(this.name + "HP = "+ this.hp);
System.out.println(this.name + "MP = "+ this.mp);
System.out.println(" ");
System.out.println("___________________________");
System.out.println(" ");
}
}
//몹 공격 했을때
public int SlimeAttack() {
System.out.println(this.name + " 은 " +50+ " 공격을 했습니다!");
return 50;
}
}
package slime;
import java.util.Random;
public class papaslime {
Random ranexp = new Random();
public String name = "미친 아빠 슬라임";
public int hp = 60;
public int exp = ranexp.nextInt(100)+30;
public int input_demage = ranexp.nextInt(40)+0;
public void info(){
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 몹이 등장했다 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name+ ": '나는 사람 찢기를 좋아해' m(` O ` )m ");
System.out.println("인육을 좋아하는 몹의 이름은 " + name + "입니다");
System.out.println(this.name + "의 HP = "+ this.hp);
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 어머 무사와요 `**+ㅇO..*..+`*");
System.out.println(" ");
}
public void demage(int demage) {
this.hp = this.hp - input_demage;
System.out.println(this.name + "은 " + input_demage + " 공격을 받았습니다");
if(this.hp < 1) {
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 안녕 " +name+ " 잘가 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name + "은 아마도 좋은 곳에 갔을 것이다...");
} else {
System.out.println(" ");
System.out.println("__ "+this.name+"의 현재 상태 __");
System.out.println(" ");
System.out.println(this.name + "HP = "+ this.hp);
System.out.println(" ");
System.out.println("___________________________");
System.out.println(" ");
}
}
public int PapaAttack() {
System.out.println(this.name +"은 당신을 " + input_demage + " 공격 했습니다!");
return input_demage;
}
}
package slime;
public class slime1 {
public String name = "레드슬라임";
public int hp = 30;
public int mp = 0;
//몹정보
//void 빈칸
public void info(){
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 몹이 등장했다 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name+ ": '나는 딸기를 좋아해' m(` O ` )m ");
System.out.println("딸기를 좋아하는 몹의 이름은 " + name + "입니다");
System.out.println(this.name + "의 HP = "+ this.hp);
System.out.println(this.name + "의 MP = "+ this.mp);
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 어머 귀여워라 `**+ㅇO..*..+`*");
System.out.println(" ");
}
//몹 공격 당했을때
public void demage(int input_demage){
this.hp = this.hp - input_demage;
System.out.println(this.name + "은 " + input_demage + " 공격을 받았습니다");
if(this.hp < 1) {
System.out.println(" ");
System.out.println("*`+ㅇO..*..+**` 안녕 " +name+ " 잘가 `**+ㅇO..*..+`*");
System.out.println(" ");
System.out.println(this.name + "은 아마도 좋은 곳에 갔을 것이다...");
} else {
System.out.println(" ");
System.out.println("__ "+this.name+"의 현재 상태 __");
System.out.println(" ");
System.out.println(this.name + "HP = "+ this.hp);
System.out.println(this.name + "MP = "+ this.mp);
System.out.println(" ");
System.out.println("___________________________");
System.out.println(" ");
}
}
//몹 공격 했을때
public int SlimeAttack() {
System.out.println(this.name + " 은 " +5+ " 공격을 했습니다!");
return 5;
}
}
import person.*;
import slime.*;
import inventory.*;
import java.util.*;
public class field {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] arg) {
Programmer programmer = new Programmer();
slime1 slimeRed = new slime1();
bigslime slimebig = new bigslime();
Potion potionHP = new Potion();
papaslime kingslime = new papaslime();
boolean ongame = true;
while(ongame){
System.out.println("================================");
System.out.println("게임을 시작합니다! 당신의 직업 고르시오");
System.out.println("================================");
System.out.println("1. 개발자 | 2. 전사 | 3. 마법사");
System.out.println("================================");
System.out.print("직업 선택(번호) : ");
String jobselect = sc.nextLine();
switch(jobselect){
case "1":
programmer.info();
break;
case "2":
System.out.println("당신의 직업은 전사입니다");
break;
case "3":
System.out.println("당신의 직업은 마법사입니다");
break;
default:
System.out.println("반드시 직업을 골라야 합니다");
return;
}
System.out.println("=========================================");
System.out.println("1. HP 물약 | 2. MP 물약 | 3. 무지개 물약");
System.out.println("=========================================");
System.out.print("아이템 선택(번호) : ");
String itemselect = sc.nextLine();
switch(itemselect){
case "1":
System.out.println("HP 물약을 선택했습니다");
programmer.eatpotion1(potionHP.input_HPpotion());
programmer.state();
break;
case "2":
System.out.println("MP 물약을 선택했습니다");
programmer.eatpotion2(potionHP.input_MPpotion());
programmer.state();
break;
case "3":
System.out.println("방패를 선택했습니다");
programmer.eatpotion3(potionHP.input_HPMPpotion());
programmer.state();
break;
default:
System.out.println("아이템창 닫기");
return;
}
System.out.print("enter키를 눌러 게임을 진행해 주세요");
String enter0 = sc.nextLine();
// == 이 아니라 equal
if(enter0.equals("")){
System.out.println("당신은 길을 가는 도중 몬스터를 만났습니다");
} else {
System.out.print("enter키를 눌러 게임을 진행해 주세요");}
String enter100 = sc.nextLine();
if(enter100.equals("")){
// kingslime.info();
//대왕슬라임 등장
} else {
System.out.print("enter키를 눌러 게임을 진행해 주세요");}
String enter101 = sc.nextLine();
if(enter101.equals("")){
System.out.println("당신은 대담하고 무자비한 살상을 즐깁니다. 몬스터를 공격합니다.");
// 용사의 공격
kingslime.demage(programmer.BasicAttack());
}
String enter102 = sc.nextLine();
if(enter102.equals("")){
System.out.println("가여운 몬스터는 살기위해 당신을 공격합니다.");
//슬라임의 공격
programmer.demage(kingslime.PapaAttack());
}
String enter1 = sc.nextLine();
if(enter1.equals("")){
slimeRed.info();
//슬라임1 등장
} else {
System.out.print("enter키를 눌러 게임을 진행해 주세요");}
String enter2 = sc.nextLine();
if(enter2.equals("")){
System.out.println("당신은 대담하고 무자비한 살상을 즐깁니다. 몬스터를 공격합니다.");
// 용사의 공격
slimeRed.demage(programmer.BasicAttack());
}
String enter3 = sc.nextLine();
if(enter3.equals("")){
System.out.println("가여운 몬스터는 살기위해 당신을 공격합니다.");
//슬라임의 공격
programmer.demage(slimeRed.SlimeAttack());
}
String enter7 = sc.nextLine();
if(enter7.equals("")){
System.out.println("아빠 몬스터가 옵니다.");
//아빠슬라임 등장
slimebig.info();
}
String enter8 = sc.nextLine();
if(enter8.equals("")){
System.out.println("아빠 몬스터가 당신을 공격합니다.");
//아빠슬라임의 공격
programmer.demage(slimebig.SlimeAttack());
}
String enter4 = sc.nextLine();
if(enter4.equals("")){
System.out.println("스킬로 불쌍한 슬라임을 더욱 세게 공격합니다");
// 용사의스킬공격
// this.hp = this.hp - input_demage; 숫자와숫자 연산해야기때문에 void xx
slimeRed.demage(programmer.SkillAttack());
}
System.out.println("게임을 재개 하려면 Y / 게임을 종료하려면 N");
String endgame = sc.nextLine();
if(endgame.equals("y") || endgame.equals("Y")){
System.out.println("*`+ㅇO..*..+**` 개같이 부활합니다 `**+ㅇO..*..+`*");
ongame = true;
} else if(endgame.equals("n") || endgame.equals("N")) {
System.out.println("*`+ㅇO..*..+**` 게임을 종료합니다 `**+ㅇO..*..+`*");
ongame = false;
} else {
System.out.println("다시 입력해 주세요");
}
}
}
}
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 22-06-24 상속(Inheritance) ☑ (0) | 2022.06.24 |
---|---|
[JAVA] 22-06-23 어노테이션(Annotation) ☑ (0) | 2022.06.23 |
[JAVA] 22-06-28 for문 이용해서 별 찍기 ☑ (0) | 2022.06.21 |
[JAVA] 22-06-21 Getter와 Setter / 싱글톤 ☑ (0) | 2022.06.21 |
[JAVA] 22-06-20 자바 생성자 / this() ☑ (0) | 2022.06.20 |