「グー・チョキ・パー」を選択

ラジオボタンで「グー・チョキ・パー」を選択します。

ラジオボタンで選択

  1. C:\Data\C#\Jyanken\ のフォルダーに Jyanken2.cs の名前で utf-8(BOM 有り)でタイプして格納して下さい。
    プログラムを起動して、ラジオボタンで「グー・チョキ・パー」を選択して下さい。
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        Bitmap  score, gu, chyoki, pa;
        Button  button0, button1, button2;
        int     you;
    
        public MyForm()
        {
            InitializeComponent();
            Paint += new PaintEventHandler(MyHandler);
            try
            {
                score = new Bitmap("C:\\DATA\\Test\\score.gif");
                gu    = new Bitmap("C:\\DATA\\Test\\jyanken0.gif");
                chyoki= new Bitmap("C:\\DATA\\Test\\jyanken1.gif");
                pa    = new Bitmap("C:\\DATA\\Test\\jyanken2.gif");
            }
            catch
            {
                MessageBox.Show("画像ファイルが読めません!", "C:\\DATA\\Test\\");
                return ;
            }
        }
    
        private void InitializeComponent()
        {
            // button0
            button0 = new Button();
            button0.Parent = this;
            button0.Location = new System.Drawing.Point(20, 240);
            button0.Text = "グー";
            button0.Click += new System.EventHandler(this.button0_Click);
            // button1
            button1 = new Button();
            button1.Location = new System.Drawing.Point(20, 280);
            button1.Text = "チョキ";
            button1.Click += new System.EventHandler(this.button1_Click);
            // button2
            button2 = new Button();
            button2.Location = new System.Drawing.Point(20, 320);
            button2.Text = "パー";
            button2.Click += new System.EventHandler(this.button2_Click);
    
            this.ClientSize = new System.Drawing.Size(400, 420);
            this.Controls.Add(this.button0);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.button2);
            this.Name = "MyForm";
            this.ResumeLayout(false);
            this.PerformLayout();
        }
    
        private void MyHandler(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawImage(score, 20, 20);
            switch(you)
            {   case 0: g.DrawImage(gu, 130, 240);
                        break;
                case 1: g.DrawImage(chyoki, 130, 240);
                        break;
                case 2: g.DrawImage(pa, 130, 240);
                        break;
            }
        }
    
        private void button0_Click(object sender, EventArgs e)
        {
            MessageBox.Show("グー を出します", "Button Click");
            you = 0;
            Invalidate();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("チョキ を出します", "Button Click");
            you = 1;
            Invalidate();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("パー を出します", "Button Click");
            you = 2;
            Invalidate();
        }
    }
    
    class form03
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  2. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
    C:\Data\C#\Jyanken のフォルダーに移動して、直接 csc コマンドを叩きます。
    コンパイルが終われば Jyanken2.exe を実行して下さい。
    >CD C:\Data\C#\Jyanken
    >CSC Jyanken2.cs
    >Jyanken2.exe          
    
  3. フォームにラジオボタンを配置して「グー・チョキ・パー」を選択します。
    ラジオボタンがクリックされると button0_Click ~ button2_Click が呼び出されます。
        Button  button0, button1, button2;
    
            // button0
            button0 = new Button();
            button0.Parent = this;
            button0.Location = new System.Drawing.Point(20, 240);
            button0.Text = "グー";
            button0.Click += new System.EventHandler(this.button0_Click);
            // button1
            button1 = new Button();
            button1.Location = new System.Drawing.Point(20, 280);
            button1.Text = "チョキ";
            button1.Click += new System.EventHandler(this.button1_Click);
            // button2
            button2 = new Button();
            button2.Location = new System.Drawing.Point(20, 320);
            button2.Text = "パー";
            button2.Click += new System.EventHandler(this.button2_Click);
    
            this.Controls.Add(this.button0);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.button2);
    
  4. buttonN_Click() では呼び出された手(グー・チョキ・パー)を you にセットして MyHandler() を呼び出します。
        private void button0_Click(object sender, EventArgs e)
        {
            MessageBox.Show("グー を出します", "Button Click");
            you = 0;
            Invalidate();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("チョキ を出します", "Button Click");
            you = 1;
            Invalidate();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("パー を出します", "Button Click");
            you = 2;
            Invalidate();
        }
    
  5. MyHandler() では you に設定された画像(グー・チョキ・パー)を描画します。
        private void MyHandler(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawImage(score, 20, 20);
            switch(you)
            {   case 0: g.DrawImage(gu, 130, 240);
                        break;
                case 1: g.DrawImage(chyoki, 130, 240);
                        break;
                case 2: g.DrawImage(pa, 130, 240);
                        break;
            }
        }
    

[Next Chapter ↓] 得点を計算
[Previous Chapter ↑] 画像の確認

超初心者のプログラム入門(C#)