使用C#实现一个石头剪刀布游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 石头剪刀布
{
public partial class Form1 : Form
{
int computer_sorce = 0;
int user_sorce = 0;
int i=0,j = 0;
int last_step = -1;//0表示平局,1为电脑上步加一,2为用户上步加一
public Form1()
{
InitializeComponent();
this.Text = "石头剪刀布";
label3.Text = ":";
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
button1.Text = "开始游戏";
button2.Text = "重新开始";
button3.Text = "悔棋";
button4.Text = "退出";
button2.Visible = false;
button3.Visible = false;
button4.Visible = false;
pictureBox2.Visible = false;
pictureBox3.Visible = false;
pictureBox3.Visible = false;
pictureBox4.Visible = false;
pictureBox5.Visible = false;
pictureBox6.Visible = false;
pictureBox7.Visible = false;
pictureBox8.Visible = false;
pictureBox9.Visible = false;
pictureBox10.Visible =false;
pictureBox11.Visible = false;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Visible = false;
button1.Visible = false;
button1.Enabled = false;
pictureBox2.Visible = true;
pictureBox3.Visible = true;
pictureBox4.Visible = true;
pictureBox5.Visible = true;
pictureBox6.Visible = true;
pictureBox7.Visible = true;
pictureBox8.Visible = true;
pictureBox9.Visible = true;
pictureBox10.Visible = true;
pictureBox11.Visible = true;
button2.Visible = true;
button3.Visible = true;
button4.Visible = true;
}
private void game_computer()
{
Random rand = new Random();
i = rand.Next(4);
if (i == 1)
{
pictureBox10.Load("..\\..\\picture\\1.jpg");
}
else if (i == 2)
{
pictureBox10.Load("..\\..\\picture\\2.jpg");
}
else if(i == 3)
{
pictureBox10.Load("..\\..\\picture\\3.jpg");
}
}
private void game_judgment()
{
if (i == 1)//电脑出石头
{
if (j == 1)
{
last_step = 0;
}
else if (j == 2)//用户出剪刀
{
computer_sorce++;
last_step = 1;
}
else if (j == 3)//用户出布
{
user_sorce++;
last_step = 2;
}
}
else if (i == 2)//电脑出剪刀
{
if (j == 1)//用户出石头
{
user_sorce++;
last_step = 2;
}
else if (j == 2)
{
last_step = 0;
}
else if (j == 3)//用户出布
{
computer_sorce++;
last_step = 1;
}
}
else if (i == 3)//电脑出布
{
if (j == 1)//用户出石头
{
computer_sorce++;
last_step = 1;
}
else if (j == 2)//用户出剪刀
{
user_sorce++;
last_step = 2;
}
else if (j == 3)
{
last_step = 0;
}
}
if (computer_sorce == 2)//当电脑分数到2时,显示you lose
{
label1.Visible = true;
pictureBox7.Enabled = false;//结果出来后三个图片按钮失效
pictureBox8.Enabled = false;
pictureBox9.Enabled = false;
label1.Text = "YOU LOSE!";
}
else if (user_sorce == 2)//当用户分数到2时,显示you win
{
label1.Visible = true;
pictureBox7.Enabled = false;
pictureBox8.Enabled = false;
pictureBox9.Enabled = false;
label1.Text = "YOU WIN!";
}
}
private void button4_Click(object sender, EventArgs e)//退出按钮
{
this.Close();
}
private void pictureBox7_Click(object sender, EventArgs e)//用户石头图片
{
j = 1;
pictureBox10.Visible = true;//划拳图片显示正常
pictureBox11.Visible = true;
label2.Visible = true;//计分器三个label显示
label3.Visible = true;
label4.Visible = true;
game_computer();
game_judgment();
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
pictureBox11.Load("D:\\newdesktop\\1.jpg");
}
private void pictureBox8_Click(object sender, EventArgs e)//用户剪刀图片
{
j = 2;
pictureBox10.Visible = true;//划拳图片显示正常
pictureBox11.Visible = true;
label2.Visible = true;//计分器三个label显示
label3.Visible = true;
label4.Visible = true;
game_computer();
game_judgment();
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
pictureBox11.Load("D:\\newdesktop\\2.jpg");
}
private void pictureBox9_Click(object sender, EventArgs e)//用户布图片
{
j = 3;
pictureBox10.Visible = true;//划拳图片显示正常
pictureBox11.Visible = true;
label2.Visible = true;//计分器三个label显示
label3.Visible = true;
label4.Visible = true;
game_computer();
game_judgment();
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
pictureBox11.Load("D:\\newdesktop\\3.jpg");
}
private void button2_Click(object sender, EventArgs e)
{
pictureBox7.Enabled = true;//重新开始后三个图片按钮生效
pictureBox8.Enabled = true;
pictureBox9.Enabled = true;
i = 0;
j = 0;
computer_sorce = 0;
user_sorce = 0;
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
pictureBox10.Visible = false;
pictureBox11.Visible = false;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
}
private void button3_Click(object sender, EventArgs e)
{
label1.Visible = false;
pictureBox7.Enabled = true;
pictureBox8.Enabled = true;
pictureBox9.Enabled = true;
pictureBox10.Visible = false;
pictureBox11.Visible = false;
if (last_step == 0)
{
}
else if (last_step == 1)
{
computer_sorce--;
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
}
else if (last_step == 2)
{
user_sorce--;
label2.Text = computer_sorce.ToString();
label4.Text = user_sorce.ToString();
}
last_step = -1;
}
}
}
效果图
开始游戏
点击开始
划拳
判定胜败
重新开始
悔棋
退出
看完上述内容,你们掌握使用C#实现一个石头剪刀布游戏的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。