반응형
6.12> 겜블링 게임을 만들어보자. 두 사람이 게임을 진행한다. 두 사람의 이름은 처음에 키보드를 통해서 입력 받는다. 게임에 참여하는 사람은 Person클래스로 작성하도록 하라. 각 사람이 번갈아 가면서 게임을 진행한다. 각 사람이 자기 차례에서 <Enter> 키를 입력하면 프로그램은 3개의 난수를 발생시키고 이 3개의 숫자가 모두 같은 지 판단한다. 동일하다면 승자가 되며 게임을 끝낸다. 게임은 끝날 때까지 두 사람이 번갈아 가면서 진행한다. 숫자의 범위를 너무 크게 잡으면 3개의 숫자가 일치하게 나올 가능성이 적기 때문에 편리를 위해 숫자의 범위는 0~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 | package SecondHW; import java.util.*; //스캐너 사용 위한 임포트 class Person{String name;} //Person 클래스와 그 원소 문자열 name public class Gembling { public static void main(String[] args) { Scanner s = new Scanner(System.in); //스캐너객체 s Person p1=new Person(); //Person 객체 를가리키는 레퍼런스 변수 p1 Person p2=new Person(); //Person 객체 를가리키는 레퍼런스 변수 p2 int rand[]= new int[3]; //사이즈3의 인트형 배열 rand int round=1; //int형변수 round 선언 및 1로 초기화 int who=0; //int형변수 who 선언 및 0으로 초기화 System.out.print("플레이어1의 이름을 입력하세요: "); p1.name=s.nextLine(); //p1.name을 nextLine으로 받음(개행문자 미포함) System.out.print("플레이어2의 이름을 입력하세요: "); p2.name=s.nextLine();//p2.name을 nextLine으로 받음(개행문자 미포함) while(true){ who=round%2; //who는 round를 2로나눈 나머지 즉 홀수면 p1, 짝수면 p2 if(who==1){ System.out.print(p1.name + "님 차례입니다. 엔터 입력>>"); } else if(who==0){ System.out.print(p2.name + "님 차례입니다. 엔터 입력>>"); } String check=s.nextLine(); //문자열 check를 nextLine으로 받음(nextLine은 개행 미포함) //즉 엔터만 치면 빈 문자열이 됨. if(check.isEmpty()){ // isEmpty : 스트링길이0이면true, 아니면 false for(int i=0;i<3;i++) //3번 반복 { rand[i]=(int)(Math.floor(Math.random()*4)); // 균일한 확률을 위해 곱하기 4한 후 내림 사용 System.out.print(rand[i]+" ");} //각 원소 출력 System.out.println();} //3개 출력후개행문자 출력 if((rand[0]==rand[1])&&(rand[1]==rand[2])) //0번,1번,2번 원소가 전부 같으면 {if(who==1){ //p1일때 System.out.println(p1.name+"님의 승리입니다 축하합니다!" ); break;} //승리축하문자 출력후 루프 탈출 else if(who==0){//p2일때 System.out.println(p2.name+"님의 승리입니다 축하합니다!" ); break;}} //승리축하문자 출력후 루프 탈출 round++; //승리하지못했을시 round증가시키고 루프 반복 }}} | cs |
반응형