Index |
HOME > プログラムTOP > JavaScript |
|
JSおみくじ
初心者学習用の簡単なおみくじです。同じものを三種類つくってみます。後のものほどオブジェクト指向の強い方法となります。オブジェクト指向のプログラミングを実現すると、全体の設計や、後々の修正などの管理が格段にやりやすくなります。他の人が見ても全体像が把握しやすく、後から直すにしても最小の労力で直すことができるようになります。
また、すべて別ファイルにすることを前提につくっています。オブジェクト指向の学習用にでも試してみてください。 ![]() ■オブジェクトを配置してつくる ■オブジェクトもコードでつくる ■クラスも利用してつくる sasaraan programming ![]() Exposition ■オブジェクトを配置してつくる/* 'omikuji.js'ソース */
// くじの種類
var aUnsei = new Array("大吉","中吉","小吉","吉","末吉","凶","小凶","中凶","大凶");
// くじが出る確率
var aRitsu = new Array(0.05, 0.1, 0.15, 0.2, 0.2, 0.1, 0.1, 0.05, 0.05);
// 表示するテキストオブジェクト
var oText;
// 初期化
function Init(objtext)
{
oText = objtext;
with (oText) {
value = "おみくじ";
style.width = "6em";
style.textAlign = "center";
style.color = "#ffffff";
style.backgroundColor = "#993333";
}
}
// くじをひく
function Draw_Click()
{
var nRand = Math.random();
var nRitsu = 0;
var i;
for (i=0; i<aRitsu.length; i++) {
nRitsu += aRitsu[i];
if (nRand <= nRitsu) break;
}
oText.value = aUnsei[i];
}
/* HTMLソース */
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_Jis">
<meta name="content-language" content="ja">
<title>おみくじ</title>
<script type="text/javascript" src="omikuji.js"></script>
</head>
<body>
<input type="text" id="kuji"/>
<input type="button" value="くじをひく" onclick="Draw_Click()"/>
<script type="text/javascript"><!--
Init(document.getElementById("kuji"));
--></script>
</body>
■オブジェクトもコードでつくる/* 'omikuji2.js'ソース */
// くじの種類
var aUnsei = new Array("大吉","中吉","小吉","吉","末吉","凶","小凶","中凶","大凶");
// くじが出る確率
var aRitsu = new Array(0.05, 0.1, 0.15, 0.2, 0.2, 0.1, 0.1, 0.05, 0.05);
// 表示するテキストオブジェクト
var oText;
// 初期化
function Init(parent)
{
// textオブジェクトの作成
oText = document.createElement("input");
with (oText) {
value = "おみくじ";
type = "text";
style.width = "6em";
style.textAlign = "center";
style.color = "#ffffff";
style.backgroundColor = "#993333";
}
parent.appendChild(oText);
// buttonオブジェクトの作成
var oButton = document.createElement("input");
with (oButton) {
value = "くじをひく";
type = "button";
onclick = Draw_Click;
}
parent.appendChild(oButton);
}
// くじをひく
function Draw_Click()
{
var nRand = Math.random();
var nRitsu = 0;
var i;
for (i=0; i<aRitsu.length; i++) {
nRitsu += aRitsu[i];
if (nRand <= nRitsu) break;
}
oText.value = aUnsei[i];
}
/* HTMLソース */
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_Jis">
<meta name="content-language" content="ja">
<title>JSおみくじ</title>
<script type="text/javascript" src="omikuji2.js"></script>
</head>
<body id="kuji" onload="Init(document.getElementById('kuji'))">
</body>
■クラスも利用してつくる/* 'omikuji3.js'ソース */
// "くじ"関数(クラス)
function Kuji(name, ritsu) {
this.Name = name; // 名前
this.Ritsu = ritsu; // 確率
}
// "Kuji"オブジェクトの配列
var aKuji = new Array(9);
aKuji[0] = new Kuji("大吉", 0.05);
aKuji[1] = new Kuji("中吉", 0.1);
aKuji[2] = new Kuji("小吉", 0.15);
aKuji[3] = new Kuji("吉", 0.2);
aKuji[4] = new Kuji("末吉", 0.2);
aKuji[5] = new Kuji("凶", 0.1);
aKuji[6] = new Kuji("小凶", 0.1);
aKuji[7] = new Kuji("中凶", 0.05);
aKuji[8] = new Kuji("大凶", 0.05);
// 表示するテキストオブジェクト
var oText;
// 初期化
function Init(parent)
{
// textオブジェクトの作成
oText = document.createElement("input");
with (oText) {
value = "おみくじ";
type = "text";
style.width = "6em";
style.textAlign = "center";
style.color = "#ffffff";
style.backgroundColor = "#993333";
}
parent.appendChild(oText);
// buttonオブジェクトの作成
var oButton = document.createElement("input");
with (oButton) {
value = "くじをひく";
type = "button";
onclick = Draw_Click;
}
parent.appendChild(oButton);
}
// くじをひく
function Draw_Click()
{
var nRand = Math.random();
var nRitsu = 0;
var i;
for (i=0; i<aKuji.length; i++) {
nRitsu += aKuji[i].Ritsu;
if (nRand <= nRitsu) break;
}
oText.value = aKuji[i].Name;
}
/* HTMLソース */
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_Jis">
<meta name="content-language" content="ja">
<title>JSおみくじ</title>
<script type="text/javascript" src="omikuji3.js"></script>
</head>
<body id="kuji" onload="Init(document.getElementById('kuji'))">
</body>
|
||
www.sasaraan.net |
(c) morijoh |