C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 43 を表示中)
■22370 / )  Re[4]: 数値型の配列の要素に文字列を格納
□投稿者/ ま (82回)-(2008/07/19(Sat) 02:17:10)
・得点
・失点
・対戦チーム情報
 ・得点
 ・失点
 ・ホーム or アウェー

タイ/日本 がエントリーとして、ホームアンドアウェー1回戦、
というルールとして、アウェー得点2倍で失点差を計算
アウェー:タイが3対4で負け
ホーム:タイが0対3で負け

■ワールドカップ予選
 ●タイ
  ・得点=6
  ・失点=7
  ・対戦チーム情報
   ・国名=日本
   ・得点=3
   ・失点=4
   ・アウェー(タイがアウェー)
   ---
   ・国名=日本
   ・得点=0
   ・失点=3
   ・ホーム(タイがホーム)
 ●日本
  ・得点=10
  ・失点=3
  ・対戦チーム情報
   ・国名=タイ
   ・得点=4
   ・失点=3
   ・ホーム(日本がホーム)
   ---
   ・国名=タイ
   ・得点=3
   ・失点=0
   ・アウェー(日本がアウェー)

こんな感じのデータ構造になってればいいんじゃない?
勝ち点=3、引き分け=1、負け=−3

国名が文字列で、得点・失点が整数、ホームアンドアウェーが論理値
とかすると、いろんなデータ型をいっしょくたに出来る便利な器がVB
には用意されているからそれを覚えるといいかもね。
class っていうキーワードを使って箱を宣言すれば出来るよ。

例えば、
public class エントリーチーム
   public 国名 as string = "エントリーチーム"
   public 総得点 as integer = 0
   public 総失点 as integer = 0
   public 対戦チームリスト as new List(of 対戦チーム)
   public sub New(国名 as string)
      me.国名 = 国名
   end sub
end class

こうすればワールドカップ予選に出場するチームの器が簡単に出来ちゃう。
public class 対戦チーム
   public 国名 as string = "対戦チーム"
   public 得点 as integer = 0
   public 失点 as integer = 0
   public ホームアンドアウェー as boolean = false
end class

こーしておいてから、予選出場国を配列に登録するには、
dim ワールドカップ1次予選マップ as new Dictionary(of string, エントリーチーム)

ワールドカップ1次予選マップ.add("日本", new エントリーチーム("日本"))
ワールドカップ1次予選リスト.add("タイ", new エントリーチーム("タイ"))
ワールドカップ1次予選リスト.add("ビルマ", new エントリーチーム("ビルマ"))
ワールドカップ1次予選リスト.add("マレーシア", new エントリーチーム("マレーシア"))

とかやればいいんだ。簡単でしょ?

対戦チームの得失点の設定とか自国の総得失点の設定とか、得失点差やアウェー時には2倍で計算するとか
その他の必要なメソッドやロジックは適当に組み込んでやってみたらどーでしょう??



返信 編集キー/


管理者用

- Child Tree -