質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

6350閲覧

じゃんけんゲームの勝率[java]

kjjkjn

総合スコア9

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/12/22 06:33

編集2015/12/22 08:11

今現在じゃんけんゲームを製作しているのですが、javascriptで勝率を7割にしたい場合
そのようなコードを書けばいいのでしょうか?
教えてください。

<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <TITLE>じゃんけんゲーム</TITLE> <SCRIPT type="text/javascript"> var Pyou=0,Pme=0; function dclr() { Pyou = Pme = 0; with(document.form01) { g_you.src = "reset.gif"; g_me.src = "reset.gif"; } } function calc(_you) { var _me,_; disp = new Array("グー","チョキ","パー"); grp = new Array("gu-.gif","choki.gif","pa-.gif"); _me = Math.floor(Math.random() * 3); with(document.form01) { txt01.value = disp[_you]; g_you.src = grp[_you]; txt02.value = disp[_me]; g_me.src = grp[_me]; if(_you-_me==0) txt03.value ="引き分け"; else if(_you-_me==-1 || _you-_me==2) { txt03.value ="あなたの勝ち"; Pyou++; } else { txt03.value ="あなたの負け"; Pme++; } txt04.value = Pyou; txt05.value = Pme; } } </SCRIPT> </HEAD> <BODY bgcolor="#00ffff"> <HR> <FORM name="form01"> <TABLE cellpadding="5"> <TBODY> <TR> <TD colspan="2" align="center"><INPUT type="button" value="グー" onclick="calc(0)"> <INPUT type="button" value="チョキ" onclick="calc(1)"> <INPUT type="button" value="パー" onclick="calc(2)"> <HR> </TD> </TR> <TR> <TD align="center"><B>あなた</B><BR> <IMG src="reset.gif" name="g_you" width="140" height="140" border="0" hspace="20"></TD> <TD align="center"><B>わたし</B><BR> <IMG src="reset.gif" name="g_me" width="140" height="140" border="0" hspace="20"></TD> </TR> <TR> <TD align="center"><INPUT type="TEXT" name="txt01" size="10"></TD> <TD valign="middle" align="center"><INPUT type="TEXT" name="txt02" size="10"></TD> </TR> <TR> <TD colspan="2" align="center" bgcolor="#0000cc"><B><FONT color="#ffffff">判定: </FONT></B><INPUT type="TEXT" name="txt03" size="30"></TD> </TR> <TR> <TD colspan="2"> <HR> あなたの得点: <INPUT type="TEXT" name="txt04" size="6"> わたしの得点: <INPUT type="TEXT" name="txt05" size="6"> <INPUT type="RESET" value="リセット" onclick="dclr()"></TD> </TR> </TBODY> </TABLE> </FORM> </BODY> </HTML>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CyberMergina

2015/12/22 06:52

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
ozwk

2015/12/22 06:52

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
kaputaros

2015/12/22 06:52

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
think49

2015/12/22 07:25 編集

解決した途端、質問文を消す行為は同様の問題が起きた人がこの質問スレを参考するときの弊害となります。公開された質疑応答は共有資産として活かす方が良いと思います。JavaScriptの質問からJavaScriptのタグまで削除するとは徹底してますね…。
swordone

2015/12/22 06:57

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
takito

2015/12/22 06:58

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
tanat

2015/12/22 06:58

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
ozwk

2015/12/22 06:58

意図的に質問を消す行為は禁止行為になっていますよ
maisumakun

2015/12/22 06:59

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
flat

2015/12/22 07:14

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
kutsulog

2015/12/22 07:19

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
seiji_maemura

2015/12/22 07:22

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
izkn

2015/12/22 07:27

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
makiikeda1216

2015/12/22 08:29

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
AyaMorisawa

2015/12/22 14:44

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
退会済みユーザー

退会済みユーザー

2015/12/23 02:44

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
退会済みユーザー

退会済みユーザー

2016/01/18 12:31

他のユーザから「不正な編集がされた質問」という指摘をうけました 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になります。 他のユーザにも質問内容が見えるように修正してください。
dsk

2016/01/20 06:08

他のユーザから「意図的に内容が抹消された質問」という指摘を受けました 解決後に編集機能を用いて質問内容を改変し関係のない内容にしたり、内容を削除する行為は禁止しています。 投稿していただいた質問は、後に他の誰かが困ったときに助けになる情報資産になると考えるからです。 「質問を編集する」ボタンから編集を行い、他のユーザにも質問内容が見えるように修正してください。
guest

回答2

0

ベストアンサー

今現在じゃんけんゲームを製作しているのですが、javascriptで勝率を7割にしたい場合
そのようなコードを書けばいいのでしょうか?
教えてください。

HTML

1<HTML> 2<HEAD> 3<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<TITLE>じゃんけんゲーム</TITLE> 5<SCRIPT type="text/javascript"> 6var Pyou=0,Pme=0; 7function dclr() 8{ 9Pyou = Pme = 0; 10with(document.form01) 11{ 12g_you.src = "reset.gif"; 13g_me.src = "reset.gif"; 14} 15} 16function calc(_you) 17{ 18var _me,_; 19disp = new Array("グー","チョキ","パー"); 20grp = new Array("gu-.gif","choki.gif","pa-.gif"); 21_me = Math.floor(Math.random() * 3); 22with(document.form01) 23{ 24txt01.value = disp[_you]; 25g_you.src = grp[_you]; 26txt02.value = disp[_me]; 27g_me.src = grp[_me]; 28if(_you-_me==0) 29txt03.value ="引き分け"; 30else if(_you-_me==-1 || _you-_me==2) 31{ 32txt03.value ="あなたの勝ち"; 33Pyou++; 34} 35else 36{ 37txt03.value ="あなたの負け"; 38Pme++; 39} 40txt04.value = Pyou; 41txt05.value = Pme; 42} 43} 44</SCRIPT> 45</HEAD> 46<BODY bgcolor="#00ffff"> 47<HR> 48<FORM name="form01"> 49<TABLE cellpadding="5"> 50<TBODY> 51 <TR> 52 <TD colspan="2" align="center"><INPUT type="button" value="グー" onclick="calc(0)"> <INPUT type="button" value="チョキ" onclick="calc(1)"> <INPUT type="button" value="パー" onclick="calc(2)"> 53 <HR> 54 </TD> 55 </TR> 56 <TR> 57 <TD align="center"><B>あなた</B><BR> 58 <IMG src="reset.gif" name="g_you" width="140" height="140" border="0" hspace="20"></TD> 59 <TD align="center"><B>わたし</B><BR> 60 <IMG src="reset.gif" name="g_me" width="140" height="140" border="0" hspace="20"></TD> 61 </TR> 62 <TR> 63 <TD align="center"><INPUT type="TEXT" name="txt01" size="10"></TD> 64 <TD valign="middle" align="center"><INPUT type="TEXT" name="txt02" size="10"></TD> 65 </TR> 66 <TR> 67 <TD colspan="2" align="center" bgcolor="#0000cc"><B><FONT color="#ffffff">判定: </FONT></B><INPUT type="TEXT" name="txt03" size="30"></TD> 68 </TR> 69 <TR> 70 <TD colspan="2"> 71 <HR> 72 あなたの得点: <INPUT type="TEXT" name="txt04" size="6"> わたしの得点: <INPUT type="TEXT" name="txt05" size="6"> <INPUT type="RESET" value="リセット" onclick="dclr()"></TD> 73 </TR> 74</TBODY> 75</TABLE> 76</FORM> 77</BODY> 78</HTML>

とりあえず、下記アルゴリズムでコードを組んでみてはいかがでしょうか。

  • 累計回数を記録
  • 勝数を記録
  • 「勝数 / 累計回数」の計算式で勝率を求める
  • ゲーム開始時に「プレイヤーが勝った場合」「プレイヤーが負けた場合」でそれぞれ勝率を求める
  • 勝率が 0.7 に近い結果になるよう勝ち負けを決定する
  • 勝率が同値ならプレイヤーが勝利する

(2015/12/23 03:58追記)
質問文を引用しました。

Re: kjjkjn さん

投稿2015/12/22 06:46

編集2015/12/22 18:58
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もう消されましたが、数学的に解くと次のようになります。

じゃんけん一回につき、勝つ確率をw,あいこになる確率をdとすると、
i回目で勝つ確率はi-1回あいこが続いたあと勝つ確率なので
d^(i-1) * w となります。
n回目までに勝つ確率はi=1からnまでの総和で、
w * (1-d^n) / (1-d) となります。
勝つ確率はこのnを無限大にまで飛ばした値と考えられます。
いま0 < d < 1なので、n -> ∞ のとき、d^n -> 0 となります。
つまり、勝つ確率はw / (1 - d)となります。
これが7割(=0.7)なので、10w = 7(1-d)
1-dは、「あいこにならない確率」つまり「勝つか負ける確率」なので、負ける確率をlとすると、
10w = 7(w+l)
3w = 7l
w : l = 7 : 3
という式が導かれます。
つまり、あいこの確率を適当に設定して、残りの確率を勝ち負けに7:3に分配して設定します。
例えばあいこを10%とすれば残り90%なので、勝ちに63%,負けに27%割り振ります。
出された手に応じて勝つ手、負ける手、同じ手を、この確率にそって乱数から決定すれば、
理論上勝率7割のコードになるはずです。

投稿2015/12/22 07:10

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問