JAVA :: Test102_클래스와 인스턴스(난수를 발생 시켜 가위, 바위, 보 프로그램 구현)

2023. 9. 13. 17:44· 📚 Study/Java

○ 실습

 

1~3 사이의 난수를 발생시켜서

가위, 바위, 보 게임 프로그램을 구현한다.

단, 클래스의 개념을 활용하여 처리할 수 있도록 한다.

또한, 배열을 활용하여 처리할 수 있도록 한다.

최종적으로 RpsGame 클래스를 완성할 수 있도록 한다.

 

※ 기준 데이터 → 1:가위, 2:바위, 3:보

 

실행 예)

1.가위, 2:바위, 3:보 중 입력(1~3) : 4

1.가위, 2:바위, 3:보 중 입력(1~3) : -2

1.가위, 2:바위, 3:보 중 입력(1~3) : 2

 

- 유저     : 바위

- 컴퓨터 : 보

 

>> 승부 최종 결과 : 컴퓨터가 이겼습니다~!!!

계속하려면 아무 키나 누르세요...

 

import java.util.Random;
import java.util.Scanner;
class RpsGame
{
private int user;
private int com;
// 컴퓨터의 가위바위보
private void runCom() //-- runCom() 인스턴스 메소드
{
Random rd = new Random();
com = rd.nextInt(3) + 1; // nextInt - 특정 범위 사이에 난수 중 하나 가져옴 ex. nextInt(3)한다고 3개 뽑는게 아닌 0~2 사이에서 하나 뽑는 것
}
// 유저의 가위바위보
public void input() // 외부에서 접근해서 값을 입력해야하니까 퍼블릭. input() 인스턴스 메소드
{
// 사용자가 가위바위보 하기 전에... 컴퓨터(주최측) 먼저 가위바위보
runCom();
Scanner sc = new Scanner(System.in);
do
{
System.out.print("1:가위, 2:바위, 3: 보 중 입력(1~3) : ");
user = sc.nextInt();
}
while (user<1 || user>3);
}
// 중간 결과 출력
public void middleCalc() // 중간 결과가 뭔지 확인을 위함이니 void, 매개변수 없어도 됨
{
String[] str = {"가위", "바위", "보"}; //-- 1 2 3 → [0][1][2]
System.out.println();
System.out.println("- 유저 : " + str[user-1]);
System.out.println("- 컴퓨터 : " + str[com-1]);
}
// 승부에 대한 최종 결과 연산
// - 무승부 상황입니다~!!!
// - 당신이 승리했습니다~!!!
// - 컴퓨터가 승리했습니다~!!!
public String resultCalc() // 컴퓨터가 입력한 값, 사용자가 입력한 값 전역변수기 때문에 넘겨줄 매개변수 없음
{
String result = "무승부 상황입니다~!!!";
// (유저=="가위" 컴=="보") (유저=="바위" 컴=="가위") (유저=="보" 컴=="바위")
// (유저=="가위" && 컴=="보") || (유저=="바위" && 컴=="가위") || (유저=="보" && 컴=="바위")
if ((user==1 && com==3) || (user==2 && com==1) || (user==3 && com==2))
{
result = "당신이 승리했습니다~!!!";
}
// (유저=="가위" 컴=="바위") (유저=="바위" 컴=="보") (유저=="보" 컴=="가위")
// (유저=="가위" && 컴=="바위") || (유저=="바위" && 컴=="보") || (유저=="보" && 컴=="가위")
else if ((user==1 && com==2) || (user==2 && com==3) || (user==3 && com==1))
{
result = "컴퓨터가 승리했습니다~!!!";
}
return result;
}
// 결과 출력
public void print(String str)
{
System.out.printf(">> 승부 최종 결과 : %s\n", str); // 왜 str이야? result가 아니라?
}
}
public class Test102
{
public static void main(String[] args)
{
RpsGame ob = new RpsGame();
ob.input();
ob.middleCalc();
String result = ob.resultCalc();
ob.print(result);
}
}
저작자표시 (새창열림)
'📚 Study/Java' 카테고리의 다른 글
  • JAVA :: Test104_클래스와 인스턴스(메소드 오버로딩 형태 확인)
  • JAVA :: Test103_클래스와 인스턴스(메소드 오버로딩 Method overloading)
  • JAVA :: Test101_클래스와 인스턴스(클래스의 개념을 활용하여 점수를 입력 받아 총점, 평균 계산하는 프로그램 구현)
  • JAVA :: Test100_클래스와 인스턴스(static)
bono-hye
bono-hye
bono-hye
공부를 합시다👩🏻‍💻
bono-hye
전체
오늘
어제
  • 분류 전체보기 (506)
    • 📚 Study (225)
      • Java (148)
      • Oracle (28)
      • JDBC (4)
      • Javascript (9)
      • JSP & Servlet (19)
      • JQuery (6)
      • Spring (9)
      • Springboot (0)
      • 개인 공부 (2)
    • ✏️ 문제풀이 (280)
      • 백준 (181)
      • 프로그래머스 (99)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리
hELLO · Designed By 정상우.v4.2.1
bono-hye
JAVA :: Test102_클래스와 인스턴스(난수를 발생 시켜 가위, 바위, 보 프로그램 구현)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.