JavaScriptっぽい。

『JavaScriptっぽい。』の更新情報やJavaScriptに関する日記。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

トランプ3枚当てスクリプト(その13)

3月15日正解発表分。今回は場合分けがややこしくて何回かバグ修正しました。


<script type="text/javascript">
/*
*1.2枚は同じマーク。(マークは2種類)		
*2.2枚は同じ数字。(数字は2種類)
*3.マークは赤と黒。
*4.ハートは含まれない。
*5.1枚目の数字は1。

	1.1枚目の記号は["dia","spade","club"]のランダム
	2.1枚目の数字は1
	3.1枚目がsapdeかclubのとき、記号の配列から当該記号を削除して、2枚目の記号はランダム
	4.2枚目の数字は[1,2,3,4,5,6,7,8,9,10,11,12,13]のランダム
	5.3枚目の記号は1枚目と2枚目が同じ場合は異なる色で、赤ならdia、黒ならランダム
	6.3枚目の数字は1枚目か2枚目と同じ数字
	
*/

Array.prototype.random_elm = function(){
	this.random_num = Math.floor ( Math.random() * this.length );
	return this [this.random_num];
}

function choice_card(){
	var mark = ["dia","spade","club"];
	var num_ary = [1,2,3,4,5,6,7,8,9,10,11,12,13];
	var card = [];

	var first_mark = mark.random_elm();
	var first_num = 1;

	var bool = ( first_mark != "dia" );
	if ( bool ) mark = ["dia",first_mark];
	
	var second_mark = mark.random_elm();
	var bool2 = ( first_mark == second_mark );
	if ( bool ) num_ary.splice ( first_num , 1 );
	var second_num = num_ary.random_elm();

	var third_mark;
	if ( bool2 ) third_mark = bool ? "dia" : ( mark = ["spade","club"] ).random_elm();
	else third_mark = ( mark = [first_mark,second_mark] ).random_elm();
	var third_num;
	if ( first_num != second_num ){
		if ( bool2 ) third_num = ( num_ary = [first_num,second_num] ).random_elm();
		else  third_num = ( first_mark == third_mark ) ? second_num : first_num;
	}
	else {	
		if ( !bool ) num_ary.splice ( first_num , 1 );
		third_num = num_ary.random_elm();
	}

	card[0] = first_mark + first_num;
	card[1] = second_mark + second_num;
	card[2] = third_mark + third_num;
	return card.join(",");	
}

var choiced_card = [];
var i , i_max;

for( i = 0 , i_max = 20 ; i < i_max ; i++ ){
	choiced_card[i] = choice_card();
}

var choiced_str = choiced_card.join(",");
var reg_exp;
var str = "";

for( i = 0 ; choiced_card[i] ; i++ ){
	reg_exp = new RegExp( choiced_card[i] , "g" );
	if( ( choiced_str.match( reg_exp ) ).length > 1 ) {
		if( str.indexOf( choiced_card[i] ) > -1 ) {
			choiced_card.splice( i , 1 );
			i--;		//spliceするとインデックス番号がずれるのを修正
		}
		str += choiced_card[i];	
	}
}

var joint_array = choiced_card.join("<br>");
document.write ( joint_array );

</script>

どうでもいいけど、最近JavaScriptの勉強とか全然していない。というか、WebどころかPC全般についてまったく勉強らしいことをしていないっす。

スポンサーサイト
  1. 2006/03/19(日) 18:24:11|
  2. トランプ3枚当て|
  3. トラックバック:1|
  4. コメント:2
<<ネットマイル | ホーム | トランプ3枚当てスクリプト(その12)>>

コメント

はじめまして。

はじめまして。

人気ブログランキング・ランブロの管理人です。

このたび、アクセスアップにお役に立てるよう、人気ブログランキング・ランブロを開始しました。

まだ、開始したばかりですので、登録数などは少ないですが、これから、登録数などを増やしていきたいと考えております。

そこで、登録して、ご利用いただけたら、と思います。



よろしくお願いいたします。

http://www.ranblo.com/
  1. 2006/04/02(日) 15:25:00 |
  2. URL |
  3. 人気ブログランキング・ブログ検索「ランブロ」管理人 #-
  4. [ 編集]

承認待ちコメント

このコメントは管理者の承認待ちです
  1. 2006/12/05(火) 21:47:30 |
  2. |
  3. #
  4. [ 編集]

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://javascript.blog3.fc2.com/tb.php/41-294d455f

JavaScriptの条件分岐

  私たちの生活の中でも、さまざまな選択があるように、JavaScriptのプログラムにも、条件によって処理を変化させる「条件分岐」というものがあります。前回の記事「JavaScriptの演算子(2)」にも出てきた「if」などが、条件分岐のプログラムコードの代表です。コンピュー
  1. 2006/03/25(土) 00:16:43 |
  2. ネットビジネス用CGI Perl HTML Javascriptの情報サイト

PUREST

04 | 2017/05 | 06
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

Recent Entries

Recent Comments

Recent Trackbacks

Archives

Category

Links

Search

Recommend

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。