ないブログに表示されています。新しい記事を書く事で広告が消えます。毎年のようにいろいろ変えてるんだけど、それに応じて、ゲームの方も対応していかないといけない。今回の交流戦に関しては、どこをどう直していいか、頭に出てこない。思い出さなきゃならないけど、面倒だーーーー。これを改良しないといけないが、こういう改良点の内容をどこかに書いておかないと、また次にとんでもない変更が決められると、またプログラム変更するのに大変なことになる。別に専用の設計書を書くなんてとても凹むし。いうことで、どこをどう直したかを、これからはブログに書いておこう。これは、いい考えですね。管理上、「15」という数値を直接プログラムに記載して管理している。今回は、この直値部分を変数に変更する必要ありですね。横浜戦は、5戦、中日戦は既に管理している横浜戦を除いて、4戦、。いうように、6チームから2チームを抜き出す組合せの数であり全部で15戦のためである。結局、36戦が新しい組合せとして必要。交流戦では、15戦+36=51戦を管理しなくてはいけない。いうことで、セリーグのチーム数=Cとし、パリーグのチーム数=Pとすると、以下の式で求められる。C*Pということで、交流戦/非交流戦という区別は、Pの値で決めることに。P=0なら非交流戦とすればいい。そこで、いろいろな変数をいじらないようにするために、まずHTMLの一番最初で、ゲーム対象リーグとゲーム非対象リーグのチーム名1文字配列:MyLeageとnonMyLeageを定義してもらい、これを元に、今回の変更を行う。セリーグのペナント競争なら、チームIDを交流戦モードなら、MyLeage="YDGSCT",nonMyLeage="hlfwmr"非交流戦モードなら、MyLeage="YDGSCT",nonMyLeage=""とすれば、上記管理戦数のC,Pは、その文字数を求めればよい。いうことで、管理戦数を変数=ALLgameNoとする。したがって、いままで、15と書いてあったところをALLgameNoに置換する。この管理戦数(対戦試合数)のカウントに際して、このインデックス値として予め対戦相手が決められ、これを文字変数のcnvvs変数で管理している。そのため、このcnvvs変数を交流戦用に追加必要だが、いちいち入力していてはバカらしいので、プログラムでデータ値設定する。管理変数のteamcntは、1日に最大試合数で管理する。teamidも12球団管理するが、これもMyLeageとnonMyLeageからプログラムで値を設定する。交流戦の場合には、相手方のチームの勝敗は、無視すればよい。これは、teamcnt[]で当日の対戦相手をチームIDで管理している。setSiaiData()関数で、対象試合日の対戦相手のチームIDをセットし、その試合結果をupdateSiaidata()関数で対応する変数にセットしているので、この関数を変更すればいいみたい。これは、、siai,make,kati等の変数で制御しているが、これがMyLeageの球団数で管理しているので、その値を変えればよい。●交流戦時の試合数は、なんと6試合あるんですね。今までは、6チームなので、3試合分だった。画面表示も、3試合でしか考えてなかった。いうか、3試合しか表示は出来ないよね。いや待て、スクロールしない状態では、3試合分しか表示できないがスクロールしてしまえば、何試合でも表示可能かな。それだと、やっぱ不便だよね。接戦の時は、やはり相手の経過が知りたい。考えるより、実際に3試合分増やしてみようとプログラム見たら、ループ回数を4→7に変えるだけで簡単に増やせそうだ。^^)ただし、下側に表示領域が増えたので、リンクボタンに勝敗表が被ってしまったので、重ならないようにIEの場合はCSSを修正してOK。あとは、ここにちゃんと表示させられるかだ。●この4、7という数字は、(3試合+1)、(6試合+1)なんだけど、これも交流戦の有無で決まる直値なので、これも変数に変えないとね。将来、球団数が6チームが7チームとか8チームになって対応可能なようにしとかないと、また同じこと繰り返すので。いうことで、1日の最大試合数を求める関数を作り、それで上記値を求めることにした。雨等で流れた試合の予備日としたが、これが実際に試合が必要な日かそれとも必要でない日かを判断しているが、この判断のやり方を交流戦の場合は、変えなくちゃいけない。交流戦の各チームとの試合数は決まっていて、もし雨等で流れれば、再度試合を行うので、この判断は、MyLeageのチームとの試合数と別に判断する必要有り。●最後にメインの試合が終了時に、その他球場の試合が終わってないと強制的に終了させているが、ここはendFlag[]で管理しているが、これもOnedayMaxGameNoに対応させないとね。いうことで、ペナント競争(2005年版)がやっと出来た。何とdoument.allをサポートした!!Mozillaでdocument.allをサポートしたようだという噂を聞いたので調べてみた。1.8a3のテストバージョン。1.8a4を、ダウンロードして見てみた。COMMENT[0]禁止語フィルタ付き掲示板を作成コンテストに登録して22日から公開されるけど、なんとここに大問題が発生!!昔、大量に掲示板に書き込んだ広告荒らしがやってきた!!ななななななーーーなんと、1時間おきぐらいに違う種類の広告を書き込んでくる。あっという間に掲示板が広告で埋まってしまった。これには、さすがに焦った。コンテストに応募してる掲示板に広告荒らしじゃね。夜中にIPアドレスを拒否し、広告を削除してやった。ところが、今度は違うIPアドレスで、再び大量に書き込んできた。送信できないようにしてやった。これで何とか静かになった。今度は、掲示板に直接書くのではなく、サーバにダイレクトに送信しているようで、また大量に書き込みが。ソフトが通信販売されているようだ。今度はこれが自動制御に発展し、このソフトを通信販売して儲けてるやつが出てきたのか。これにはさすがに切れた。するか考えたがサーバに直接書き込んでては対処なし。表示するときに表示させなきゃいいんじゃないか。禁止語のある内容に関しては、コメントにして見えなくした。掲示板で広告が見えないにも関わらず、依然として書き込んでくるが、その度にIPアドレスを変えてくるまあ、書き込み日時とURLを指定して、あとは自動設定で書き込んでくるのだろう。これでは削除する作業が大変。OTDにサーバ側で対処してもらうようにお願いするしかないか。COMMENT[0]試合結果の作成時間を短縮化HPの更新作業で一番大変なのが、試合結果とその総評を書くこと。これ家に帰ってから1時間30分ぐらいは掛かる。新聞にあるような打撃結果表と同じような表をCSSを用いて書くことに。これでかなり時間短縮できた。基本フォームを決めて、それに沿って書くことに。書き始めるのに、どう書こうか悩んでいたため。打撃結果の表を手で入力していたが、この作成に30分も掛かる為、この作業を効率化するためにJavaScriptで入力ツールを作り、帰りの電車の中でJavaScriptが動作するPDA(ザウルス)で入力することにより、HP更新作業が30分短縮した。最後にTEXTで結果を出力する。ところが、PCでは上手く行ったが、ザウルスだとメモリが不足し、途中で死んでしまう。入力したデータをコマンド形式で出力し、それをPCで最終形に変換することで対応した。値段と、大きさとかを考えて、最終的にシャープのザウルスに決めた。決めたきっかけは、日本語も入力できるキーボードが引き出せて使える点。総評を入力する関係上、ローマ字入力が出来るのが慣れてるし、入力時間も速いし、ということで。今回も、去年同様、2001年のNGW登録一番乗り^^)を目指して、ゲーム作成を考えた。今回も野球ゲームネタを考えていたら、何やら選手会と機構側がもめ事。^^);;;で、そういえば、もう冬だと思って、スキーやらなきゃ、からスキーゲーム作ろうに。^^)ということで、スキーゲームを作ることに方向転換。そこで一応、市場調査ということで、ネット上のスキーゲームなどをいろいろ見て回ったが、どれも、スキーの醍醐味を感じられないものが多かったので、やっぱ、スキーのエッジに乗り込む感じが大事だよなーーーー。ことで、構想がまとまり。スキーで滑る感覚に近づけるにはどうしたらよいか?を考えた。この回答が、マウスでドラグして、なおかつ、縦方向にドラグすることによりステップターンの要領でスピードが増して行くという考えにたどりつく。やるなら、やっぱスラローム(回転競技)でしょ。あとは、実際にスクリプトで一歩一歩、試作して行くだけ。今回は、NN6も期待に反して世の中に出ちゃったことだし、まあ対応しないとまずいかな。いうことで、NN6で作り出す。クロスでIE4.0以上、NN4.x以上でも動かすため、基本部分のみのライブラリを作成。このライブラリで大分作成が簡単になりました。^^)はじめは、マウス操作のみを作り、次にポール表示を作り、ここまでは順調だったが。いうことで、これの詳細は以下の開発仕様&日記(?)に書き留めて作りました。現在のNN6(IE5.5も似たり寄ったりだが)は画像レイヤ操作が非常に甘いので注意ね。開発する上での一番のお勧めポイントです。忘れずに覚えておけるし、進捗管理もできるし、でいいですよ。^^)以下、開発仕様&日記----------------------------------------------------------●NN6のマウス制御テストプロを改造しだす。●IE/NN4.xでも動くように修正。●マウスをドラグしたときに、別の位置にある画像を動かす。●マウスをドラグしてなくても、画像を左右に滑らせる制御を考える。●マウスでステップターンを可能にする。●NN6/IE/NN4.xのクロスで動くように、基本命令部分はライブラリ化。●画面内に表示するポール管理(初めは画面内のドットで作成)を考える。●ポールのセッティング配列を考える。●ポール画像とスキー画像を作る。●単純に比例計算でポールを動かしてみるが。→やはり正確にやらないとと挫折。^^);;;●背景画像の撮影をスキー場(どこだか分かるかな?)で行う。・ここで本業が忙しくなり、1週間手付かず。^^);;;;●画面内ドット単位を諦め、実際のメートル単位のポールを画面上に写像する制御を考える。●ゴール表示制御を考える。●ポールに激突/旗門不通過の判定を考える。●背景画像を表示する。×左右の背景画像を表示する。→これ無しでも十分なので省略。●雪面画像を表示する。→ただし、背景までは動かせないですが。●NN4.xは、画像のリサイズが出来ないので、強引にdocument.writeでやったが、遅くて諦めた。^^);;;;●最初に名前を入力してもらう。●xxxxさん準備OKと掲示板に表示。●10秒前で、「10秒前」を1秒間、掲示板に上書き表示。●5秒前に長いブザーを掲示板に表示させ。●3秒前から1秒毎にブザーを表示させていく。●3秒前ブザーから以後、マウスdownしたら、自動的にスタートとなる。●3秒以前にマウスdownしても、無視する。●スタートしたら、その時の時間を計測する。●ところがNN6は、スタートしたらポールが一瞬消える。動きもぎこちない●一瞬消えるのは、FDからアクセスすると遅いようだ。●ぎこちなく、マウスが禁止マークになり、ドラグしなくてスキーもついてくるようになる。→IE5.5対策と同じで、backの画像があるとおかしくなる。bodyタグの背景にしたら、OKになった。ジオだとページTOPにバナー表示があるのが辛い。仕方なく背景画像を下にバナー分ずらした。●さらにNN6は、ドラグ中に旗門不通過か転倒で、ボタンが効かない。→ドラグ開始位置に画像があり、ドラグ中にこの画像を非表示にすると、マウスイベントが発生しなくなる。→したがって、消さなければOKだが、それだと画像が重なるので、画面外へ退いてもらうことに。●今度は、IE5.5でスタートしたら、ドラグ中は全く画面が動かなくなる。●背景に画像をレイヤで表示しているとマウスイベントが来ない為、遅くなる。→対策:背景をBODYタグのBACKGROUNDで指定する。●ゴール板を切ったら、その時の時間を計測する。●転倒時の画像作成&表示&確認後、ゲーム初期状態にする。●旗門不通過時の画像作成&表示&確認後、ゲーム初期状態にする。●画面が止まったら、ゴールの文字をグラディエーションしながらビューンと表示させる。●自作スキンで画面の左上にタイムを表示する。画像名をgm_GRS_X_skin_img_xxxとした(xxx=new,A,D)。・GRS_X_skinimg_pathをゲームページから指定可能にした。・タイトルを表示可能にした。・自分のタイムが上位3名(または指定数)内になければ最後に表示するようにした。●競技レベルを追加する。●最高タイムをランキング登録するボタンを作成。●それなら、最高タイムと滑ったタイムも表示する。●なお、ゲーム開始ボタンを押したら、右上のタイムは消す。画面上でセッティングさせるツールを作る。●これできるなら、インスペクション表示は簡単に出来たので追加。●バックミュージックを付ける。スキーのテンポに合うフリーmidiが少ないですね。