using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 一個石頭剪刀布的游戲,下面代碼其實可以封裝成函數或者過程,封裝成函數或者過程會代碼更簡單,更清晰. 但是由於剛開始學C#,學到了面向對象的方法時再封裝吧. Random Rd = new Random(); //實例隨機數函數.. int i = 0; int num = 0; //用作系統出拳標識 Console.WriteLine("請選擇你的角色. [1.剪刀]\t[2.石頭]\t[3.小布]"); switch (Convert.ToInt16(Console.ReadLine())) { case 1: Console.WriteLine("你輸入的是剪刀"); Console.WriteLine("游戲開始,等待系統出招"); Console.WriteLine("系統開始出招"); while (i < Rd.Next(3, 30)) // 當循環, 最少循環3次.最大循環29次. 每次循環都給num取一個隨機數 { num = Rd.Next(4); Console.Write("."); i++; } Console.WriteLine("\n"); if (num == 2) Console.WriteLine("哈哈, 你輸了, 系統出了 [2.石頭]"); else if (num == 3) Console.WriteLine("好吧,你贏了.系統出了[3.小布]"); else Console.WriteLine("一個令人討厭的結果,系統出了[1.剪刀], 你們打平了."); break; //這個地方需要注意. 每個case結束后都必須有一個break,因為C#編譯器不會自動跳過下面的case語句. 如果不寫的話就無法編譯. case 2: Console.WriteLine("你輸入的是石頭"); Console.WriteLine("游戲開始,等待系統出招"); Console.WriteLine("系統開始出招"); while (i < Rd.Next(3, 30)) { num = Rd.Next(4); Console.Write("."); i++; } Console.WriteLine("\n"); if (num == 3) Console.WriteLine("哈哈, 你輸了, 系統出了 [1.小布]"); else if (num == 1) Console.WriteLine("好吧,你贏了.系統出了[1.剪刀]"); else Console.WriteLine("一個令人討厭的結果,系統出了[2.石頭], 你們打平了."); break; case 3: Console.WriteLine("你輸入的是小布"); Console.WriteLine("游戲開始,等待系統出招"); Console.WriteLine("系統開始出招"); while (i < Rd.Next(3, 30)) { num = Rd.Next(4); Console.Write("."); i++; } Console.WriteLine("\n"); if (num == 1) Console.WriteLine("哈哈, 你輸了, 系統出了 [1.剪刀]"); else if (num == 2) Console.WriteLine("好吧,你贏了.系統出了[2.石頭]"); else Console.WriteLine("一個令人討厭的結果,系統出了[3.小布], 你們打平了."); break; default : //所有結果都不符合時執行下面的語句, 等同於 if (<code>) 的 else ; Console.WriteLine("你輸入了錯誤的信息"); break; } Console.ReadKey(); //等待輸入 } } }