zoukankan      html  css  js  c++  java
  • 周易八卦——数字卦预测的程序实现

     1         /// <summary>
     2         /// 根据数字确定八卦的上下卦,以及爻
     3         /// </summary>
     4         /// <param name="numbs"></param>
     5         /// <returns></returns>
     6         private static List<int> ComputerEightDiagrams(List<int> numbs)
     7         {
     8             List<int> dias = new List<int>();
     9 
    10             for (int i = 0; i < numbs.Count; i++)
    11             {
    12                 if (i != numbs.Count - 1)
    13                 {
    14                     var m = numbs[i] % 8;
    15 
    16                     if (m == 0) m = 8;
    17 
    18                     dias.Add(m);
    19 
    20                 }
    21                 else
    22                 {
    23                     var n = numbs[i] % 6;
    24 
    25                     if (n == 0) n = 6;
    26 
    27                     dias.Add(n);
    28                 }
    29             }
    30             return dias;
    31         }

    根据用户的输入确定是哪一卦,哪一爻。

    下面的代码是如何在控制台打印八卦图:

     1         private static void Print(List<int> diagrams)
     2         {
     3             //存储
     4             string[] keys = { "111", "011", "101", "001", "110", "010", "100", "000" };
     5 
     6             var up = diagrams[1];
     7             var down = diagrams[0];
     8 
     9             var upStr = keys[up - 1];
    10             var downStr = keys[down - 1];
    11 
    12             n = 0;
    13             PrintYao(upStr.ToCharArray(), diagrams[2]);
    14             PrintYao(downStr.ToCharArray(), diagrams[2]);
    15 
    16             Console.ResetColor();
    17         }
    18 
    19         private static int n = 0;
    20         private static void PrintYao(char[] chars, int yao)
    21         {
    22             bool isYao=false;
    23 
    24             foreach (var item in chars)
    25             {
    26                 n++;
    27 
    28                 Console.WriteLine("");
    29 
    30                 isYao = n == 6 - yao + 1;
    31 
    32                 if (item == '1')
    33                 {
    34                     Console.BackgroundColor =isYao? ConsoleColor.Yellow:ConsoleColor.Blue;
    35                     Console.WriteLine("            ");
    36                 }
    37                 else if (item == '0')
    38                 {
    39                     Console.BackgroundColor = isYao ? ConsoleColor.Yellow : ConsoleColor.DarkRed;
    40                     
    41                     var color = Console.BackgroundColor;
    42 
    43                     Console.Write("     ");
    44 
    45                     Console.ResetColor();
    46                     Console.Write("  ");
    47 
    48                     Console.BackgroundColor = color;
    49                     Console.Write("     ");
    50                     Console.Write("
    ");
    51                 }
    52             }
    53         }

    diagrams,存储了上卦和下卦的顺序,
    其中keys数组中存储了八卦的爻信息,1:阳爻,0:阴爻。比如 111代表乾卦。
    此程序运行效果如下:

    高亮:代表算出的爻。下载完整的代码:https://github.com/wangqiang3311/mywork

  • 相关阅读:
    实例事件
    实例方法
    Extends Option 扩展选项
    Watch 选项 监控数据
    methods方法选项
    computed Option 计算选项
    propsData Option 全局扩展的数据传递
    component 父子组件
    component-04 动态绑定组件
    component 全局局部组件
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/7125444.html
Copyright © 2011-2022 走看看