• ベストアンサー

JAVAでの占い

全くの初心者です。「今日の運勢」というのがJAVAで作られているみたいですが、Math.random()メゾットを使って大吉、大凶の運勢を占うJAVAのプログラムソースを教えて下さい。

  • Java
  • 回答数5
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • momozange
  • ベストアンサー率67% (21/31)
回答No.1

簡易的でよいのであればMath.random()で取得した値が0.5以上かどうかを判定すればよいと思いますが... double random = Math.random(); if (random > 0.5) { System.out.print(">大吉"); } else { System.out.print(">大凶"); } 1000回を1セットとして20回ほど実行してみましたが、いずれも5%以内の偏りしか発生しませんでした。 内部のアルゴリズムは同じなので乱数の種を指定できるjava.util.Randomのほうがよいとは思います。

oyajipu
質問者

補足

アドバイス有難うございます。これを利用してソースを作って見ました。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Unsei extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double random = Math.random(); response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>運勢占い</title></head><body>"); if(a >= 0.5) { out.println("大吉です!"); }else{ out.println("大凶です!"); } out.println("</body></html>"); out.close(); } } これで良いのでしょうか? またこれのclassファイルの作り方がわかりません。教えて頂けないでしょうか?

その他の回答 (4)

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.5

>プログラムソースが間違ってますか? コードはそれで問題無いでしょう # コードが原因で 404 エラーにはならないという意味

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.4

変数 a がどこにも宣言されてないからでしょう if (random >= 0.5) にすれば、やろうとしている事は出来ると 思いますが、もう一度基礎から勉強した方が よいかもしれませんね

oyajipu
質問者

補足

下記のように記述してUranai.javaで保存しclassファイルも作る事ができました、が、Tomcatで動作確認しましたが「404エラー」が出ます。プログラムソースが間違ってますか? import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Uranai extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double a; a = Math.random(); response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>運勢占い</title></head><body>"); if(a >= 0.5) { out.println("大吉です!"); }else{ out.println("大凶です!"); } out.println("</body></html>"); out.close(); } }

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.3

>またこれのclassファイルの作り方がわかりません。 >教えて頂けないでしょうか? どう見ても Servlet ですよね、その辺りは大丈夫でしょうか? クラスの作り方と言うのは基本的には同じです、必要なクラスパスを 通してコンパイルします、わからない部分を具体的にお願いします

参考URL:
http://tomcat.apache.org/
oyajipu
質問者

補足

すみません次のようなエラーが出ます。 Uranai.java:12:シンボルを見つけられません。 シンボル:変数 a 場所  Uranaiのクラス      if(a >= 0.5) エラー1個

  • NeilMania
  • ベストアンサー率30% (40/131)
回答No.2

public class Uranai { public static void main(String [] args){ int count = (int)((Math.random() * 6) + 1); switch(count){ case 1: System.out.println("大吉"); break; case 2: System.out.println("中吉"); break; case 3: System.out.println("小吉"); break; case 4: System.out.println("凶"); break; default: System.out.println("大凶"); } } } 今のままだと大凶ばかりになるので適当にcase句変更してください~。

関連するQ&A

  • ランタイムエラーが発生しました。というメッセージが出ます。

    JavaScriptを勉強し始めたのですが、本に書いてあったソースを書いてhtmlで保存をしました。そして、開いてみたところタイトルのメッセージが出てきてデバッカしますか?という質問が出てきました。友達にも間違いはないか確認してもらったのですが、スペルミスはないみたいです。ソースを記しておきます。アドバイスをいただければ幸いです。OSはWin98SEで、IE5.5を入れています。 <html> <head><title>今日の運勢</title></head> <body bgcolor="#ffffdd" TEXT="#000000"> <SCRIPT LANGUAGE="JavaScript"> <!-- omikuji=new Array("大吉","吉","中吉","小吉","凶","大凶"); i=Math.floor(Math.random()*omikuji.length); document.write("今日のあなたの運勢は"); document.write("<B><FONT COLOR='#ff0000' SIZE='5'>",omikuji[i],"</FONT></B>"です。); //--> </SCRIPT> </body> </html>

  • 入力番号に応じて該当プログラムを実行させたいです

    今、4つのJavaプログラムがあります Menu.java Uranai.java Janken.java Kazuate.java です。 そして、 <Menu.Java> package testprogramm; public class Menu { public static void main(String[] args) {// 検索処理を実行 System.out.println("ひまつぶし\n1. 占い");// エスケープシーケンス1回のみ System.out.println("2. じゃんけん" + "\n3. 数当てゲーム"); System.out.println("遊びたいゲームの番号を入力してください:"); } } を実行すると、 -------------------- ひまつぶし 1. 占い 2. じゃんけん 3. 数当てゲーム 遊びたいゲームの番号を入力してください: -------------------- と出てきます。が、単に文字を表示させるプログラムになっております。 このコードを書き換えまして。 例えば「遊びたいゲームの番号を入力してください:1」と、"1"を入力すると。 <Uranai.Java> package testprogramm; import java.lang.String; public class Uranai { public static void main(String[] args) { String[] strs = { "大吉", "吉", "普通", "凶", "大凶" }; int x = (int) (Math.random() * strs.length); System.out.println("今日のあなたの運勢は" + strs[x] + "です。"); } } のプログラムが呼び出されまして。 -------------------- ひまつぶし 1. 占い 2. じゃんけん 3. 数当てゲーム 遊びたいゲームの番号を入力してください:1 今日のあなたの運勢は大吉です。 遊びたいゲームの番号を入力してください: -------------------- のように、「今日のあなたの運勢は大吉です」というUranai.javaの結果が出力されて。 さらに「遊びたいゲームの番号を入力してください:」と、再度、遊びたいゲームの入力を促すような。 そんなプログラムにMenu.Javaを書き換えたいのですが、調べてもどうしても判らず…お力添えをいただけますと幸いです。 よろしくお願い致します。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • java 乱数

    class Randm3 { public static void main(String[] args) { int inum = (int)(Math.random()*2); if (inum == 1){ System.out.println(“吉”); } else{ System.out.println(“凶”); } } } を改編して‘大吉’と‘吉’と‘凶’をそれぞれ0.1と0.6と0.3の確率で表示する javaプログラムを作成してください。

  • Javaについてすこし教えてください。Math.random()につい

    Javaについてすこし教えてください。Math.random()についてです。 例えばint iに0から51までのランダムな数を入れたいときはとりあえずint型にキャストするとして i=(int)(Math.random()←ここからどういった感じにすれば良いのでしょうか? そもそもMath.randomの使い方がいまいち分かりません。 教えてください><

    • ベストアンサー
    • Java
  • javaスクリプトが表示されない。

    javaスクリプトが表示されない。 初めまして。 現在ホームページビルダー10でホームページを作っています。 写真をランダムに表示させるjavaスクリプトを作ったのですが、プレビューではちゃんと表示されるのですが、 ウェブでのプレビューや、サーバーにアップロード(さくらインターネットです)すると、 まったく表示されません。 初心者なのでどうしていいかわからず困っています。 どなたかわかる方がいらっしゃいましたら、ぜひ教えてください。 よろしくお願いします。 ちなみに、このソースを書き込んでいます。        ↓ <script language="JavaScript"><!-- myImageCnt = 12; myImage = new Array(); myRnd = Math.floor(Math.random()*myImageCnt); document.write("<img src='",myImage[myRnd],"' border='0' >"); // --></script></DIV>

  • 占いのスクリプトを書いたのですが

    先日よりJavaScriptの勉強をしていて、以下のスクリプトで、17時までは今日の運勢は?と表示して、17時以降は明日の運勢は?と表示したいのですが、うまく動きません。何処をどう直したら良いのでしょうか?  わかる方教えて下さい。よろしくお願いします。 <HTML> <HEAD> <TITLE>おみくじ</TITLE> </HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--- function omikuji() { r=Math.round(Math.random()*4); if(r==1){ document.form_a.text1.value="ラッキー!大吉!";} else if(r==2){ document.form_a.text1.value="ほっ!中吉!";} else if(r==3){ document.form_a.text1.value="小吉!まぁまぁだね";} else if(r==4){ document.form_a.text1.value="末吉!こんなものかな";} else{ document.form_a.text1.value="凶・・気をつけないと";} } //---> <!-- acDate=new Date(); myHour=acDate.getHours(); // --> </SCRIPT> <BODY> <FORM NAME="form_a"> <INPUT TYPE="BUTTON" VALUE="おみくじ" onClick='omikuji()'> <INPUT TYPE="TEXT" if(myHour<=17){ VALUE="今日の運勢は?!"NAME="text1";} else if(myHour<=24){ VALUE="明日の運勢は?!"NAME="text1";} > </FORM> </BODY> </HTML>

  • 最大値をもとめる

    Math.randomで100個の乱数を発生させてから、その中の最大値求めたいのです。一応JAVAの初心とのことでMAX関数を使わずにプログラムを書きたいです。どなた教えてください。

  • ActionScript 初心者です。Math.floorについて

    すみませんが教えて下さい。 参考書より 「-10~10までの範囲の整数値」であれば、小数部分を切り捨てるMath.floor()メゾットを使って「Math.floor(Math.random()*21)-10」となります。 Marh.random()が0だと「Math.floor(Math.random()*21)」の部分は「Math.floor(0*21)」となり0になります。 つまり「Math.floor(Math.random()*21)-10」の最小値は-10になります。 Math.random()が約1だと「Math.floor(Math.random()*21)」の部分はMath.floor(1*21)となり、約21(20.99999999・・)の少数部分を切り捨てて20になります。したがって「Math.floor(Math.random()*21)-10」の最大値が10になることが分かります。 とありますが、いろいろ調べても概念がさっぱりわかりません。 詳しい方、噛み砕いて教えて頂けるととてもありがたいです。 こんな質問ですみません。よろしければよろしくお願い致します。

    • ベストアンサー
    • Flash
  • おみくじの小吉や末吉とは何ですか?

    新年あけましておめでとうございます。 お聞きしたいことがあります。 おみくじで、運勢がいい順番は なんですか? 1大吉 2中吉 3小吉 4末吉 5吉 6凶 7大凶 だとおもっているのですが、いいでしょうか? ご存じの方、よろしくお願いします。

  • JAVAプログラムを書きたい!

    Javaプログラム初心者です。Javaの勉強手を動かしながら学習していきたいのですが、どのようなソフトをインストールすれば実際にソースを書きながら学習できるのでしょうか? 回答宜しくお願いします。