神経衰弱ゲーム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ファイルがあるディレクトリと、同じディレクトリに保存して下さい。
その他は、ソース内の注釈を参考に色々と指定してみて下さい。
|