我会保持这个简洁。 我正在学习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#塔。所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)