JS

if문과 prompt를 사용하여 가위바위보 하기

hwongje 2024. 4. 24. 17:28

저번에 배운 if문과 prompt를 사용하여 가위바위보 기능을 구현해 보려고 한다.

 

플레이어의 값을 설정해주고 컴퓨터의 값을 설정한 뒤 그에 맞는 값이 나오도록 코드를 짜보자.

 

let rcp_p = prompt("Player 가위바위보")   // 플레이어의 값 설정해주기
let rcp_c = prompt("Computer 가위바위보") // 컴퓨터의 값 설정해주기

 

먼저 플레이어와 컴퓨터의 변수를 할당해주고 prompt를 사용하여 값을 넣을수 있도록 한다.

 

그 다음 if문과 논리연산자 AND와 OR을 사용하여 코드를 짜보았다.

 

if((rsp_C === "가위" && rsp ==="가위") || (rsp_C === "보" && rsp ==="보") || (rsp_C === "바위" && rsp ==="바위")) 
{
	alert("비겼습니다.")
 
}
else if((rsp_C === "바위" && rsp === "보") || (rsp_C === "가위" && rsp === "바위") || (rsp_C === "보" && rsp === "가위")) 
{
	alert("이겼습니다.")
}
     
else if((rsp_C === "보" && rsp === "바위") || (rsp_C === "가위" && rsp === "보") || (rsp_C === "바위" && rsp === "가위"))
{
	alert("졌습니다.")
}
     
else
{
	alert("다시 입력해주세요.")
}

 

AND연산자와 OR연산자만 사용하여 코드를 짠다면 위와 같은 코드를 짤수가 있다.

 

if문에 들어가는 코드가 길기도 하고 보기도 불편하여 좀 더 클린코드로 다시 짜보겠다.

 

if(rsp_p === rsp_c){
    alert("비겼습니다.")
}

else if(rsp_p !== rsp_c){
    if((rsp_p === "보") && (rsp_c === "바위"))
    {
        alert("이겼습니다.")
    }
    else if((rsp_p === "가위") && (rsp_c === "보"))
    {
        alert("이겼습니다.")
    }
    else if((rsp_p === "바위") && (rsp_c === "가위"))
    {
        alert("이겼습니다.")
    }
    else
    {
        alert("졌습니다.")
    }    
}

 

무승부의 경우의 수는 플레이어의 값과 컴퓨터의 값이 동등할 경우에만 존재하기에 두 값이 같을 경우 비겼습니다로 하고 다른 경우의 수를 적어주었다.

 

if문 안에 if문이 들어있어 어떤 사람에겐 더 복잡해 보일수도 있긴하지만 어떤 사람에겐 더 간단하게 보일수도 있는데

 

다들 알다시피 코드에는 정답은 없고 오답만 있기때문에 본인에 맞는 코드 작성법을 익히는게 중요하다고 생각한다.