网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1056|回复: 0
打印 上一主题 下一主题

[其他] 如果诸葛亮用C#写出师表

[复制链接]

271

主题

284

帖子

1243

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1243

最佳新人活跃会员热心会员突出贡献优秀版主

跳转到指定楼层
楼主
发表于 2021-3-18 16:04:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出师表背景(照抄原文)
今天让我们码农以特有的方式,来表达对丞相大人的敬仰与怀念!
蜀章武元年(221年),刘备称帝,诸葛亮为丞相。蜀汉建兴元年(223年),刘备病死,将刘禅托付给诸葛亮。诸葛亮实行了一系列比较正确的政治和经济措施,使蜀汉境内呈现兴旺景象。为了实现全国统一,诸葛亮在平息南方叛乱之后,于建兴五年(227年)决定北上伐魏,拟夺取魏的长安,临行之前上书后主,即这篇《出师表》。
C# 源码
定义的一些类、枚举
  1. public enum 王道 { 明, 昏 };

  2. /// <summary>
  3. /// 先帝,陛下,文景,桓灵
  4. /// </summary>
  5. public class 君
  6. {
  7.   public string 名称;
  8.   public bool 在;
  9.   public 王道 为君;

  10.   public 君()
  11.   {
  12.     在 = true;
  13.     为君 = 王道.明;
  14.   }
  15.   public bool 创业(double percentage)
  16.   {
  17.     if (percentage < 0.5)
  18.     {
  19.       在 = false;
  20.       Console.WriteLine($"{名称}创业未半而中道崩殂!");
  21.       return false;
  22.     }
  23.     else
  24.     {
  25.       Console.WriteLine(@"{名称}兴复汉室,还于旧都!");
  26.       return true;
  27.     }
  28.   }

  29.   public void 开张圣听()
  30.   {
  31.     Console.WriteLine("开张圣听,光先帝遗德!");
  32.   }

  33.   public void 恢弘志士之气() { }

  34.   public void 宾自菲薄() { }

  35.   public void 引喻失义()
  36.   {
  37.     Console.WriteLine("塞忠谏之路!");
  38.   }

  39.   public void 亲贤臣远小人()
  40.   {
  41.     为君 = 王道.明;
  42.   }

  43.   public void 亲小人远贤臣()
  44.   {
  45.     为君 = 王道.昏;
  46.   }

  47.   public void 治国() { }

  48.   public void 偏私()
  49.   {
  50.     Console.WriteLine("内外异法!");
  51.   }

  52.   public bool 咨之(string 事)
  53.   {
  54.     if (王道.明 == 为君)
  55.     {
  56.       return true;
  57.     }

  58.     return false;
  59.   }

  60.   public bool 施行(string 事)
  61.   {
  62.     return true;
  63.   }

  64.   public void 曰(string 言)
  65.   {
  66.     Console.WriteLine(言);
  67.   }

  68.   public void 每与臣论此事()
  69.   {
  70.     Console.WriteLine("叹息痛恨于桓灵。");
  71.   }

  72.   ~君() { }
  73. }


  74. public enum 臣德 { 贤, 奸 }

  75. public class 侍卫之臣
  76. {
  77.   private 君 刘备 = new 君();
  78.   private 君 刘禅 = new 君();

  79.   public string 名称;
  80.   public 臣德 为臣;

  81.   public void 不懈于内()
  82.   {
  83.     Console.WriteLine($"侍卫之臣({名称})不懈于内");
  84.   }

  85.   public bool 追先帝之殊遇()
  86.   {
  87.     if (刘备.为君 == 王道.明)
  88.     {
  89.       return true;
  90.     }
  91.     else
  92.     {
  93.       return false;
  94.     }
  95.   }

  96.   public bool 报之于陛下()
  97.   {
  98.     if (刘禅.为君 == 王道.明)
  99.     {
  100.       return true;
  101.     }
  102.     else
  103.     {
  104.       return false;
  105.     }
  106.   }

  107.   public bool 谋事(string 事)
  108.   {
  109.     if (为臣 == 臣德.贤)
  110.     {
  111.       return true;
  112.     }

  113.     return false;
  114.   }
  115. }

  116. class 忠志之士
  117. {
  118.   private 君 刘备 = new 君();
  119.   private 君 刘禅 = new 君();

  120.   public string 名称;
  121.   public 臣德 为臣 = new();

  122.   public void 忘身于外()
  123.   {
  124.     Console.WriteLine($"忠志之士({名称})忘身于外!");
  125.   }

  126.   public bool 追先帝之殊遇()
  127.   {
  128.     if (刘备.为君 == 王道.明)
  129.     {
  130.       return true;
  131.     }
  132.     else
  133.     {
  134.       return false;
  135.     }
  136.   }

  137.   public bool 报之于陛下()
  138.   {
  139.     if (刘禅.为君 == 王道.明)
  140.     {
  141.       return true;
  142.     }
  143.     else
  144.     {
  145.       return false;
  146.     }
  147.   }

  148.   public bool 谋事(string 事)
  149.   {
  150.     if (为臣 == 臣德.贤)
  151.     {
  152.       return true;
  153.     }

  154.     return false;
  155.   }
  156. }

  157. public enum 气候 { 兴盛, 疲弊, 兴隆, 倾颓 }

  158. /// <summary>
  159. /// 曹魏,东吴,益州,先汉,后汉
  160. /// </summary>
  161. public class 国
  162. {
  163.   public 气候 国运;

  164.   public 国()
  165.   {
  166.     国运 = 气候.兴盛;
  167.   }

  168.   public void 付诸有司论其刑赏(侍卫之臣 臣)
  169.   {
  170.     if (臣.为臣 == 臣德.贤)
  171.     {
  172.       Console.WriteLine("赏!");
  173.     }
  174.     else
  175.     {
  176.       Console.WriteLine("刑!");
  177.     }
  178.   }

  179.   ~国() { }
  180. }

  181. /// <summary>
  182. /// 郭攸之,费祎
  183. /// </summary>
  184. public class 侍中 : 侍卫之臣 { };

  185. /// <summary>
  186. /// 董允
  187. /// </summary>
  188. public class 侍郎 : 侍卫之臣 { }

  189. /// <summary>
  190. /// 陈震
  191. /// </summary>
  192. public class 尚书 : 侍卫之臣 { }

  193. /// <summary>
  194. /// 张裔
  195. /// </summary>
  196. public class 长史 : 侍卫之臣 { }

  197. /// <summary>
  198. /// 蒋琬
  199. /// </summary>
  200. public class 参季 : 侍卫之臣 { }

  201. /// <summary>
  202. /// 向宠
  203. /// </summary>
  204. class 中都督 : 忠志之士 { }

  205. /// <summary>
  206. /// 诸葛亮
  207. /// </summary>
  208. class 丞相 : 侍卫之臣
  209. {
  210.   public void 回首往事()
  211.   {
  212.     Console.WriteLine("臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸候。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值巅覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。");
  213.   }

  214.   public void 表忠心()
  215.   {
  216.     Console.WriteLine("先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明。故五月渡泸,深入不毛。");
  217.   }

  218.   public void 请战()
  219.   {
  220.     Console.WriteLine("今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室, 还于旧都。");
  221.   }
  222.   public void 道别()
  223.   {
  224.     Console.WriteLine("今当远离, 临表涕零, 不知所言。");
  225.   }
  226. }
复制代码

Main方法
  1. static void Main(string[] args)
  2. {
  3.   君 先帝 = new 君();
  4.   先帝.名称 = "先帝";
  5.   先帝.创业(0.49);

  6.   国 益州 = new 国();
  7.   益州.国运 = 气候.疲弊;

  8.   Console.WriteLine("此诚危急存亡之秋也!");

  9.   侍中 郭攸之 = new 侍中();
  10.   郭攸之.名称 = "郭攸之";
  11.   if (郭攸之.追先帝之殊遇() && 郭攸之.报之于陛下())
  12.   {
  13.     郭攸之.不懈于内();
  14.   }

  15.   侍中 费祎 = new 侍中();
  16.   费祎.名称 = "费祎";
  17.   if (费祎.追先帝之殊遇() && 费祎.报之于陛下())
  18.   {
  19.     费祎.不懈于内();
  20.   }

  21.   侍郎 董允 = new 侍郎();
  22.   董允.名称 = "董允";
  23.   if (董允.追先帝之殊遇() && 董允.报之于陛下())
  24.   {
  25.     董允.不懈于内();
  26.   }

  27.   中都督 向宠 = new 中都督();
  28.   向宠.名称 = "向宠";
  29.   if (向宠.追先帝之殊遇() && 向宠.报之于陛下())
  30.   {
  31.     向宠.忘身于外();
  32.   }

  33.   君 陛下 = new 君();
  34.   if (陛下.为君 == 王道.明)
  35.   {
  36.     陛下.开张圣听();
  37.     陛下.恢弘志士之气();
  38.   }
  39.   else
  40.   {
  41.     陛下.宾自菲薄();
  42.     陛下.引喻失义();
  43.   }

  44.   陛下.治国();

  45.   bool 宫中 = false;
  46.   bool 府中 = false;
  47.   bool 陟臧 = false;
  48.   bool 罚否 = false;
  49.   Debug.Assert(宫中 == 府中);
  50.   Debug.Assert(陟臧 == 罚否);

  51.   侍卫之臣 作奸犯科者 = new 侍卫之臣();
  52.   作奸犯科者.为臣 = 臣德.奸;
  53.   侍卫之臣 为忠善者 = new 侍卫之臣();
  54.   为忠善者.为臣 = 臣德.贤;
  55.   if (陛下.为君 == 王道.明)
  56.   {
  57.     益州.付诸有司论其刑赏(作奸犯科者);
  58.     益州.付诸有司论其刑赏(为忠善者);
  59.   }
  60.   else
  61.   {
  62.     陛下.偏私();
  63.   }

  64.   if (郭攸之.为臣 == 臣德.贤
  65.     && 费祎.为臣 == 臣德.贤
  66.     && 董允.为臣 == 臣德.贤)
  67.   {
  68.     Console.WriteLine("此皆良实,志虑忠纯,是以先帝简拔以遗陛下。");
  69.   }

  70.   string 宫中之事 = null;
  71.   if (陛下.咨之(宫中之事)
  72.     && 郭攸之.谋事(宫中之事)
  73.     && 费祎.谋事(宫中之事)
  74.     && 董允.谋事(宫中之事))
  75.   {

  76.     陛下.施行(宫中之事);
  77.     Console.WriteLine("裨补阙病, 有所广益");
  78.   }

  79.   if (向宠.为臣 == 臣德.贤)
  80.   {
  81.     Console.WriteLine("性行淑均,晓畅军事。");
  82.     Console.Write("先帝称之曰:");
  83.     先帝.曰("能");
  84.     Console.WriteLine("是以众议举宠为督。");
  85.   }

  86.   string 营中之事 = null;
  87.   if (陛下.咨之(营中之事))
  88.   {
  89.     陛下.施行(宫中之事);
  90.     Console.WriteLine("行阵和睦,优劣得所!");
  91.   }

  92.   君 文景 = new 君();
  93.   君 恒灵 = new 君();
  94.   国 先汉 = new 国();
  95.   国 后汉 = new 国();

  96.   文景.亲贤臣远小人();
  97.   先汉.国运 = 气候.兴隆;
  98.   恒灵.亲小人远贤臣();
  99.   后汉.国运 = 气候.倾颓;

  100.   do
  101.   {
  102.     先帝.每与臣论此事();
  103.   } while (先帝.在);

  104.   if (郭攸之.为臣 == 臣德.贤
  105.           && 费祎.为臣 == 臣德.贤
  106.           && 董允.为臣 == 臣德.贤)
  107.   {
  108.     Console.WriteLine("此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。");
  109.   }

  110.   丞相 诸葛亮 = new 丞相();
  111.   诸葛亮.回首往事();
  112.   诸葛亮.表忠心();
  113.   诸葛亮.请战(); // 此臣所以报先帝而忠陛下之职分也
  114.   诸葛亮.道别();

  115. }
复制代码

代码输出《出师表》先帝创业未半而中道崩殂!此诚危急存亡之秋也!侍卫之臣(郭攸之)不懈于内侍卫之臣(费祎)不懈于内侍卫之臣(董允)不懈于内忠志之士(向宠)忘身于外!开张圣听,光先帝遗德!刑!赏!此皆良实,志虑忠纯,是以先帝简拔以遗陛下。裨补阙病, 有所广益性行淑均,晓畅军事。先帝称之曰:能是以众议举宠为督。行阵和睦,优劣得所!叹息痛恨于桓灵。此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸候。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值巅覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明。故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室, 还于旧都。今当远离, 临表涕零, 不知所言。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-11-15 01:27 , Processed in 0.034367 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表