河内控制台应用程序的C#塔。

河内控制台应用程序的C#塔。,第1张

概述河内控制台应用程序的C#塔。

我会保持这个简洁。 我正在学习C#并探索语言的可能性。 作为一名Python程序员,我对.NET领域相当陌生。

我目前正在写一个河内控制台应用程序的塔。 我已经理解代码的recursion部分,因为这并不具有挑战性。

这是我的peg类的当前代码。

namespace Tower_of_hanoi { class PegClass { private int pegheight; private int y = 3; int[] rings = new int[0]; public PegClass() { // default constructor } public PegClass(int height) { pegheight = height; } // other functions public voID AddRing(int size) { Array.Resize(ref rings,rings.Length + 1); rings[rings.Length - 1] = size; } public voID DrawPeg(int x) { for (int i = 1; i <= pegheight; i++) { Console.SetCursorposition(x,y); Console.Writeline("|"); y++; } if (x < 7) { x = 7; } Console.SetCursorposition(x - 7,y); // print the base Console.Writeline("----------------"); } } }

这是我的代码为主类显示钉。 我已经通过把它们放在一个方法中来促进了钉子的印刷。

.NET – 从代码中设置电源选项

怎样才能在.NET上创build一个软件路由器?

Win服务暂停或停止时,继续任务的最佳方式是什么?

是否有可能将windows Mobile仿真build立到应用程序中?

如何在VB.NET中的用户计算机上安装字体,以便Word等应用程序可以使用它?

namespace Tower_of_hanoi { class Program { static voID Main(string[] args) { PegClass myPeg = new PegClass(8); PegClass myPeg2 = new PegClass(8); PegClass myPeg3 = new PegClass(8); DrawBoard(myPeg,myPeg2,myPeg3); Console.Readline(); } public static voID DrawBoard(PegClass peg1,PegClass peg2,PegClass peg3) { Console.Clear(); peg1.DrawPeg(20); peg2.DrawPeg(40); peg3.DrawPeg(60); } } }

我的问题仍然是,

在控制台应用程序中如何移动到“pegs”? 我理解这将如何在WinForms中工作,但我想要一个挑战。

提前谢谢大家,

youmeoutsIDe

是否有windows错误报告的.Net API

在.NET中获取目录数据的最快方法

http请求未经客户authenticationscheme“Ntlm”

创builDWin任务运行一次,立即删除使用C#

如何强制Dns.GetHostAddresses .NET方法只查询DNS或DNScaching?

您所要做的就是修改DrawPeg方法来接受当前“戒指”的数量

public voID DrawPeg(int x,int numberOfRings = 0) { for (int i = pegheight; i >= 1; i--) { string halfRing = new string(' ',i); if (numberOfRings > 0) { if (i <= numberOfRings) halfRing = new string('-',numberOfRings - i + 1); } Console.SetCursorposition(x - halfRing.Length * 2 + i + (halfRing.Contains("-") ? (-i + halfRing.Length) : 0),y); Console.Writeline(halfRing + "|" + halfRing); y++; } if (x < 7) { x = 7; } Console.SetCursorposition(x - 7,y); // print the base Console.Writeline("----------------"); }

然后,您可以使用当前值调用DrawBoard方法(现在它们是硬编码的)

public static voID DrawBoard(PegClass peg1,PegClass peg3) { Console.Clear(); peg1.DrawPeg(20,1); peg2.DrawPeg(40,2); peg3.DrawPeg(60,4); }

现在你所要做的就是每次玩家移动时用不同数量的戒指来调用方法

总结

以上是内存溢出为你收集整理的河内控制台应用程序的C#塔。全部内容,希望文章能够帮你解决河内控制台应用程序的C#塔。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1289457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存