반응형

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


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > JAVA' 카테고리의 다른 글

가장 큰 수  (0) 2017.06.19
겜블링 게임  (0) 2017.06.19
대문자 개수 세기  (0) 2017.06.19
메소드 오버라이딩  (0) 2017.06.18
추상 클래스  (0) 2017.06.18
반응형


2.4> 369게임을 간단히 작성해보자. 1~99까지의 정수를 키보드로부터 입력 받고 정수에 3,6,9 중 하나가 있는 경우는 박수짝을 출력하고 두 개 있는 경우는 박수짝짝을 출력하는 프로그램을 작성하라. 예를 들면, 키보드로 입력된 수가 13인 경우 박수짝, 36인 경우 박수짝짝을 출력하면 된다.



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
package HW1_JAVA; //패키지 이름
import java.util.Scanner// 스캐너 클래스의 경로 명이 java.util.Scanner
class tsn{
    public void game(int num)
    {
        int t=num/10int o=num%10//t=num을 10으로 나눈 몫 o=num을 10으로 나눈 나머지
        if(((t%10==3)||(t%10==6)||(t%10==9))&&((o%10==3)||(o%10==6)||(o%10==9)))
        { // 10으로 나눴을 때 t와 o가 3이나 6이나 9가 동시에 나왔을 때 박수짝짝 출력
            System.out.println("박수짝짝");
        }
        else if(((t%10==3)||(t%10==6)||(t%10==9))||((o%10==3)||(o%10==6)||(o%10==9)))
        { // 10으로 나눴을 때 t와 o가 3이나 6이나 9가 둘중 하나만 나왔을 때 박수짝 출력
            System.out.println("박수짝");
        }
        else //이외의 경우 노우 박수~ 출력
            System.out.println("노우 박수~");
    }
}
public class threesixninegame {
    
    public static void main(String[] args) {
        int num=0//int형 변수 num 생성
        tsn b=new tsn(); //tsn 클래스인 레퍼런스 변수 b 와 객체 생성
        Scanner a=new Scanner(System.in); // Scanner class인 레퍼런스 변수a 와 객체 생성
        while(true// 무한 반복
        {
        System.out.print("1~99 사이의 정수를 입력하시오(-1은종료)>>"); // 스트링 출력
        num=a.nextInt(); //num에 int type 입력받아 리턴
        if(num==-1)break// num에 -1이 들어가면 while 루프를 빠져나온다.
        b.game(num); // b.game 메소드 호출
        }
    }}
 
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > JAVA' 카테고리의 다른 글

정수 오름차순 정렬기  (0) 2017.06.18
하위 문자 모두 출력하기  (0) 2017.06.18
직사각형 충돌  (0) 2017.06.18
윤년 판별기  (0) 2017.06.18
삼각형 만들기  (0) 2017.06.18

+ Recent posts