周易八卦——数字卦预测的程序实现
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("\r\n"); 51 } 52 } 53 }
diagrams,存储了上卦和下卦的顺序,其中keys数组中存储了八卦的爻信息,1:阳爻,0:阴爻。比如 111代表乾卦。
此程序运行效果如下:
高亮:代表算出的爻。下载完整的代码:https://github.com/wangqiang3311/mywork
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!