忍者ブログ
[1] [2] [3] [4] [5]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

 プロ野球の公式戦の試合形式は、
毎年のようにいろいろ変えてるんだけど、
それに応じて、ゲームの方も対応していかないといけない。

しかし、以下に関しては、

     ・総試合数、
     ・延長戦の回数、
     ・再試合の有無

既に対応してあるので、どういう風に変更されても、ビクともしないが、

今回の交流戦に関しては、どこをどう直していいか、頭に出てこない。
というより、プログラムそのものを忘れているので、
思い出さなきゃならないけど、面倒だーーーー。。。

で、これを改良しないといけないが、
こういう改良点の内容をどこかに書いておかないと、
また次にとんでもない変更が決められると、
またプログラム変更するのに大変なことになる。

今までは、書いておくにも、ソースに長たらしく書けないし、
別に専用の設計書を書くなんてとても凹むし。

ということで、どこをどう直したかを、これからはブログに書いておこう。
これは、いい考えですね。^^)

ということで、ちょっとプログラムを眺めてみた感じでは、

【管理試合数の変更】

ポイントは、6チームのリーグ戦は、
管理上、「15」という数値を直接プログラムに記載して管理している。
プログラム上は、こういう直値を書くのは、改良する上で問題なので、
今回は、この直値部分を変数に変更する必要ありですね。^^)

この15という値は、
横浜戦は、5戦、中日戦は既に管理している横浜戦を除いて、4戦、
。。。。というように、6チームから2チームを抜き出す組合せの
数であり全部で15戦のためである。

これが交流戦だと、この15戦に、
セの各チームがパの各チームとホーム・ビジターで3戦ずつを戦うので、
結局、36戦が新しい組合せとして必要。
なので、交流戦では、15戦+36=51戦を管理しなくてはいけない。

ということで、セリーグのチーム数=Cとし、パリーグのチーム数=P
とすると、以下の式で求められる。

非交流戦モード時:

   管理戦数=C*(C−1)/2

交流戦モード時:

   管理戦数=C*(C−1)/2 + 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年版)がやっと出来た。

拍手[0回]

PR

Mozillaで
document.allをサポートしたようだという噂を聞いたので調べてみた。

サポートしたMozillaのバージョンは、Mozilla 1.8a3のテストバージョン。
ですが、現在の最新版のMozilla 1.8a4を、ダウンロードして見てみた。

拍手[0回]

 コンテストに登録して22日から公開されるけど、
なんとここに大問題が発生!!

昔、大量に掲示板に書き込んだ広告荒らしがやってきた!!
ななななななーーーなんと、1時間おきぐらいに違う種類の
広告を書き込んでくる。あっという間に掲示板が広告で
埋まってしまった。これには、さすがに焦った。
なにしろコンテストに応募してる掲示板に広告荒らしじゃね。

で、この掲示板にはIPアドレスを拒否できる機能があるので、
夜中にIPアドレスを拒否し、広告を削除してやった。

ところが、今度は違うIPアドレスで、再び大量に書き込んできた。
これじゃ、イタチゴッコなので、今度は掲示板に書き込む時に
その内容をJavaScriptで判断して、問題語を書き込もうとしていた場合は、
送信できないようにしてやった。

これで何とか静かになった。
でもサーバ側で拒否してくれればいいのにと思ったが、
まあ、一応できてるのでいいかなと思っていたら、

今度は、掲示板に直接書くのではなく、サーバにダイレクトに
送信しているようで、また大量に書き込みが。

いろいろネットで調べたら1500円ぐらいで、
自動掲示板書込用ソフトが通信販売されているようだ。
昔書き込んできた事があったが、
今度はこれが自動制御に発展し、このソフトを通信販売して
儲けてるやつが出てきたのか。。。。うっっっ。

これにはさすがに切れた。でも、どうするか考えたが
サーバに直接書き込んでては対処なし。

いや待てよ。表示するときに表示させなきゃいいんじゃないか。

ということで、まずはまじめにレイヤで表示ON・OFFを
制御するやり方を考えたが、それより単純にコメントに
してしまえば簡単じゃんということで、

禁止語が書き込んである書き込みに対しては、
表示するときにJavaScriptで判断し、
禁止語のある内容に関しては、コメントにして見えなくした

しかし、掲示板で広告が見えないにも関わらず、依然として
書き込んでくるが、その度にIPアドレスを変えてくる
まあ、書き込み日時とURLを指定して、あとは自動設定で
書き込んでくるのだろう。これでは削除する作業が大変。

やっぱ、OTDにサーバ側で対処してもらうようにお願い
するしかないか。。。。とほほ。

拍手[0回]

 HPの更新作業で一番大変なのが、試合結果とその総評を
書くこと。これ家に帰ってから1時間30分ぐらいは掛かる。

 1999年は、スコアと試合結果を主要なイニング毎に
書いていたが、これだと書くのが大変だし、覚えておく
のも大変ということで、

 2000年からは、イニング毎に書いていた打撃結果を、
新聞にあるような打撃結果表と同じような表を
CSSを用いて書くことに。これでかなり時間短縮できた。

 2001年からは、試合内容を書くのを、
基本フォームを決めて、それに沿って書くことに。
これは2000年は、行き当たりばったりで書いていたため、
書き始めるのに、どう書こうか悩んでいたため。

 さらに、打撃結果の表を手で入力していたが、
この作成に30分も掛かる為、この作業を効率化するために
JavaScriptで入力ツールを作り、帰りの電車の中で
JavaScriptが動作するPDA(ザウルス)で入力することにより、
HP更新作業が30分短縮した。

 このツールは、打者順に、その打者の打席結果を
名前、ポジション、イニング、打撃結果の順に入力し、
最後にTEXTで結果を出力する。

 ところが、PCでは上手く行ったが、
ザウルスだとメモリが不足し、途中で死んでしまう。^^);;
仕方なく、最終結果を出力するのではなく、
入力したデータをコマンド形式で出力し、
それをPCで最終形に変換することで対応した。

このPDAは、モバイルPCとかも考えたが、
値段と、大きさとかを考えて、最終的にシャープの
ザウルスに決めた。決めたきっかけは、日本語も入力
できるキーボードが引き出せて使える点。

やはり、総評を入力する関係上、ローマ字入力が出来るのが
慣れてるし、入力時間も速いし、ということで。

拍手[0回]

今回も、去年同様、2001年のNGW登録一番乗り^^)を目指して、ゲーム作成を考えた。

今回も野球ゲームネタを考えていたら、何やら選手会と機構側がもめ事。。。^^);;;
で、そういえば、もう冬だと思って、スキーやらなきゃ、からスキーゲーム作ろうに。^^)
ということで、スキーゲームを作ることに方向転換。

そこで一応、市場調査ということで、ネット上のスキーゲームなどをいろいろ見て回ったが、
どれも、スキーの醍醐味を感じられないものが多かったので、
やっぱ、スキーのエッジに乗り込む感じが大事だよなーーーー。
ってなことで、構想がまとまり。

まずは、スキーで滑る感覚に近づけるにはどうしたらよいか?
を考えた。

この回答が、マウスでドラグして、なおかつ、縦方向にドラグすることにより
ステップターンの要領でスピードが増して行くという考えにたどりつく。

そして、どうせやるなら、やっぱスラローム(回転競技)でしょ。でポール競技に。
あとは、実際にスクリプトで一歩一歩、試作して行くだけ。

今回は、NN6も期待に反して世の中に出ちゃったことだし、まあ対応しないとまずいかな。
ということで、NN6で作り出す。
さらに、クロスでIE4.0以上、NN4.x以上でも動かすため、基本部分のみのライブラリを作成。
このライブラリで大分作成が簡単になりました。^^)

はじめは、マウス操作のみを作り、次にポール表示を作り、ここまでは順調だったが。。。
ということで、これの詳細は以下の開発仕様&日記(?)に書き留めて作りました。
なお、現在のNN6(IE5.5も似たり寄ったりだが)は画像レイヤ操作が非常に甘いので注意ね。^^)

で、この仕様&日記(?)をhtmlソースの先頭に書いて行ったのは、
開発する上での一番のお勧めポイントです。
忘れずに覚えておけるし、進捗管理もできるし、
でいいですよ。^^)

以下、開発仕様&日記----------------------------------------------------------
●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からアクセスすると遅いようだ。HDからではOK。
 ●ぎこちなく、マウスが禁止マークになり、ドラグしなくてスキーもついてくるようになる。
  →IE5.5対策と同じで、backの画像があるとおかしくなる。でbodyタグの背景にしたら、OKになった。
   ただし、ジオだとページTOPにバナー表示があるのが辛い。仕方なく背景画像を下にバナー分ずらした。
 ●さらにNN6は、ドラグ中に旗門不通過か転倒で、ボタンが効かない。
  →ドラグ開始位置に画像があり、ドラグ中にこの画像を非表示にすると、マウスイベントが発生しなくなる。
  →したがって、消さなければOKだが、それだと画像が重なるので、画面外へ退いてもらうことに。
●今度は、IE5.5でスタートしたら、ドラグ中は全く画面が動かなくなる。
 ●背景に画像をレイヤで表示しているとマウスイベントが来ない為、遅くなる。→対策:背景をBODYタグのBACKGROUNDで指定する。
●ゴール板を切ったら、その時の時間を計測する。
●転倒時の画像作成&表示&確認後、ゲーム初期状態にする。
●旗門不通過時の画像作成&表示&確認後、ゲーム初期状態にする。
●画面が止まったら、ゴールの文字をグラディエーションしながらビューンと表示させる。
●自作スキンで画面の左上にタイムを表示する。(→あっ、これ秘密!!)
  ・変数にgm_GRS_X_skin_newgameweb(NGWのロゴ画像URL)を追加。
  ・新着、↑、↓の画像名をgm_GRS_X_skin_img_xxxとした(xxx=new,A,D)。
  ・GRS_X_skinimg_pathをゲームページから指定可能にした。
  ・タイトルを表示可能にした。
  ・自分のタイムが上位3名(または指定数)内になければ最後に表示するようにした。
●競技レベルを追加する。
●最高タイムをランキング登録するボタンを作成。
●それなら、最高タイムと滑ったタイムも表示する。
●なお、ゲーム開始ボタンを押したら、右上のタイムは消す。
●ゲーム用ポールを50個(多いか?)セッテング&最終調整。
  ●入力面倒なので、画面上でセッティングさせるツールを作る。
  ●これできるなら、インスペクション表示は簡単に出来たので追加。
●バックミュージックを付ける。なかなかスキーのテンポに合うフリーmidiが少ないですね。

・バグ:
●1)IEで旗門不通過時、×画像が表示されない。→なんか突然直った。
●2)自作スキン表示させると、メッセージが出ない,掲示板文字が細くなり、ゴールの文字も小さくなる。
   原因:NN4.xだと、TABLE内にSPANでstyle属性を指定すると、以後styleが無視されてしまう。
   対策:font,bタグでセル毎(IEはセル毎でないと無効)に文字色、サイズを指定する。
●3)IEで新着クリックで「数字を指定してください」のエラー → シュミレーションスキンモジュールの方でおかしいようだ。
●4)ポールが10個目でオブジェクトがないでエラーになる。→スタックの不等号の間違い。^^);;;
●5)ゴールしたら旗門不通過???とは、とほほ。→単なるセッティングツールのバグでした。
●6)NN4.xでインスペクション表示のスタート・ゴール文字にstyleが無視される。→単純な文字指定ミス。
●7)Web上でテストしたら、なんとNN6は、マウスダウンとともに、ポールがみんな消えてしまった。^^);;;
   確かにFDアクセスでは一瞬消えていたが、Web上でも同じとは。で、この原因調べが非常にてまどった。
   結局原因は、画像の幅、高さを変更すると、画面上の位置により消えてしまうようだ。
   この位置が難しく、スクロールバーが出るような状態だと発生しやすい。
   ということで、画像でなく、文字領域の背景色で代用。
●今回のbagzilla(Mozillaのバグ)登録件数:2件でした。ダハハ^^);;;;
Mozillaのバグ:修正した
画像消える


で、今回のゲーム名称は、回転競技なので、
まあ大会ということで、スキー大会だ、xxxカップ杯なんてあるので、
それを真似て、「BayStars Skier's CUP スキー回転競技大会」とした。


で、開発秘話で投稿したものがNewGameWebメールマガジンにあります。

拍手[0回]

忍者ブログ [PR]
カレンダー
01 2020/02 03
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
フリーエリア
[-]最新トラックバック
プロフィール
HN:
7maru
性別:
非公開
自己紹介:

バーコード
ブログ内検索
[+]アーカイブ
アクセス解析