02.系統設計(Design)


勿助,勿長;不應,不辯;

第一題 使用 Scala 中的 Trait, Object, 來表現易經中八卦的變化.
  • 易生太極, 太極生二儀, 二儀生四象, 四象生八卦, 八八演化六十四.


8經卦 = 24爻 = 3爻 * 8 = 陰陽各12爻



Trait 太極


package chaoyi.kuo.iching

/**
 * @author ChaoYi, Kuo
 * Mail: Kuo.ChaoYi@gmail.com
 * 
 * @see http://en.wikipedia.org/wiki/Taiji
 */

trait Taiji {
    val cName: String = "太極"
    val token = "☯"
    
    // 二儀
    val yangCname= "陽"
    val yangValue: Boolean = true
    val yangBit: Int = 1
    
    // 陰為陽反
    val yinCname = "陰"
    val yinValue = !yangValue
    val yinBit = 0
    
}


待處理idea
  1. 二進制數值的表現


Trait 四象 extends 太極


package chaoyi.kuo.iching


/**

 * @author ChaoYi, Kuo

 */

trait FourSymbols extends Taiji {

    

    val oldYang: List[Boolean] = yangValue::yangValue::Nil

    val youngYin = yinValue::yangValue::Nil

    

    val oldYin: List[Boolean] = List[Boolean](yinValue, yinValue)

    val youngYang = List[Boolean](yangValue, yinValue)

    

}



待處理idea
    1. 四象為二對相反組, 其實可以用 map 來處理, 但為了當教學用教材, 在這僅以最簡易的多樣表達.


    Trait 八卦 extends 四象


    • Array type
    • unique number

    package chaoyi.kuo.iching

    trait Bagua extends FourSymbols with Taiji{
    val sky = yangValue::oldYang
    val earth = yinValue::oldYin
    val fire = yangValue::youngYin
    }


    待處理idea
      1. 同四象的構思, 簡化教材用
      2. 待加入河圖洛書數
      3. 待加入先天和後天八卦順序處理
      4. 五行的表現也待納入



      Object 64卦 extends 八卦


      package chaoyi.kuo.iching

      object Gua64 extends Bagua {
      val g01 = sky++sky
      val g11 = earth++sky
      val g30 = fire++fire

      }


      待處理idea
        1. 同四象的構思, 簡化教材用
        2. 十二個月(辟卦)與十二地支要能表現出來
        3. 理論上應該要配合 01.爻變演算法 來完成, 一來減少人工處理的思維與降低錯誤, 二來符合易經的推演.


        UnitTest


        package chaoyi.kuo.iching.test

        import chaoyi.kuo.iching._

        object MainTest {
        def main(args : Array[String]) : Unit = {
        println(Gua64.g01)
        println(Gua64.g11)
        }

        }

        /*

        List(true, true, true, true, true, true) // 乾卦

        List(false, false, false, true, true, true) // 地天泰卦

        */




        Reference



        http://huxueyanyijingsh.blog.sohu.com/136057195.html