講義メモ 続き

テキスト正誤 p.095の枠内のプログラム

【誤】if("") {
【正】if(string型の変数 != "")

ミニ演習 mini095

・p.095の枠内のプログラムには誤りがありエラーになる
・これを修正して、string型のパブリック変数sが空かどうかを判断するプログラムにしよう

作成例

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

public class mini095 : MonoBehaviour {
    public string s; //パブリック変数
    void Start() {
        if (s != "") {
            Debug.Log("空ではない");
        } else {
            Debug.Log("空です");
        }
    }
    void Update() {

    }
}

ミニ演習 mini095a

・p.091 Chap2_7_3を条件演算子で書き直そう
・「9」をint型のパブリック変数にする
・2のべき乗である場合は「2のべき乗である」と表示しよう
・ただし、プログラム中で「2のべき乗で」は1回のみ用いること

作成例

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

public class mini095a : MonoBehaviour {
    public int n; // パブリック変数
    void Start() {
        string s = "2のべき乗で"; //連結用の前半文字列
        Debug.Log(!Mathf.IsPowerOfTwo(n) ? s + "はない" : s + "ある");
    }
    void Update() {

    }
}

追加演習「ジャンケン」その1 janken1

・int型のパブリック変数handを定義する
・インスペクタに説明「手をどうぞ(0=グー,1=チョキ,2=パー)」をHeader機能で表示する
・handの値に応じて「あなたの手=」に続けて「グー」または「チョキ」または「パー」を表示

作成例

using UnityEngine;
public class janken1 : MonoBehaviour {
    [Header("手をどうぞ(0=グー,1=チョキ,2=パー)")]
    public int hand;
    void Start() {
        string s = "あなたの手=";
        Debug.Log(s + ((hand == 0) ? "グー" : (hand == 1) ? "チョキ" : "パー"));
    }
    void Update() {}
}

追加演習「ジャンケン」その2 janken2

・CPU側を作ろう。毎回異なる手を出して欲しいので乱数を使おう
・C#では、System.RandomクラスのインスタンスメソッドNextを呼ぶと乱数が提供される
・このとき、Next(種類数)を指定することで、0から種類数-1までの、どれかの値を返してくれる
・利用例:
  System.Random r = new System.Random(); //乱数クラスのオブジェクトを生成(後述)
  Debug.Log(r.Next(10)); //0から9までのどれかが表示される
・この機能を用いて、0から2までの乱数を得て、対応する手を表示するようにしよう
・乱数の値に応じて「わたしの手=」に続けて「グー」または「チョキ」または「パー」を表示

作成例

using UnityEngine;
public class janken2 : MonoBehaviour {
    [Header("手をどうぞ(0=グー,1=チョキ,2=パー)")]
    public int hand;
    void Start() {
        System.Random r = new System.Random(); //乱数クラスのオブジェクトを生成
        string s = "あなたの手=";
        Debug.Log(s + ((hand == 0) ? "グー" : (hand == 1) ? "チョキ" : "パー"));
        string c = "わたしの手=";
        int cpuh = r.Next(3); //乱数で0,1,2を得る
        Debug.Log(c + ((cpuh == 0) ? "グー" : (cpuh == 1) ? "チョキ" : "パー"));
    }
    void Update() { }
}

提出:追加演習「ジャンケン」その3 janken3

・判定を表示しよう
・例「あなたの勝ち」「わたしの勝ち」「あいこ」
・ヒント:先に「あいこ」を判断すると楽。判定はORで連結した条件ですると良い
 ※ 計算式で判定することもできる:(3 + hand - cpuh) % 3 == 2 ならばhandの勝ち

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です