package com.company;
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int outerSelectIndex = 9;
System.out.print("Enter your name: ");
String nameVar = input.next();
Character character = new Character(nameVar);
Begger A = new Begger(0);
Begger B = new Begger(1);
Begger C = new Begger(2);
Clock clock = new Clock();
while(outerSelectIndex != 0){
int innerSelectIndex = 9;
callMainMenu();
System.out.print("Choose your selection: ");
outerSelectIndex = input.nextInt();
switch(outerSelectIndex){
case 1: //1. Enter InformationMenu
while(innerSelectIndex != 0){
callInformationMenu(character);
System.out.print("Choose your selection: ");
innerSelectIndex = input.nextInt();
switch(innerSelectIndex){
case 1: //1. Refresh Information
character.updateProperty(clock);
break;
case 0: //0. Rerutn to MainMenu
break;
}
}
break;
case 2: //2. Enter StoreMenu
while(innerSelectIndex != 0) {
callStoreMenu(character, A, B, C);
System.out.print("Choose your selection: ");
innerSelectIndex = input.nextInt();
switch (innerSelectIndex) {
case 1: //1. Employ begger A
character.purchase(A, clock);
break;
case 2: //2. Employ begger B
character.purchase(B, clock);
break;
case 3: //3. Employ begger C
character.purchase(C, clock);
break;
case 0: //4. Return to MainMenu
break;
}
}
break;
case 0: //0. Exit Game
break;
}
}
}
public static void callMainMenu(){
clearScreen();
System.out.println("【【【 MainMenu 】】】");
System.out.println("1. Enter InformationMenu");
System.out.println("2. Enter StoreMenu");
System.out.println("0. Exit Game");
}
public static void callInformationMenu(Character character){
clearScreen();
System.out.println("【【【 MainMenu > InformationMenu 】】】");
System.out.println("Username: " + character.characcterName);
System.out.println("Property: " + (int) character.property + " won");
System.out.println("Property growth per Second: " + (int) character.propertyGrowthPerSecond + " won/s");
System.out.println("1. Refresh Information");
System.out.println("0. Return to MainMenu");
}
public static void callStoreMenu(Character character, Begger A, Begger B, Begger C){
clearScreen();
System.out.println("【【【 MainMenu > StoreMenu 】】】");
System.out.println("Current Property :" + (int) character.property + " won");
System.out.println("1. Employ A begger - price " + (int) A.beggerPrice + " won");
System.out.println(" number of begger A is " + A.count);
System.out.println(" begging amount per second for begger A is " + A.beggingAmountPerSecond);
System.out.println("2. Employ B begger - price " + (int) B.beggerPrice + " won");
System.out.println(" number of begger B is " + B.count);
System.out.println(" begging amount per second for begger B is " + B.beggingAmountPerSecond);
System.out.println("3. Employ C begger - price " + (int) C.beggerPrice + " won");
System.out.println(" number of begger C is " + C.count);
System.out.println(" begging amount per second for begger C is " + C.beggingAmountPerSecond);
System.out.println("0. Return to MainMenu");
}
public static void clearScreen(){
for(int i = 0; i < 100; i++)
System.out.println();
}
}
class Character{
double property;
double propertyGrowthPerSecond;
String characcterName;
Character(String newCharacterName){
this.property = 0;
this.propertyGrowthPerSecond = 1.0;
this.characcterName = newCharacterName;
}
public void purchase(Begger beggerName, Clock clock){
this.updateProperty(clock);
if(this.property >= beggerName.beggerPrice){
System.out.println("Succefully Employed!");
beggerName.beggerLevelUp();
this.property -= beggerName.beggerPrice;
this.propertyGrowthPerSecond += beggerName.beggingAmountPerSecond;
}
else{
System.out.println("You don't have enough money!");
}
}
public void updateProperty(Clock clock){
clock.secondTime = System.currentTimeMillis();
double deltaTime = (double)((clock.secondTime - clock.firstTime) / 1000);
this.property += deltaTime * this.propertyGrowthPerSecond;
clock.timeChange();
}
}
class Begger{
double beggerPrice;
double beggingAmountPerSecond;
int count = 0;
int beggerIndex;
Begger(int newBeggerIndex){
this.beggerIndex = newBeggerIndex;
switch(beggerIndex){
case 0:
this.beggerPrice = 1;
this.beggingAmountPerSecond = 1;
break;
case 1:
this.beggerPrice = 20;
this.beggingAmountPerSecond = 4;
break;
case 2:
this.beggerPrice = 100;
this.beggingAmountPerSecond = 20;
break;
}
}
public void beggerLevelUp(){
switch(beggerIndex){
case 0:
this.beggerPrice *= 1.2;
this.beggingAmountPerSecond *= 1.5;
this.count += 1;
break;
case 1:
this.beggerPrice *= 2.0;
this.beggingAmountPerSecond *= 2.5;
this.count += 1;
break;
case 2:
this.beggerPrice *= 2.5;
this.beggingAmountPerSecond *= 2.8;
this.count += 1;
break;
}
}
}
class Clock{
long firstTime;
long secondTime;
Clock(){
firstTime = System.currentTimeMillis();
}
public void timeChange(){
this.firstTime = this.secondTime;
this.secondTime = 0;
}
}
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int outerSelectIndex = 9;
System.out.print("Enter your name: ");
String nameVar = input.next();
Character character = new Character(nameVar);
Begger A = new Begger(0);
Begger B = new Begger(1);
Begger C = new Begger(2);
Clock clock = new Clock();
while(outerSelectIndex != 0){
int innerSelectIndex = 9;
callMainMenu();
System.out.print("Choose your selection: ");
outerSelectIndex = input.nextInt();
switch(outerSelectIndex){
case 1: //1. Enter InformationMenu
while(innerSelectIndex != 0){
callInformationMenu(character);
System.out.print("Choose your selection: ");
innerSelectIndex = input.nextInt();
switch(innerSelectIndex){
case 1: //1. Refresh Information
character.updateProperty(clock);
break;
case 0: //0. Rerutn to MainMenu
break;
}
}
break;
case 2: //2. Enter StoreMenu
while(innerSelectIndex != 0) {
callStoreMenu(character, A, B, C);
System.out.print("Choose your selection: ");
innerSelectIndex = input.nextInt();
switch (innerSelectIndex) {
case 1: //1. Employ begger A
character.purchase(A, clock);
break;
case 2: //2. Employ begger B
character.purchase(B, clock);
break;
case 3: //3. Employ begger C
character.purchase(C, clock);
break;
case 0: //4. Return to MainMenu
break;
}
}
break;
case 0: //0. Exit Game
break;
}
}
}
public static void callMainMenu(){
clearScreen();
System.out.println("【【【 MainMenu 】】】");
System.out.println("1. Enter InformationMenu");
System.out.println("2. Enter StoreMenu");
System.out.println("0. Exit Game");
}
public static void callInformationMenu(Character character){
clearScreen();
System.out.println("【【【 MainMenu > InformationMenu 】】】");
System.out.println("Username: " + character.characcterName);
System.out.println("Property: " + (int) character.property + " won");
System.out.println("Property growth per Second: " + (int) character.propertyGrowthPerSecond + " won/s");
System.out.println("1. Refresh Information");
System.out.println("0. Return to MainMenu");
}
public static void callStoreMenu(Character character, Begger A, Begger B, Begger C){
clearScreen();
System.out.println("【【【 MainMenu > StoreMenu 】】】");
System.out.println("Current Property :" + (int) character.property + " won");
System.out.println("1. Employ A begger - price " + (int) A.beggerPrice + " won");
System.out.println(" number of begger A is " + A.count);
System.out.println(" begging amount per second for begger A is " + A.beggingAmountPerSecond);
System.out.println("2. Employ B begger - price " + (int) B.beggerPrice + " won");
System.out.println(" number of begger B is " + B.count);
System.out.println(" begging amount per second for begger B is " + B.beggingAmountPerSecond);
System.out.println("3. Employ C begger - price " + (int) C.beggerPrice + " won");
System.out.println(" number of begger C is " + C.count);
System.out.println(" begging amount per second for begger C is " + C.beggingAmountPerSecond);
System.out.println("0. Return to MainMenu");
}
public static void clearScreen(){
for(int i = 0; i < 100; i++)
System.out.println();
}
}
class Character{
double property;
double propertyGrowthPerSecond;
String characcterName;
Character(String newCharacterName){
this.property = 0;
this.propertyGrowthPerSecond = 1.0;
this.characcterName = newCharacterName;
}
public void purchase(Begger beggerName, Clock clock){
this.updateProperty(clock);
if(this.property >= beggerName.beggerPrice){
System.out.println("Succefully Employed!");
beggerName.beggerLevelUp();
this.property -= beggerName.beggerPrice;
this.propertyGrowthPerSecond += beggerName.beggingAmountPerSecond;
}
else{
System.out.println("You don't have enough money!");
}
}
public void updateProperty(Clock clock){
clock.secondTime = System.currentTimeMillis();
double deltaTime = (double)((clock.secondTime - clock.firstTime) / 1000);
this.property += deltaTime * this.propertyGrowthPerSecond;
clock.timeChange();
}
}
class Begger{
double beggerPrice;
double beggingAmountPerSecond;
int count = 0;
int beggerIndex;
Begger(int newBeggerIndex){
this.beggerIndex = newBeggerIndex;
switch(beggerIndex){
case 0:
this.beggerPrice = 1;
this.beggingAmountPerSecond = 1;
break;
case 1:
this.beggerPrice = 20;
this.beggingAmountPerSecond = 4;
break;
case 2:
this.beggerPrice = 100;
this.beggingAmountPerSecond = 20;
break;
}
}
public void beggerLevelUp(){
switch(beggerIndex){
case 0:
this.beggerPrice *= 1.2;
this.beggingAmountPerSecond *= 1.5;
this.count += 1;
break;
case 1:
this.beggerPrice *= 2.0;
this.beggingAmountPerSecond *= 2.5;
this.count += 1;
break;
case 2:
this.beggerPrice *= 2.5;
this.beggingAmountPerSecond *= 2.8;
this.count += 1;
break;
}
}
}
class Clock{
long firstTime;
long secondTime;
Clock(){
firstTime = System.currentTimeMillis();
}
public void timeChange(){
this.firstTime = this.secondTime;
this.secondTime = 0;
}
}
아직 버전 1.0이에양..
과제는아니고 고딩들가르치는데 쓰는거양...
오버플로우 지랄나는거랑 가끔 재산이 음수나오는데 오늘은 더이상 보기 싫어양...
댓글 1