【Java】ジャンケンゲーム作成-2。ランダムでPCが出す手を生成する

  • 2020.06.21
  • 2021.01.24
  • Java
NO IMAGE

前回の続きとなります。

まだ読んでいない方は是非どうぞ。

本記事の手順としては、

①JankenServlet.javaでランダムの手を生成する。
②生成した手をJanken.jspへ受け渡し、表示する。

もう少し具体的にいうと、
配列に手(グー、チョキ、パー)を定義し、次にランダムに数字を生成します。
ランダムに生成した数字を、配列のindexに当て嵌め、PCの手として出力します。

言葉をずらずら書いてもわかりづらいので実際にコードを書いていきましょう。笑
JankenServlet.javaを編集します。

JankenServlet.javaの編集

protected void doGet….{ }の中に書いていきます。

String JANKEN_PAGE = "Janken.jsp";
request.setCharacterEncoding("UTF-8");
		
//ジャンケンの手を配列にで定義する
String[] hands = {"グー", "チョキ", "パー"};
//0〜2の数字をランダムに生成する
int rand = (int)(Math.random() * 3);
//PC側の手を決定
String psHand = hands[rand];
		
//画面側へデータ受け渡し
request.setAttribute("pcHand", psHand);
		
RequestDispatcher rd = request.getRequestDispatcher(JANKEN_PAGE);
rd.forward(request, response);

次はJSP側でデータを受け取り、表示させたいと思います。

Janken.jspの編集

jspファイルはHTMLと合わせてjavaのコードを埋め込んで使うことができます。
慣れれば便利ですので今回を期に使ってみて下さい。

基本的に<% %>で挟むだけです。今回は二つだけ覚えましょう。

①<% %>は特に表示しなくていもいい、if文、for文の式や変数の定義などで使用します。
②<%= %>は画面に出力するために使用します。基本的に既に定義された変数を入れます。

では早速使っていきましょう。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
	<%
		//JankenServletで生成したデータを受け取る
		String pcHand = (String)request.getAttribute("pcHand");
	%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ジャンケンゲーム</title>
</head>
<body>
	<p>HelloJanken</p>
	<p>PCの手は<%= pcHand%></p>
</body>
</html>

使っているうちに<% %>と<%= %>の違いがわかってくるはずです。

では、実行して確認してみましょう。

JankenServlet.javaファイル上で右クリックして「実行」でプログラムを動かします。
下記にアクセスします。

http://localhost:8080/Janken/JankenServlet

更新ボタンを押して手が変わればOKです!

PCの手は変わりましたでしょうか??
次はこちらからも手を出して勝負したいと思います。

本記事最後までご覧いただきありがとうございました。

Javaカテゴリの最新記事