C#使用Unity實(shí)現(xiàn)剪刀石頭布游戲
本文實(shí)例為大家分享了C#語(yǔ)言使用Unity實(shí)現(xiàn)剪刀石頭布游戲的具體代碼,供大家參考,具體內(nèi)容如下
游戲:剪刀石頭布
實(shí)現(xiàn)功能:
1、電腦隨機(jī)出牌(剪刀石頭布)
2、玩家選擇出牌(剪刀石頭布)
3、玩家沒(méi)有出牌時(shí),電腦變幻牌面;
玩家出牌后,電腦出牌,并停止變幻牌面3秒,期間玩家無(wú)法選擇出牌
4、玩家和電腦出牌后,電腦自動(dòng)計(jì)分。
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類(lèi)型轉(zhuǎn)換為string類(lèi)型,方便計(jì)分
str2 = score2.ToString ();
PlayerCp = 4;
notShowTime = false;
}
// Update is called once per frame
void Update () {
str1 = score1.ToString ();
str2 = score2.ToString ();
//控制電腦牌面的變幻條件和時(shí)間
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)
{ //電腦牌面停止變幻時(shí),玩家不能出牌
if (GUI.Button (btn1, texture [0]))
{
if(notShowTime==false)
{
PlayerCp=0;
ComputerOut();//根據(jù)玩家的牌,電腦出牌,電腦永遠(yuǎn)贏
gameLogic();//判斷輸贏并計(jì)分
}
}
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));//括號(hào)內(nèi)的矩形是可界面拖拽范圍
}
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)
{ //在確定的兩個(gè)數(shù)中選取隨機(jī)數(shù)的方法
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;
}
}
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#獲取機(jī)器碼的方法詳解(機(jī)器名,CPU編號(hào),硬盤(pán)編號(hào),網(wǎng)卡mac等)
這篇文章主要介紹了C#獲取機(jī)器碼的方法,結(jié)合實(shí)例形式詳細(xì)分析了C#獲取硬件機(jī)器名、CPU編號(hào)、硬盤(pán)編號(hào)、網(wǎng)卡mac等信息的相關(guān)實(shí)現(xiàn)方法,需要的朋友可以參考下2016-07-07
C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換示例
這篇文章主要介紹了C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換,其中包含了try catch、switch語(yǔ)句的運(yùn)用,對(duì)于C#初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08
C#中ExecuteNonQuery()返回值注意點(diǎn)分析
這篇文章主要介紹了C#中ExecuteNonQuery()返回值注意點(diǎn)分析,對(duì)于C#數(shù)據(jù)庫(kù)程序設(shè)計(jì)有很大的借鑒價(jià)值,需要的朋友可以參考下2014-08-08

