C#实现剪刀石头布游戏
作者:必胜虾 发布时间:2021-11-10 05:19:32
标签:C#,剪刀石头布,游戏
本文实例为大家分享了C#实现剪刀石头布游戏的具体代码,供大家参考,具体内容如下
游戏界面如下所示:
首先我们必须知道要创建三个类玩家类,电脑类,裁判类
1、玩家类中的代码为
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PlayGame
{
class Player
{
public int showFist(string str)
{
int num = 0;
switch (str)
{
case "剪刀": num = 1; break;
case "石头": num = 2; break;
case "布": num = 3; break;
}
return num;
}
}
}
2、电脑类中的代码为
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PlayGame
{
class Computer
{
/// <summary>
/// 存储电脑出的拳头
/// </summary>
public string fist
{
get;
set;
}
public int cpuShowFist()
{
Random r = new Random();
int cnum=r.Next(1,4);
switch(cnum)
{
case 1: this.fist = "剪刀"; break;
case 2: this.fist = "石头"; break;
case 3: this.fist = "布"; break;
}
return cnum;
}
}
}
3、裁判类中的代码为
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PlayGame
{
class Judge
{
public enum Result
{
电脑赢,玩家赢,平局
}
public static Result caipan(int playerNum, int cpuNum)
{
if ((playerNum - cpuNum) == 1 || (playerNum - cpuNum) == -2)
return Result.玩家赢;
else if((playerNum-cpuNum)==0)
return Result.平局;
else
return Result.电脑赢;
}
}
}
4、其他的事件代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PlayGame
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btncut_Click(object sender, EventArgs e)
{
NewMethod(btncut.Text);
}
private void NewMethod(string str)
{
lblPlayer.Text = str;
Player player = new Player();
int playerNum = player.showFist(str);
Computer cpu = new Computer();
int cpuNum = cpu.cpuShowFist();
lblComputer.Text = cpu.fist;
PlayGame.Judge.Result res = Judge.caipan(playerNum, cpuNum);
lblJudge.Text = res.ToString();
}
private void btnstone_Click(object sender, EventArgs e)
{
NewMethod(btnstone.Text);
}
private void btnbu_Click(object sender, EventArgs e)
{
NewMethod(btnbu.Text);
}
}
}
来源:https://blog.csdn.net/cxq_1993/article/details/46456391


猜你喜欢
- 前言:今年是我的第二个 1024 了 ,和我一起大声说出来,技术宅改变世界!!!本节主要介绍的是:SpringBoot 整合阿里 Druid
- 一、下载rocketmq对应版本源码修改消息存储路径需要修改rocketmq源码,因为rocketmq取的默认路径是user.home路径,
- 摘要:最近有一个需求,为客户提供一些Restful API 接口,QA使用postman进行测试,但是postman的测试接口与java调用
- 一、首先在Spring Boot项目中,手动添加异常方法进行测试@Transactional(rollbackFor=Exception.c
- Android中ListView下拉刷新实现效果图:ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理
- 前言PowerManagerService之亮屏流程分析 分析了亮屏的流程,并归纳出了一个适用于亮屏或灭屏的通用的流程。 但是,灭屏流程还有
- Android PopWindow 设置背景亮度的实例设置背景 /** * 设置添加屏幕的背景透明度 * @param bgAl
- 运行效果C#实现using Android.App;using Android.OS;using Android.Widget;namesp
- 以下四种方式:1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象
- 本文实例为大家分享了java实现录音播放的具体代码,供大家参考,具体内容如下需求:1.实现可以从麦克风进行录音2.可以停止录音3.实现播放录
- 搭建测试的数据库和表数据的SQL/* Navicat Premium Data TransferSource Server &
- 先说一下对异步和同步的理解:同步调用:调用方在调用过程中,持续等待返回结果。异步调用:调用方在调用过程中,不直接等待返回结果,而是执行其他任
- 队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Fro
- 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息。但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证。
- Java基础 Servlet * 详解 1 概念:Servlet * ,用来监听web容器的一些对象状态的变化,主要是Servle
- 本文实例讲述了C++求四个正整数最大公约数的方法。分享给大家供大家参考,具体如下:/** 作 者: 刘同宾* 完成日期:2012 年 11
- 1.一维数组名作为函数参数传递一位数组名,就相当于该数组的首个元素的地址;int a[10];int *p;p=a;//p=a与p=&
- 线程安全解决方案synchronized,ReentrantLock,Atomic 使用场景描述在实际开发过程中如果服务量,请求频繁,就会经
- 需求:类似医院或者商场,大屏幕无限轮播item (广告词/广告图…),供大家参考,具体内容如下代码如下/** * Created by Xi
- ViewPager是android-support-v4.jar包里的组件。在布局文件里标签需要连包名一起写全称<android.su