🐈

ITスクール DAY22 Recursion(再起)/じゃんけん

2023/08/09に公開

Recursion

public class EMain2 {

	public static void main(String[] args) {
		
		System.out.println(add(5));
		System.out.println(factorial(6));
		System.out.println(fibonacci(9));
	}
	
	public static int add(int x) {
		return  (x == 1) ? 1 : ( x + add(x-1));
	}

	public static int factorial(int x) {
		return  (x == 1) ? 1 : ( x * factorial(x-1));
	}
	
	public static int fibonacci(int x) {
		return (x == 1 || x == 2) ? 1 : fibonacci(x-2) + fibonacci(x-1);
		
	}
}
15
720
34

じゃんけん

import java.util.*;

public class EMain3 {

   public static void main(String[] args) {

  rockScissorPaper();
	
  }//main() end
	
	public static void rockScissorPaper() {
        System.out.println("지금부터 가위바위보 게임을 시작합니다.");
	System.out.println("룰은 간단합니다.\n가위바위보에서 이기거나 비기면 생존, 지면 사망입니다.");
	System.out.println("본 게임은 당신이 사망할때까지 계속 진행됩니다.");
	System.out.println("죽음의 가위바위보 게임에 참가하신 것을 환영합니다.");
	System.out.println();
	Scanner sc = new Scanner(System.in);
	int win = 0;
	String[] rcp = {"가위","바위","보"};
		
	while(true) {
	   System.out.println("가위는 1, 바위는 2, 보는 3을 입력해주세요.");
	   System.out.print  ("입력 : ");
			
	  int playerChoice = sc.nextInt();
	  if(playerChoice <1 || playerChoice > 3) {
	   System.out.println("잘못 입력했습니다. 다시 입력하세요.");
	   System.out.println();
	   continue;
	  }
			
	  Random random = new Random();
	  int computerChoice = random.nextInt(3)+1;
			
	 System.out.printf("컴퓨터는 %s를 내었습니다.\n" , rcp[computerChoice-1]);
	 System.out.printf("당신은 %s를 내었습니다.\n" , rcp[playerChoice-1]);
			
	 int gameResult = playerChoice - computerChoice;  
			
	 if(gameResult == 0) {
		System.out.println();
		System.out.println("비겼습니다");
		System.out.println();
	}else if((gameResult==1 || gameResult==-2)) {
		win++;
		System.out.println();
		System.out.println("이겼습니다.");
		System.out.println();
	}else {
		System.out.println();
		System.out.println("당신은 사망했습니다.");
		System.out.println("지금까지의 승리 횟수 : " + win +"번");
		System.out.println();
		sc.close();
		break;
		}
	   }	
	}//method
}// class end

じゃんけんを作ってみた。
最初は、引き算を考えず、さまざまなケースを分けたが、先生がint gameResult = playerChoice - computerChoiceを追加することでケースを3つ減らすことができた。
規則を探してコードを減らす練習をしていきたい。

Discussion