第27回 Excel VBAでじゃんけんプログラム   多段ハッシュ(多段連想配列)を使った例

無名ハッシュがなさそうなので、小さなハッシュを作ってから判定ハッシュを構築することにした。

hash_gu を使いまわししてもいいんじゃないの?と思ったが、
同じキーが登録されると例外を投げるみたい。
そもそも hash_gu の値が書き換わってしまうと hanteiに登録された内容が変わってしまう。
いわゆる参照を登録したので、参照先を書き換えると値が変わってしまう!!
ので、 hash_chとhash_paを作った。


しかしウォッチでハッシュを見てもキーまでしか登録されているのがわからない。
多段ハッシュになっているかどうかはウォッチからわからないので多段ハッシュ使うとデバッグが大変そうである................

Sub じゃんけん()

  Set hantei = CreateObject("Scripting.Dictionary")
  Set hash_gu = CreateObject("Scripting.Dictionary")
  Set hash_ch = CreateObject("Scripting.Dictionary")
  Set hash_pa = CreateObject("Scripting.Dictionary")


  hantei.Add "グー", hash_gu

  hash_gu.Add "グー", "ひきわけ"
  hash_gu.Add "チョキ", "勝ち"
  hash_gu.Add "パー", "負け"


  hantei.Add "チョキ", hash_ch

  hash_ch.Add "グー", "負け"
  hash_ch.Add "チョキ", "ひきわけ"
  hash_ch.Add "パー", "勝ち"


  hantei.Add "パー", hash_pa

  hash_pa.Add "グー", "勝ち"
  hash_pa.Add "チョキ", "負け"
  hash_pa.Add "パー", "ひきわけ"


  Debug.Print hantei("グー")("グー")
  Debug.Print hantei("チョキ")("パー")
  Debug.Print hantei("パー")("チョキ")
  

End Sub