C#でじゃんけんプログラムを作ってみた。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

Visual Studioでじゃんけんプログラムを作成!

C#新しいプロジェクト開く
新しいプロジェクトを選択。

コンソールアプリケーション選択
コマンドラインを使用するので「コンソールアプリケーション」を選択

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Janken
{
    class Program
    {
        //配列型、変数teに出す名前を設定
        static string[] te =  {"グー","チョキ","パー" };

        static void Main(string[] args)
        {
            Console.WriteLine("じゃんけん大会へようこそ!");
            Console.WriteLine("じゃんけんを開始しますか?");
            
            //正しく入力されるまでループさせる。
            while (true) {
                Console.WriteLine("開始:Y");
                Console.WriteLine("終了:N");
                //Y or N を入力します。
                string yn = Console.ReadLine();

                if (yn.Equals("y") || yn == "y" || yn.Equals("Y") || yn == "Y")
                {
                    // Y or y 入力 → じゃんけんを開始するメソッドを呼びます。
                    start();
                    Console.WriteLine("もう一度じゃんけんを開始しますか?\n");
                }
                else if(yn.Equals("n") || yn == "n" || yn.Equals("N") || yn == "N")
                {
                    // N or n 入力 → アプリケーションをを終了します。
                    Environment.Exit(0);
                }
                //Y or N 以外の入力 → もう一度入力を促します。
                else
                {
                    Console.WriteLine("入力に誤りがあります。");
                }
            }
        }
        //じゃんけんを開始するメソッド。
        static void start()
        {
            Console.WriteLine("あなたの出す手を決めてください。");
            Console.WriteLine("0:グー");
            Console.WriteLine("1:チョキ");
            Console.WriteLine("2:パー");

            //自分の出す手を入力します。
            string Myhand = Console.ReadLine();
            //正しく入力されたかチェックします。
            check(ref Myhand);
            //コンピューターとじゃんけんさせます。
            janken(ref Myhand);
        }

        //正しく入力されたかチェックを行うメソッド。
        static string check(ref string Myhand)
        {
            //0,1,2が入力されるまでループさせる。
            while (true)
            {
                //0,1,2が入力された場合
                if (Myhand.Equals("0") || Myhand.Equals("1") || Myhand.Equals("2"))
                {
                    //入力した数字をそのまま返します。
                    return Myhand;
                }
                //0,1,2以外が入力された場合
                else
                {
                    Console.WriteLine("入力に誤りがあります。");
                    Console.WriteLine("0:グー");
                    Console.WriteLine("1:チョキ");
                    Console.WriteLine("2:パー");

                    //入力に誤りがあるので再び入力を促す。
                    Myhand = Console.ReadLine();
                } 
            }
        }
        //コンピュータと自分の入力した手を判別するメソッド
        static void janken(ref string Myhand)
        {
            // Random クラスの新しいインスタンスを生成する
            Random ran = new System.Random();
            //コンピュータの出す手を0以上2以下に設定する。
            string con = ran.Next(3).ToString();

            //コンピュータが勝利した場合
            if (((Myhand == "0") && (con == "2")) ||
                ((Myhand == "1") && (con == "0")) ||
                ((Myhand == "2") && (con == "1")))
            {
                Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand)));
                Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con)));
                Console.WriteLine("コンピュータの勝ちです。");
            }
            //自分が勝利した場合
            else if (((Myhand == "0") && (con == "1")) ||
                     ((Myhand == "1") && (con == "2")) ||
                     ((Myhand == "2") && (con == "0")))
            {
                Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand)));
                Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con)));
                Console.WriteLine("あなたの勝ちです。");
            }
            //あいこだった場合
            else
            {
                Console.WriteLine("あなた:" + te.GetValue(int.Parse(Myhand)));
                Console.WriteLine("コンピュータ:" + te.GetValue(int.Parse(con)));
                Console.WriteLine("あいこです。");
                Console.WriteLine("もう一度じゃんけんを始めます。\n");
                //じゃんけんを開始するメソッドを呼び出す。
                start();
            }
        }
    }
}

動作確認は「Ctrl」+ 「F5」で実行。

コマンドライン

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*