C#使用Unity实现剪刀石头布游戏

本文实例为大家分享了C#语言使用Unity实现剪刀石头布游戏的具体代码,供大家参考,具体内容如下

游戏:剪刀石头布

实现功能:

1、电脑随机出牌(剪刀石头布)

2、玩家选择出牌(剪刀石头布)

3、玩家没有出牌时,电脑变幻牌面;

      玩家出牌后,电脑出牌,并停止变幻牌面3秒,期间玩家无法选择出牌

4、玩家和电脑出牌后,电脑自动计分。

using UnityEngine;

using System.Collections;

public class hw0310a : MonoBehaviour {

//

public Rect windows1;

public Rect windows2;

public Rect btn1;

public Rect btn2;

public Rect btn3;

public Rect box1;

public Rect box2;

public Rect label1;

public Rect label2;

public string str1;

public string str2;

public int score1;

public int score2;

public Texture[] texture;

public int ComputerCp;

public int PlayerCp;

public GUISkin myskin;

public bool notShowTime;

public float MaxTime=3;

void Start () {

windows1=new Rect(100,240,400,120);

windows2=new Rect(100,0,400,195);

btn1=new Rect(40,20,80,80);

btn2=new Rect(160,20,80,80);

btn3=new Rect(280,20,80,80);

box1=new Rect(50,30,100,100);

box2=new Rect(250,30,100,100);

label1 = new Rect (95, 150, 50, 50);

label2 = new Rect (295, 150, 50, 50);

score1 = 0;

score2 = 0;

str1 = score1.ToString ();//将int类型转换为string类型,方便计分

str2 = score2.ToString ();

PlayerCp = 4;

notShowTime = false;

}

// Update is called once per frame

void Update () {

str1 = score1.ToString ();

str2 = score2.ToString ();


//控制电脑牌面的变幻条件和时间

if (notShowTime==false)

{

computerShow ();

}

else

{

MaxTime -= Time.deltaTime;

if (MaxTime < 0)

{

notShowTime = false;

MaxTime=3;

}

}

}

void computerShow(){

if (ComputerCp < 2) {

ComputerCp++;

} else {

ComputerCp = 0;

}

}

void OnGUI()

{

windows1=GUI.Window (1, windows1, windowFun1, "Game");

windows2=GUI.Window (2, windows2, windowFun2, "Computer VS Player");

}

void windowFun1(int Id)

{ //电脑牌面停止变幻时,玩家不能出牌

if (GUI.Button (btn1, texture [0]))

{

if(notShowTime==false)

{

PlayerCp=0;

ComputerOut();//根据玩家的牌,电脑出牌,电脑永远赢

gameLogic();//判断输赢并计分

}

}

if (GUI.Button (btn2, texture [1]))

{

if(notShowTime==false)

{

PlayerCp=1;

ComputerOut();

gameLogic();

}

}

if (GUI.Button (btn3, texture [2]))

{

if(notShowTime==false)

{

PlayerCp=2;

ComputerOut();

gameLogic();

}

}

GUI.DragWindow (new Rect(0,0,400,120));//括号内的矩形是可界面拖拽范围

}

void windowFun2(int Id)

{

// GUI.Button (b4, t4);

// GUI.Button (b5, t5);

GUI.DragWindow (new Rect(0,0,400,195));

GUI.Box (box1,texture[ComputerCp]);

GUI.Box (box2,texture[PlayerCp]);

GUI.Label (label1, str1);

GUI.Label (label2, str2);

}

void ComputerOut()

{

notShowTime = true;

int a=PlayerCp;

int b = PlayerCp - 2;

int c = PlayerCp + 1;

if (PlayerCp == 2)

{ //在确定的两个数中选取随机数的方法

int[] Cp1 = new int[]{a,b};

int i = Random.Range (0, 2);

ComputerCp = Cp1[i];

}

else

{

int[] Cp2= new int[]{a,c};

int i = Random.Range (0, 2);

ComputerCp = Cp2[i];

}

// ComputerCp = Random.Range (0, 3);

}

void gameLogic()

{

int a = ComputerCp - PlayerCp;

switch (a)

{

case 0:Debug.Log ("pingju");break;

case 1:

case -2:

{

Debug.Log ("Player Lose");

score1=score1+1;

break;

}

case 2:

case -1:

{

Debug.Log ("Player Win");

score2=score2+1;

break;

}

default:break;

}

}

}

以上是 C#使用Unity实现剪刀石头布游戏 的全部内容, 来源链接: utcz.com/z/328680.html

回到顶部