WEST MiRa(1,739 Byte)
JavaScript(1,601 Byte)

■ JavaScript - サンプル集(257種類) - ゲーム
   - 神経衰弱Ver2

神経衰弱ゲームVer2です。
0〜10までの画像で、同じものを探して下さい。

升目の数は、一定の法則内で変更可能です。
使用する画像の数も変更可能です。

サンプルでは数字の画像を使っていますが、 ご自分で別の画像をご用意して頂ければオリジナルな雰囲気のゲームになると思います。

サンプルを見る
ソースを保存する
(右クリック→「対象をファイルに保存」or「リンクを名前を付けて保存」して下さい。)
ソースを見る
解説を見る





[ ソース ]

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

<script language="JavaScript"><!--//
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=//
//=                                                           =//
//=  Copyright (C) 1998-2007 WEST MiRa. All rights reserved.  =//
//=            WEST MiRa http://www.west-mira.jp/             =//
//=                                                           =//
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=//

	hatena=new Image();


	//ゲーム開始時のはてなマークの画像を指定
	hatena.src="hatena.gif";

	//画像の横幅を指定
	pic_w=50;

	//画像の高さを指定
	pic_h=50;

	//めくったカードが戻るまでの時間。大きくすれば遅く、小さくすれば早くなる。
	//100以上の値が望ましい
	hayasa=300;

	//ゲーム開始時のメッセージを指定
	start_mes = 'ゲームスタート!';

	//ゲームクリア時、アラートならば0を指定。別ページを表示するなら1を指定。
	clear_dore=1;

	//ゲームクリア時、アラートに表示する文字を指定
	clear_moji='おめでとう!パーフェクトです!';

	//ゲームクリア時、表示する別ページのURLを指定
	clear_url='clear.html';


	//横マスと縦マスをかけ算して、必ず2で割り切れる数値を指定して下さい。
	//例:横をmasu_w=8;、縦をmasu_h=5;や、横をmasu_w=6;、縦をmasu_h=10;など

	//縦マスの数を指定
	masu_h=4;

	//横マスの数を指定
	masu_w=5;

	//神経衰弱に使用する画像の数
	//サンプルでは0-9までの10個の画像を使用してるので10。
	pic_num=10;


	pic=new Array();
	kazu=new Array();
	ikutu=0;
	atari=0;
	num=0;
	checks=0;
	mae = -1;
	c_moji = "";
	function img_load()
		{
		if(checks == 0)
			{
			for(i  =0; i < 10; i++)document.images["hidden"].src=pic[i].src;
			document.images["hidden"].src=hatena.src;
			}
		}

	function my_reset(tmp)
		{
		ikutu=0;	atari=0;	i=0;	j=0;	doko=0;
		c_moji = "";
		num=Math.floor((masu_w * masu_h) / (pic_num * 2));
		max=pic_num;	min=0;	ataris=new Array();
		if((masu_w * masu_h) % 2 != 0)alert('数値エラーです。\n升目の合計数が不正です。');
		else {
			while(i < num)
				{
				while(j < max)
					{
					kazu[j]=Math.floor(Math.random()*pic_num);
					if(j == 0)j++;
					else 
						{
						a=min;
						while(a < j)
							{
							if(kazu[a] != kazu[j])a++;
							else break;
							}
						 if(a == j)j++;
						}
					if(max >= (pic_num * 2 * (i+1))+pic_num){ break; }
					else if(j % pic_num == 0){ min=max; max+=pic_num; }
					}
				i++;
				}
			for(i = 0; i < masu_w * masu_h; i++)
				{
				pic[i]=new Image();
				pic[i].src=""+kazu[i]+".gif";
				document.images["pic"+i].src=hatena.src;
				}
			checks=0;
			}
		num=0;

		if(tmp == 1){ alert(start_mes); }
		}

	function modosu()
		{
		atari_han(mae);
		if(i == ataris.length+1)document.images["pic"+mae].src=hatena.src;
		atari_han(tugi);
		if(i == ataris.length+1)document.images["pic"+tugi].src=hatena.src;
		return;
		}

	function atari_han(doko)
		{
		i=0;
		while(i < ataris.length+1)
			{
			if(ataris[i] != doko)i++;
			else break;
			}
		return i;
		}

	function sinkei(doko)
		{
		if(doko < 10)dore = "0" + doko + ",";
		else dore = doko + ",";
		if(checks == 1 && c_moji.indexOf(dore , 0) == -1)
			{
			checks = 2;
			atari_han(doko); 
			if(i == ataris.length+1)document.images["pic"+doko].src=pic[doko].src;
			if(ikutu == 1)
				{
				ikutu=0;
				if(pic[mae].src != pic[doko].src)
					{
					tugi=doko;
					a=0;
					clearTimeout(a);
					a=setTimeout('modosu()',hayasa);
					}
				else 
					{
					atari++;
					ataris[num]=mae;
					ataris[num+1]=doko;
					num++;
					if(mae < 10)c_moji += "0" + mae + ",";
					else c_moji += mae + ",";
					if(doko < 10)c_moji += "0" + doko + ",";
					else c_moji += doko + ",";
					}
				}
			else if(ikutu == 0)
				{
				mae=doko;
				ikutu++;
				}
			if(atari == Math.floor(masu_w * masu_h / 2))
				{
				if(clear_dore)location.href=clear_url;
				else alert(clear_moji);
				}
			}
		checks = 0;
		}

//-->
</script>

</head>

<body onLoad="my_reset(0);img_load();">

<div align="center">

<!-- 以下変更不可 -->

<img src="dummy.gif" name="hidden" width="1" height="1" border="0">

<table cellpadding="0" border="1" cellspacing="0" align="center">

	<script language="JavaScript" type="text/javascript">
	<!--//Copyright (C) WEST MiRa http://www.west-mira.jp

		k=0;
		for(i = 0; i < masu_h; i++)
			{
			document.write('<tr>');
			for(j = 0; j < masu_w; j++)
				{
				document.write('<td><a href="javascript:void(0);" onClick="checks++; sinkei('+k+');"><img src="'+hatena.src+'" name="pic'+k+'" border="0" width="'+pic_w+'" height="'+pic_h+'"><\/a><\/td>');
				k++;
				}
			document.write('<\/tr>');
			}

	//-->
	</script>

</table>

<form name="form1">
	<input type="button" value="START!" onClick="my_reset(1);">
	<input type="button" value="RESET" onClick="my_reset();">
 </form>

<!-- 以上変更不可 -->

</div>

</body></html>


[ 解説 ]

まず最初にデフォルトで表示させる画像と、カードをめくった時の画像を用意します。
デフォルトの画像は1つで結構です。
名前もお好きなものを付けて下さい。

カードをめくった時の画像ですが、これも必ずデフォルトの画像と同じサイズで作ってください。

名前は必ず0から始まる数字を割り振ってください。
どのような画像を使っても良いのですが、名前は「0.gif」や「1.gif」にして下さい。

使用する画像の数が10個であるならば、それぞれの画像の名前は
「0.gif , 1.gif , 2.gif , 3.gif , 4.gif , 5.gif , 6.gif , 7.gif , 8.gif , 9.gif」
になります。

もし使用する画像の数が15個であるならば、それぞれの画像の名前は
「0.gif , 1.gif2.gif , 3.gif , 4.gif , 5.gif , 6.gif , 7.gif , 8.gif , 9.gif , 10.gif , 11.gif , 12.gif , 13.gif , 14.gif」
になります。

また、神経衰弱のHTMLファイルがあるディレクトリと、同じディレクトリに保存して下さい。

その他は、ソース内の注釈を参考に色々と指定してみて下さい。


バナー、リンクについて  ,   利用規約  ,   ヘルプ

Copyright (C) 1998-2007 WEST MiRa. All rights reserved.