[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年版)がやっと出来た。
てんてん丸の幼稚園最後の学芸会が金曜日にあった。
この学芸会、1日では終わらず2日にかけてやっている。
木曜日は、てんてん丸のお気に入りの女の子のAちゃんが
でるようで、それを見ていたようです。
で、てんてん丸の劇は、孫悟空。
てんてん丸の役は、その孫悟空。といっても一人でやるのではなく、
5人でやる。他の役も、5人ぐらいでやる。
当日は平日なので行けなかったが、ビデオで見た。
てんてん丸も年長ということで、さらに劇団でレッスンしている
ということもあって、どれだけ上手くなったか興味があった。
ビデオを見ると、年中までは、なんとなく皆さんに遅れながら
ソローモーション的な感じで踊ってたけど、
今回は、積極的に踊ってたね。
でも、迫力ある演技は出来ないけど、指の先まで綺麗に表現してたのは
てんてん丸だけだったかな。この点は劇団の効果かな。
ということで、年中から年長で大きく成長したようだ。
会社の忘年会があった。
飲みのあと、2次会はカラオケ組と飲み組に分かれた。
さすがにカラオケ組は少なく、6名だった。
時間は2時間と言うことで、開始。
まあ、自分としては、19日のオフ会の練習と、
今練習している曲の練習も兼ねて。。。。
まずは、場を盛り上げましょうということで、
いつものラルクの曲を歌い、19日の練習2曲と
あとペルセウスを入れたが、なぜが入らずキャンセルされた
みたいで、歌えなかった。これかなりショック。。。^^);;
さらに「どうにもとまらない」で盛り上げようとしたが、
なぜか、声が喉声で高めになって、音程が全然合わず、悲惨。^^);;
お酒のせいなのかな??後半なんとか合わせようとしたが
どうも中途半端。。。。でした。^^);;
これまたかなりのショックで。。。。
で最後に、先週1週間MD聞きまくり覚えた月の詩を
歌ったが、なんとか良かったみたい。^^)ちょっと安心。
今回面白かったのは、なぎら健一が歌った相撲の歌で、
曲自体は、なんか暗そうな歌なんだけど。。。。
まわしが取れてしまった事件を歌った曲ということで、
いやーーー歌詞が面白い、つき吹き出してしまった。
これオフ会で歌ったら、大爆笑ですかね。^^)
| 12 | 2026/01 | 02 |
| 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 | 30 | 31 |
