9. 철수와 컴퓨터의 가위바위보 게임을 만들어보자. 가위, 바위, 보는 각각 1,2,3 키이다. 철수가 키를 입력하면, 동시에 프로그램도 Math.Random()을 이용하여 1,2,3 중에 한 수를 발생시키고 이것을 컴퓨터가 낸 것으로 한다. 그런 다음 철수와 컴퓨터 중에 누가 이겼는지 판별하여 승자를 출력하라.
[실행결과]
철수[가위(1), 바위(2), 보(3),끝내기(4)]>>1
가위 : 가위
비겼습니다.
철수[가위(1), 바위(2), 보(3),끝내기(4)]>>2
바위 : 가위
철수가 이겼습니다.
철수[가위(1), 바위(2), 보(3),끝내기(4)]>>3
보 : 가위
컴퓨터가 이겼습니다.
철수[가위(1), 바위(2), 보(3),끝내기(4)]>>4
종료합니다.
[풀이]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
package practice6_9;
import java.util.Scanner;
class transmission{
private String s;
transmission(){
}
String transrps(int i){
switch(i) {
case 1:
return "가위";
case 2:
return "바위";
case 3:
return "보";
case 4 :
return "끝내기";
default :
return "잘못입력하셨습니다.";
}
}
int com_rando() {
return (int) (Math.floor(Math.random()*2)+1);
}
public void printrst(int a, int b){
switch (a) {
case 1:{
if (b == 2)
System.out.println("컴퓨터가 이겼습니다.");
else if (b == 3)
System.out.println("철수가 이겼습니다.");
else System.out.println("비겼습니다.");
}break;
case 2:{
if(b == 1)
System.out.println("철수가 이겼습니다.");
else if(b == 3)
System.out.println("컴퓨터가 이겼습니다.");
else System.out.println("비겼습니다.");
}break;
case 3:
{
if(b == 1)
System.out.println("컴퓨터가 이겼습니다.");
else if(b == 2)
System.out.println("철수가 이겼습니다.");
else System.out.println("비겼습니다.");
}break;
}
}
}
public class rockpaperscissors {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 0;
int nc = 0;
Scanner scanner = new Scanner(System.in);
transmission trs = new transmission();
while(true) {
System.out.print("철수[가위(1), 바위(2), 보(3),끝내기(4)]>>");
n = scanner.nextInt();
if(n == 4) {
System.out.println("종료합니다.");
break;}
nc = trs.com_rando();
System.out.println(trs.transrps(n)+" : "+trs.transrps(nc));
trs.printrst(n,nc);}
}
}
|
cs |
10. 겜블링 게임을 만들어보자. 두 사람이 게임을 진행한다. 이들의 이름을 키보드로 입력받으며, 각 사람은 Person 클래스로 작성하라. 그러므로 프로그램에는 2개의 person 객체가 생성되어야 한다. 두 사람은 번갈아 가면서 게임을 진행하는데 각 사람이 자기 차례에서 <Enter>키를 입력하면, 3개의 난수가 발생되고 이 숫자가 모두 같으면 승자가 되고 게임이 끝난다. 난수의 범위를 너무 크게 잡으면 3개의 숫자가 일치하게 나올 가능성이 적기 때문에 숫자의 범위는 1~3까지로 한다.
[실행결과]
1번째 선수 이름수희
2번째 선수 이름연수
[수희]
2 3 1
아쉽군요!
[연수]
3 3 3
연수이겼습니다.
[풀이]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package practice6_10;
import java.util.Scanner;
class Person{
Scanner scanner = new Scanner(System.in);
String name;
int S,Y;
Person(String name){
this.name = name;
}
int machine(){
int a = (int) Math.floor(Math.random()*3+1);
int b = (int) Math.floor(Math.random()*3+1);
int c = (int) Math.floor(Math.random()*3+1);
System.out.print("["+name+"]");
scanner.nextLine();
System.out.println(" "+a+" "+b+" "+c);
if(a == b && b ==c) {
System.out.println(name+"이겼습니다.");
return 1;
}
else {System.out.println("아쉽군요!");
return 2;
}
}
}
public class slotmachine {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.print("1번째 선수 이름");
String S = scanner.next();
System.out.print("2번째 선수 이름");
String Y = scanner.next();
Person s = new Person(S);
Person y = new Person(Y);
while(s.machine() ==2 && y.machine() == 2){
s.machine();
y.machine();
}
}
}
|
cs |
11.StringBuffer 클래스를 활용하여 명령처럼 문자열을 수정하라. 아래 실행 예시에서
love!LOVE 는 love를 찾아 LOVE로 수정하라는 명령이다. 첫 번째 만난 문자열만 수정한다.
[풀이]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package practice06_11; import java.util.Scanner; public class StringBuffer_pr { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print(">>"); Scanner scanner = new Scanner(System.in); String text = scanner.nextLine(); StringBuffer sb = new StringBuffer(text); while(true) { System.out.print("명령: "); String cmd = scanner.nextLine(); if(cmd.equals("그만")) { System.out.print("종료합니다"); break; } String [] tokens = cmd.split("!"); if(tokens.length != 2) { System.out.println("잘못된 명령입니다!"); } else { if(tokens[0].length() == 0 || tokens[1].length() == 0) { System.out.println("잘못된 명령입니다!"); continue; } int index = sb.indexOf(tokens[0]); if(index == -1) { // not found! System.out.println("찾을 수 없습니다!"); continue; } sb.replace(index, index+tokens[0].length(), tokens[1]); System.out.println(sb.toString()); } } scanner.close(); } } | cs |
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
<Java>명품 Java programming 7장 1번 ~ 6번 (0) | 2021.07.16 |
---|---|
<Java> 자바의 정석 9장 1~4,7번 (0) | 2021.07.14 |
<Java> 명품 Java Programming 실습문제 6장 1 - 8 (0) | 2021.07.13 |
<JAVA> 명품 JAVA Programming 5장 실습문제 9번, 10번, 11번 (0) | 2021.07.08 |
<JAVA> 명품 JAVA Programming 5장 실습문제 3- 4번 (0) | 2021.07.08 |