개발자/Spring

[Spring] 간단한 구구단 게임 구현

푸루닉 2022. 12. 27. 17:38

multiplication.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>

	<h3>${answer } * ${answer2 } 무엇 일까요?!</h3>
	
<form method="POST">
	<p><input 	type="number" 
				name="user" 
				placeholder="1 ~ 100" 
				min="1" max="100"
				required autofocus></p>
				
	<p><input type="submit"></p>
</form>

<h3>${status }</h3>


</body>
</html>

multiplicationController

package com.itbank.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.itbank.service.MultiplicationService;

@Controller
@RequestMapping("/multiplication")
public class MultiplicationController {
	
	@Autowired private MultiplicationService multi;
	
	@GetMapping
	public ModelAndView multi() {
		// 버튼을 누르는 순간 무엇*무엇 인지 바로 등장해야하기때문에 걸어준다.
		ModelAndView mav = new ModelAndView();
		
		multi.initialize();
		int answer = multi.getAnswer();
		int answer2 = multi.getAnswer2();
		
		mav.addObject("answer", answer);
		mav.addObject("answer2", answer2);
		return mav;
	}
	
	@PostMapping
	public ModelAndView multi(int user) {
		ModelAndView mav = new ModelAndView();
		
		String status = multi.getStatus(user);
		int answer = multi.getAnswer();
		int answer2 = multi.getAnswer2();
		
		switch(status) {
		case "Correct":
			mav.setViewName("multiCorrect");
			break;
		}
		mav.addObject("status", status);
		mav.addObject("answer", answer);
		mav.addObject("answer2", answer2);
		return mav;
	}

}

multiplicationService

package com.itbank.service;

import java.util.Random;

import org.springframework.stereotype.Service;

@Service
public class MultiplicationService {

	private int answer;
	private int answer2;
	
	public void initialize() {
		Random ran = new Random();
		answer = ran.nextInt(9) + 2;
		answer2 = ran.nextInt(9) + 2;
	}
	
	public String getStatus(int user) {
		String status = null;
		
		if(answer*answer2 == (user)) {
			status = "Correct";
		}
		else {
			status = "틀렸습니다";
		}
		return status;
	}

	public int getAnswer() {
		return answer;
	}

	public int getAnswer2() {
		return answer2;
	}
}

결과.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>

<h3>축하드립니다 정답입니다!!</h3>
<a href="${cpath }/multiplication"><button>한게임 더 !!</button></a>


</body>
</html>

 

updown 게임을 참조하여 간단한 구구단 게임을 구현하였다.

 

구구단 게임의 경우 바로 무엇 * 무엇인지 등장해야 하므로, 누를 때 등장할 수 있게 

ModelAndView에 넘겨줄 수 있게 answer, answer2를 불러와준 후 ModelAndView에 담아주어 출력했다.