반응형
6.11> Math.random()의 난수 발생기를 이용하여 사용자와 컴퓨터가 하는 가위바위보 게임을 만들어보자. 가위, 바위, 보는 각각 1, 2, 3 키이다. 사용자가 1, 2, 3 키 중 하나를 입력하면 동시에 프로그램도 난수 발생기를 이용하여 1, 2, 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 | package SecondHW; import java.util.Scanner; //스캐너 사용을 위한 import public class RCP { public static void main(String[] args) { int com; int user; int diff; //int 형 변수 com,user,diff 각각 컴퓨터, 사용자, 컴퓨터-사용자가 들어감 Scanner s = new Scanner(System.in); //스캐너 객체 s while(true) //무한 반복 { System.out.print("가위(1),바위(2),보(3) 중 하나를 입력하세요 (4)는종료 : "); //문장 출력 user=s.nextInt(); //user에 int 타입으로 리턴된 값 대입 if(user==4) //user가 4면 무한 루프 탈출 break; com=(int)(Math.floor(Math.random()*3)+1); //*2+1 을하면 2가 나올 확률히 현저히 높아져 내림으로 하였습니다. com에 1~3중 무작위 정수 대입 diff=user-com; //diff는 user에서 com 뺀 값 if(com==1){ //com==1이면 컴퓨터는 가위라는 것 출력 System.out.println("컴퓨터는 가위를 냈습니다."); } else if(com==2){ //com==2이면 컴퓨터는 바위라는 것 출력 System.out.println("컴퓨터는 바위를 냈습니다."); } else if(com==3) //com==1이면 컴퓨터는 보자기라는 것 출력 {System.out.println("컴퓨터는 보자기를 냈습니다.");} if(diff==0) //diff==0이면 비겼음을 출력 System.out.println("비겼습니다."); else if(diff==1||diff==-2) //diff==1이나 -2면 사용자가 승리(진리표를 만들어보면 승리는 두가지 조건밖에 없음) { System.out.println("축하합니다! 당신이 이겼습니다."); } else if(diff==2||diff==-1) //diff==2이나 -1면 컴퓨터가 승리(진리표를 만들어보면 승리는 두가지 조건밖에 없음) { System.out.println("네가 졌다 이 악마야!."); }} }} | cs |
반응형