質問編集履歴

1 初心者マークをつけさせていただきました。

退会済みユーザー

退会済みユーザー

2016/06/13 16:46  投稿

javascriptでマルバツゲームを作っています
###前提・実現したいこと
javascriptでマルバツゲームを作っているのですが、ボタンを9個使って、初期値はスペースで何も表示せず、1回クリックで〇を表示させ、2回目のクリックで×が表示するようになっています。3回目にはアラートがでて、そこには置けないというメッセージを表示させています。
そこでですが、今まではボタンを9個同じものを並べていたのですが、後々の課題で9個別々に識別できるようにする必要があり変数宣言でnewArray(9)を宣言し、「i」で0~8の数字が入るようにしたのですが、どうにもうまくいきません。
###発生している問題・エラーメッセージ
```
2-1.html:15 Uncaught TypeError: Cannot set property 'value' of undefined
```
###該当のソースコード
```ここに言語を入力
<script language="JavaScript">
var check=0;
var i = new Array(9);
//初期化処理(ボタン表示の初期化)
function init() {
document.tick.elements[i].value = " ";
}
function ticktack(botan){
if (tick.elements[i].value == " ") {
if (tick.elements[i].value == "○") {
tick.elements[i].value = "×";
}
else {
tick.elements[i].value = "○";
}
}
else if (tick.elements[i].value == "○") {
if (tick.elements[i].value == "○") {
tick.elements[i].value = "×";
}
else {
tick.elements[i].value = "○";
}
}
else{
alert("そのマスはすでに選ばれています。");
}
}
</script>
```
###試したこと
初期化処理をいろいろ変えてみたり、forで回してみたのですが何時間かけても解決できなかったので質問させていただきました。
  • JavaScript

    36488 questions

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

  • 配列

    2329 questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る