国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# Winform實現石頭剪刀布游戲

2020-01-24 00:11:09
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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++;  } } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陇南市| 东乡| 嘉义市| 望谟县| 监利县| 武隆县| 衡阳县| 黑龙江省| 威海市| 睢宁县| 屏东县| 石首市| 固始县| 福鼎市| 荆门市| 德保县| 德令哈市| 林口县| 屏山县| 营山县| 麟游县| 咸阳市| 南阳市| 隆尧县| 西宁市| 墨玉县| 全椒县| 乌鲁木齐市| 亚东县| 兖州市| 舞钢市| 富川| 铁岭县| 镇赉县| 宿州市| 鹿邑县| 宜宾市| 仪陇县| 台前县| 陆丰市| 固阳县|