じゃんけん対戦

じゃんけん画像

こんにちはAMGです。今回はじゃんけんゲームを開発した際に使用した実際のスクリプトをもとに解説していこうと思います!

じゃんけん画像
↑脳トレじゃんけんゲームをプレイする↑

【目次】
じゃんけんコード
肝になるのは変数
答え合わせ処理はメソッドで管理


じゃんけんコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerScript : MonoBehaviour
{
    public int winCount;
    public int playerNumber;
    public int enemyNumber;
    public int joukenNumber;

    public Image enemyImage;
    public Sprite[] handArray;
    public Image joukenImage;
    public Sprite[] joukenArray;
    public Text winCountText;

    public AudioSource SE;
    public AudioClip trueSE;
    public AudioClip falseSE;

    void Start()
    {
        winCountText.text = winCount.ToString();
        EnemyHand();
    }

    void Update()
    {
        winCountText.text = winCount.ToString();
    }

    public void EnemyHand(){
        enemyNumber = Random.Range(0,3); 
        enemyImage.sprite = handArray[enemyNumber];
        joukenNumber = Random.Range(0,3);
        if(joukenNumber == 0){
            joukenImage.sprite = joukenArray[joukenNumber];
        }
        else if(joukenNumber == 1){
            joukenImage.sprite = joukenArray[joukenNumber];
        }
        else if(joukenNumber == 2){
            joukenImage.sprite = joukenArray[joukenNumber];
        }
    }

    public void OnGuButtonClick()
    {
        playerNumber = 0;
        Answer();
    }

    public void OnChokiButtonClick()
    {
        playerNumber = 1;
        Answer();
    }

    public void OnPaButtonClick()
    {
        playerNumber = 2;
        Answer();
    }

    public void Answer(){
        //勝っての時の条件
        if(joukenNumber ==0){
            //敵がグーの時
            if(enemyNumber == 0 && playerNumber == 2){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 1 && playerNumber == 0){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 2 && playerNumber == 1){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else{
                SE.PlayOneShot(falseSE);
            }
        }
        //負けての時の条件
        if(joukenNumber ==1){
            if(enemyNumber == 0 && playerNumber == 1){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 1 && playerNumber == 2){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 2 && playerNumber == 0){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else{
                SE.PlayOneShot(falseSE);
            }
        }
        //あいこの時の条件
        if(joukenNumber ==2){
            if(enemyNumber == 0 && playerNumber == 0){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 1 && playerNumber == 1){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else if(enemyNumber == 2 && playerNumber == 2){
                winCount ++;
                SE.PlayOneShot(trueSE);
            }
            else{
                SE.PlayOneShot(falseSE);
            }
        }
        EnemyHand();
    }
}

【目次】
じゃんけんコード
肝になるのは変数
答え合わせ処理はメソッドで管理

ページ: 1 2