Math.random()
- Math.random()은 Math 클래스 하위에 static 메서드로
0.0 <= Math.random() < 1.0
- 임의의 수를 처리하기
0.0 10 <= Math.random() 10 < 1.0 10
0.0 <= Math.random() 10 < 10.0
0.0 <= (int)Math.random() 10 < 10.0 // 0 ~ 9 10가지 경우의 수
1.0 <= (int)(Math.random() 10 + 1) < 11.0 // 1 ~ 10 10가지 경우의 수
- 임의의 정수 처리 공식
(int)(Math.random() 경우의 수 + 시작 수)
1) 주사위를 임의로 처리하기
1 ~ 6까지 6가지 경우의 수
(int)(Math.random() 6 + 1)
- Math.random()를 활용한 가위 바위 보 게임
ex) 컴퓨터가 가위, 바위, 보를 내게 하고, 내가 가위 바위 보를 Scanner로 냈을 때, 승/무/패가 되게 조건 처리하세요. 가위 0 바위 1 보 2
0 1 1이 이김
1 2 2가 이김
2 0 0이 이김
idx++ 0 1 2 3 4 5
idx++%3 0 1 2 0 1 2.. 첫번째 사람이 가위 - 0
두번째 사람이 바위 - 1 //바위가 승리
첫번째 사람의 idx보다 1개 더 많으면 뒤 사람이 승 첫번째 사람이 바위 - 1
두번째 사람이 보 - 2 //보가 승리
첫번쨰 사람의 idx보다 1개 더 많으면 뒤 사람이 승 첫번째 사람이 보 - 2
두번째 사람이 가위 - 0 //보가 승리
첫번째 사람의 idx%3보다 1개ㅏ 더 많으면 뒤에 사람이 승 2다음이 3인데 3을 %3으로 처리하면 0이 된다.
비기는 조건 idx가 동일
그 외는 첫번째 사람이 이기는 처리
int comIdx = (int)(Math.random()*3); //0,1,2
Scanner sc2 = new Scanner(System.in);
System.out.println("#컴퓨터와 함께하는 가위/바위/보#");
System.out.println("내가 선택한 가위/바위/보");
String myChStr = sc2.nextLine();
int myIdx = myChStr.equals("가위")?0:(myChStr.equals("바위")?1:2);
String comChStr = comIdx==0?"가위":(comIdx==1?"바위":"보");
System.out.println("컴의 선택 : "+comChStr);
System.out.println("나의 선택 : "+myChStr);
if(comIdx==myIdx) {
System.out.println("무승부");
}else if((comIdx+1)%3==myIdx) {
System.out.println("나의 승");
}else {
System.out.println("컴의 승");
}