갬블링 게임을 만들어보자. 두 사람이 게임을 진행한다. 이들의 이름을 키보드로 입력 받으며 각 사람은 Person 클래스로 작성하라. 그러므로 프로그램에는 2개의 Person 객체가 생성되어야 한다. 두 사람은 번갈아 가면서 게임을 진행하는데 각 사람이 자기 차례에서 Enter키를 입력하면, 3개의 난수가 발생되고 이 숫자가 모두 같으면 승자가 되고 게임이 끝난다. 난수의 범위를 너무 크게 잡으면 3개의 숫자가 일치하게 나올 가능성이 적기 때문에 숫자의 범위는 1~3까지로 한다.
package main;
import java.util.Scanner;
class Person{
String name;
String getName(){return this.name;}
public Person(String name){this.name = name;}
}
public class Practice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name;
System.out.print("1번째 선수 이름 : ");
name = scanner.next();
Person p1 = new Person(name);
System.out.print("2번째 선수 이름 : ");
name = scanner.next();
Person p2 = new Person(name);
String s;
s = scanner.nextLine();
int who = 0;
while(true){
Person p;
if(who == 0){
p = p1;
who = 1;
}
else{
p = p2;
who = 0;
}
System.out.print("[" + p.getName() + "]:");
s = scanner.nextLine();
int num [] = new int[3];
for(int i = 0; i < 3; i++) {
num[i] = (int) (Math.random() * 3 + 1);
System.out.print(num[i] + " ");
}
if(num[0] == num[1] && num[0] == num[2]){
System.out.println(p.getName() + "님이 이겼습니다!");
break;
}
else{
System.out.println("아쉽군요!");
}
}
scanner.close();
}
}
1번째 선수 이름 : Nick
2번째 선수 이름 : Charlie
[Nick]:
2 2 3 아쉽군요!
[Charlie]:
1 1 1 Charlie님이 이겼습니다!
1번째 선수 이름 : Tao
2번째 선수 이름 : Elle
[Tao]:
2 1 2 아쉽군요!
[Elle]:
3 2 1 아쉽군요!
[Tao]:
1 1 1 Tao님이 이겼습니다!
StringBuffer 클래스를 활용하여 명령처럼 문자열을 수정하라. 아래 실행 예시에서 love!LOVE는 love를 찾아 LOVE로 수정하라는 명령이다. 첫 번째 만난 문자열만 수정한다.
우리는 love Java Programming.
명령: 우리는!We
We love Java Programming.
명령: LOV!사랑
찾을 수 없습니다!
명령: !Java
찾을 수 없습니다!
명령: love!LOVE
We LOVE Java Programming.
명령: 그만
종료합니다
package main;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Practice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String command;
StringBuffer sb = new StringBuffer("Do you like pineapple?");
while(true){
System.out.println(sb);
System.out.print("명령 : ");
command = scanner.next();
if(command.equals("그만")) {
System.out.println("종료합니다");
break;
}
StringTokenizer split = new StringTokenizer(command, "!");
String original = split.nextToken();
String change = split.nextToken();
int start = sb.indexOf(original);
int end = start + original.length();
if(start == -1){
System.out.println("찾을 수 없습니다!");
continue;
}
sb.replace(start, end, change);
}
scanner.close();
}
}
Do you like pineapple?
명령 : pineapple?!파인애플?
Do you like 파인애플?
명령 : you!당신은
Do 당신은 like 파인애플?
명령 : 그만
종료합니다
문자열을 입력받아 프로그램을 실행하고 싶은 경우
StringBuffer sb = new StringBuffer("Do you like pineapple?");
위의 코드를 아래처럼 바꾸면 된다.
StringBuffer sb = new StringBuffer(scanner.nextLine());