程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# Winform學習--- 實現石頭剪刀布的游戲

C# Winform學習--- 實現石頭剪刀布的游戲

編輯:C#入門知識

C# Winform學習--- 實現石頭剪刀布的游戲


.實現代碼   新建一個windows窗體程序,用數字1代表石頭,用數字2代表剪刀,用數字3代表布,結果取玩家和電腦出拳之差,有三種結果   玩家贏: -1,2 平手: 0 玩家輸: 其它值         新建3個類:   1)Computer.cs 電腦隨機出拳   復制代碼 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace 石頭剪刀布 {     class Computer     {           public  string Fist         {             get;             set;         }             public int ShowFist()         {             Random rnd = new Random();             int fist = rnd.Next(1, 4);             switch (fist)             {                 case 1: Fist = "石頭"; break;                 case 2: Fist = "剪刀"; break;                 case 3: Fist = "布"; break;             }             return fist;         }       } } 復制代碼     2)、Judge.cs 裁判類 判斷輸贏   復制代碼 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace 石頭剪刀布 {       class Judge     {           public enum RESULT         {             玩家贏,             電腦贏,             平手         }           public static RESULT WhoWin(int playerNum, int computerNum)         {             int result = playerNum - computerNum;             if (result == -1 || result == 2)             {                 return RESULT.玩家贏;             }             else if (result == 0)             {                 return RESULT.平手;               }             else             {                 return RESULT.電腦贏;             }           }       } } 復制代碼     3)、Player.cs 玩家,出拳       復制代碼 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace 石頭剪刀布 {     class Player     {         public static int ShowFist(string fist)         {             switch (fist)             {                 case "石頭": return 1;                 case "剪刀": return 2;                 case "布": return 3;                 default: return 0;             }         }       } } 復制代碼     界面後台實現代碼:   復制代碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;   namespace 石頭剪刀布 {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         /// <summary>         /// 點擊石頭按鈕         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void btnStone_Click(object sender, EventArgs e)         {             String fist = "石頭";             Game(fist);         }         /// <summary>         /// 點擊剪刀按鈕         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void btnScissors_Click(object sender, EventArgs e)         {             String fist = "剪刀";             Game(fist);         }         /// <summary>         /// 點擊布按鈕         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void btnCloth_Click(object sender, EventArgs e)         {             String fist = "布";             Game(fist);           }           //背景圖片輪播         String[] paths = Directory.GetFiles(@"C:\work\stone");//此目錄裡面必須有圖片,否則會報錯         private void timer1_Tick(object sender, EventArgs e)         {             this.BackgroundImage = Image.FromFile(paths[new Random().Next(0, paths.Length)]);           }         static int playerWinTimes = 0;//玩家贏的次數         static int gameTimes = 0;//總共次數         static int tieTimes = 0;//平手次數           /// <summary>         /// 通用方法         /// </summary>         /// <param name="fist"></param>         private void Game(String fist)         {             gameTimes++;             lbPlayer.Text = fist;             int playerNum = Player.ShowFist(fist);             Computer cpu = new Computer();             int cpuNum = cpu.ShowFist();             lbComputer.Text = cpu.Fist;             Judge.RESULT result = Judge.WhoWin(playerNum, cpuNum);             lbJudge.Text = result.ToString();             lbStatistics.Text = "統計信息:\n\n1.您贏了" + playerWinTimes + "場比賽!\n\n" + "2.平手了" + tieTimes + "次; \n\n" + "3.輸掉了" + (gameTimes - playerWinTimes - tieTimes) + "場比賽; \n\n" + "4.共進行了" + gameTimes + "場比賽!\n\n";               if (result == Judge.RESULT.玩家贏)             {                 playerWinTimes++;                 MessageBox.Show("恭喜,您已經贏了" + playerWinTimes + "場比賽!" + " 共進行了" + gameTimes + "場比賽!");             }             else if (result == Judge.RESULT.平手)             {                 tieTimes++;             }           }       } }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved