![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
#3です。
>エラーが出ます。どこが悪いか教えてもらえますか?
何のコンテナで実行されているのかわかりませんが、ログは確認してみましたか?
見たところコンパイルエラーになるはずなので実行もされてないはずです。コンパイルエラーの箇所などはログにはき出されているはずなので確認してください。
以下、私の気づいた点です。
・num4はintなのにint配列として扱われている。
・入力に対しても、正解に対しても頭が0の時が考慮されていない。(intまたはIntegerで数値を扱っている)
No.5
- 回答日時:
とりあえずぱっと見だと、
セッションから値を取り出してるけど、
セッションに値を格納していない。
ってところかな。
セッションに格納するのか、リクエストに格納するのか、格納したときの名前と同じ名前で取り出さないといけない。
ここら辺かな。
個人的には{とか}が同じ行で見づらいとか、だから余計な{}の組があるんだなぁとか思いますが。(コンパイルエラーは出ないので別に問題ないっちゃぁ問題ない。)
あと、ちょっと下にある
「再:助けてください」
と同じようなソース(やりたいことは違うみたいだけど)で、同じようなとこでひっかかってるみたいだから、参考にしてみてもいいんじゃないかな。
あとは「エラーがでます。」って言うのなら、そのエラーも書かないと。
No.4
- 回答日時:
もしかして、hit/blowの履歴を表示できないってことではないですか?
だとしたら、
1.input type=hidden でユーザ入力送信時に過去の
履歴も毎回送信するようにする。
(カンマ区切りとかで。)
2.過去の履歴をセッション変数にする
のどちらかがよいかと思います。
的外れだったら申し訳ありません。。。
No.3
- 回答日時:
#1です。
hitとblowの判定は難しくないので、一応サンプルを・・・
numbersが当てるの数字でinputが入力された数字だとします。両方int型の配列を想定しています。
// hitを求める
int hit = 0;
for(int i = 0; i < 3; i++){
if(numbers[i] == input[i]){
hit++;
}
}
// blowを求める
int blow = 0;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
if(i != j && numbers[i] == input[j]){
blow++;
}
}
}
この回答への補足
書き込みありがとうございます。上を元に作ってみたのですが、エラーが出ます。どこが悪いか教えてもらえますか?
<%@ page contentType="text/html;charset=Shift_JIS" %>
<%
int num1,num2,num3,num4; //num4が正解の数字
boolean isRight;//解答が正解かどうか
Integer num4Int=(Integer)session.getAttribute("num4");//
Boolean isRightBoo=(Boolean)session.getAttribute("isRight");//
if(num4Int==null || isRightBoo==null){
//sessionオブジェクトに正解の情報がない
isRight=true;
}else{
//sessionオブジェクトより取得した値を使う
isRight=isRightBoo.booleanValue();
}
if(isRight){
//既に正解済、新たな正解の数字を乱数で決める
do{num1=(int)(Math.random()*10);}
while(num1==0);
do{num2=(int)(Math.random()*10);}
while(num2==num1);
do{num3=(int)(Math.random()*10);}
while(num3==num1 || num3==num2);
num4=num1*100+num2*10+num3;
isRight=false;
session.setAttribute("num4",new Integer(num4));
session.setAttribute("isRight",new Boolean(isRight));
}else{
//sessionオブジェクトより取得した正解を使う
num4=num4Int.intValue();
}
%>
<html>
<head>
<title>hit&blow</title>
</head>
<body>
<h1>数字当てゲーム</h1>
<br>
<%
int ans;
//requestオブジェクトからパラメータを(解答)を受け取る
String s=request.getParameter("answer");
if(s!=null){
try{
ans=Integer.parseInt(s);
if(num4==ans){
//解答と正解が一致
isRight=true;
HttpSession hs = request.getSession(true);
out.println("<p>正解!</p>");
}int hit = 0;
for(int i = 0; i < 3; i++){
if(num4[i] == ans[i]){
hit++;}}
// blowを求める
int blow = 0;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
if(i != j && num4[i] == ans[j]){
blow++;
}}} {
//解答が3桁以上のの数字
out.println("<p>3桁の数字を入力してください</p>");
}
}catch(NumberFormatException e){
//数字以外をフォームから受け取ったときの例外処理
out.println("<p>数字は整数で入力してください</p>");
}
}
%>
<hr>
<%
String NextPage="Training7.jsp";
NextPage=response.encodeURL(NextPage);
if(!isRight){
// 解答と正解が不一致
%>
3桁の数字を当ててください。<br>
(3桁の中に同じ数字はありません。)<br>
数字を入力してください。<br>
<form action="<%=NextPage%>">
<input type="text"name="answer">
<input type="submit">
</form>
<%
}else{
//解答と正解が一致
%>
<a href="<%=NextPage%>">もう一度する</a>
<%
}
%>
</body>
</html>
No.2
- 回答日時:
JSPで判定はできるけど表示ができないんですよね?
<% if(○○ == ○○) {%>
正解
<%} else { %>
不正解
<%}%>
じゃダメなのかな?
または
<% if(○○ == ○○) {
out.println("正解");
} else {
out.println("不正解");
%>
とか…
ごめんなさい、できればもう少し詳しく教えて頂ければ…
それと質問内容では判定できると言ってますがNo.1の補足では
判定ができないと言ってますね、どっちですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/04/21 08:59
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaには、構造体はないんですか?
-
[Ljava.lang.Stringってなんですか
-
セッションを使ったint型の値の...
-
データベースから取得したデー...
-
java.lang.NullPointerException
-
同じ配列またはクラスを、2回...
-
エラーのStackTraceをString変...
-
IF関数でEmpty値を設定する方法。
-
JAVA 文字色変更
-
JPanelの重ね方/OverlayLayout他
-
StrutsでJSPからListを受け取り...
-
excel vba 時間計算と条件分岐...
-
動的配列が存在(要素が有る)か...
-
Javaで改行などが出来ないのです。
-
switch分が機能しません。
-
CString 数値チェック
-
IPアドレスから組織やプロバイ...
-
C言語 重複しない4ケタの乱数...
-
C# ListBoxのインデックスの値...
-
サーブレットPrintWriterについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
C#で動的配列Listの中身をListB...
-
この警告はどうすれば?
-
[Ljava.lang.Stringってなんですか
-
javaで大容量テキストファイル...
-
ArrayListからBean配列に値をセ...
-
C言語でunsigned char配列を連...
-
main(String[] args) の args...
-
配列の中に複数存在する数がい...
-
javamailで複数人にメールを送...
-
【C#】ハッシュテーブル(連想...
-
同じ配列またはクラスを、2回...
-
Javaで文字を漢字であるか否か...
-
セッションを使ったint型の値の...
-
hit&blow
-
sqlparamaterでIN句を使いたい。
-
n番目に大きな値を探索する
-
配列で、値の入っている要素数...
-
データベースから取得したデー...
-
JavaのBase64デコードで正しく...
おすすめ情報