It Study/POWER JAVA(기본서)
POWER JAVA 3장 프로그래밍 가위, 바위, 보 예제
prlkt5200
2022. 9. 4. 16:03
반응형
java에서 유저와 컴퓨터 간의 가위바위보 프로그램을 텍스트로만 짜봤습니다.
나중에 이 책에서 8장 정도 들어가면 그래픽 버전으로도 만들 수 있다고 하니
기대가 무척 되네요ㅎㅎ!
개인적인 느낌으로는 지금까지의 간단한 프로그램 중에서 그래도 제일 프로그램 느낌이
나지 않았나 하는 생각이 들었습니다.
내가 입력한 값과 그에 맞춰 자동으로 입력된 컴퓨터 값이 연산자와 조건식을 통해 상호작용을 하기도
하며... 내가 입력한 값이 항상 똑같아도 컴퓨터 입력 값은 난수로 매번 달라져서, 결과 또한 매번 바뀌기
때문이라고 할 수도 있는 것 같아요!
어쨌든 이번 문제도 참 재미있었는데, 다음에는 더 복잡하고 정교한 실용화 할 수 있는 프로그램이 만들 수 있게 되면
좋겠습니다ㅋㅋㅋ
ps:다만 아쉬운 점은 상수는 어째서 static이 아닌 public class 부분에 위치해 있는지 아직은 감이 안잡히네요...
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 | package test; import java.util.*; public class Test { //상수로 가위, 바위, 보의 값을 고정시켜준다. final int SCISSOR = 0; final int ROCK = 1; final int PAPER = 2; public static void main(String[] args) { //스캐너 객체 생성 Scanner sc = new Scanner(System.in); //가위 바위 보 안내 멘트(print로 해야 출력창에서 바로 붙여서 값을 입력 할 수 있다.) System.out.print("가위, 바위, 보:"); //이것은 플레이어가 직접 입력하는 값이다. //그리고 이에 따라서 가위 바위 보가 정해진다. int user = sc.nextInt(); //이것은 컴퓨터가 입력되는 값을 난수로 하고 //*3으로 난수의 값을 0.00000...~2.99999...로 범위 확대시켜준다. //또 난수 값이 실수이기에 (int)로 정수로 치환해준다. //결과적으로 난수 값은 0~2이 된다. int computer = (int)(Math.random()*3); if(user == computer) System.out.println("비겼습니다."); else if(user == (computer +1)%3) //(computer +1)%3 이 부분 때문에 //플레이어 0 컴퓨터 2, 플레이어 1 컴퓨터 0, 플레이어 2 컴퓨터 1의 값을 가질 때 //else if 조건 식이 만족하여 "인간 승리"가 결과로 뜨게 된다. //실제로 (user와 computer) 값을 비교해 보면 //(가위)0>(바위)1>(보)2>(가위)0에 따라서 유저가 승리할 때만 //else if 조건이 만족되는 것을 확인할 수 있다. System.out.println("인간: " +user + " 컴퓨터:"+ computer + " 인간 승리"); else System.out.println("인간: " +user + " 컴퓨터:"+ computer + " 컴퓨터 승리"); } | cs |
반응형