⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 关于山羊与汽车的小游戏! 利用C#语言完成
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Media;

namespace GoatCar
{
    /// <summary>
    /// Contral
    /// </summary>
    public partial class Form1 : Form
    {

        /// <summary>
        /// 一块画布
        /// </summary>
        public static Bitmap myB = new Bitmap(350, 400);
        private Graphics myG = Graphics.FromImage(myB);
        /// <summary>
        /// 画刷,用于填充
        /// </summary>
        SolidBrush myBrush = new SolidBrush(Color.Red);
        /// <summary>
        /// 画笔,用于画图
        /// </summary>
        private Pen fpen = new Pen(Color.Red, 2);
        /// <summary>
        /// 一个模型对象
        /// </summary>
        private Model one = new Model();

        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 结束
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void finish() 
        {
            MessageBox.Show("游戏结束");
            one.end();
            label1.Visible = true;
            textBox1.Text = null;
            textBox1.Visible = true;
            label2.Visible = false;
            radioButton1.Visible = false;
            radioButton2.Visible = false;
            radioButton3.Visible = false;
            label6.Text = null;
            label7.Text = null;
            label8.Text = null;
            label10.Text = null;
            label12.Text = null;
            showGraph(0);
        }
        /// <summary>
        /// 通过圆与扇形显示概率
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void showGraph(double rate)
        {
            SolidBrush brush=new SolidBrush(Color.Green);
            myG.Clear(Color.White);
            myG.DrawEllipse(fpen, 50, 70, 240, 240);
            myG.FillEllipse(myBrush, 50, 70, 240, 240);
            float a =float.Parse(Convert.ToString( 360 * rate));
            myG.FillPie(brush, 50, 70, 240, 240, 0, a);
            string rightRate = "正确率:" + Convert.ToString(one.getCurrateRate() * 100) + "%";
            SolidBrush Brush=new SolidBrush(Color.Black);
            Font myFont = new Font("行楷", 7);
            myG.DrawString(rightRate, myFont, Brush, 165, 200);
            myG.DrawString("状况:"+Convert.ToString(one.getCurretTime())+"/"+Convert.ToString(one.getTotalTime()),myFont,Brush,50,50);
            pictureBox1.Image = myB;
        }

        private void begin() 
        {
            label1.Visible = false;
            textBox1.Visible = false;
            radioButton1.Visible = true;
            radioButton2.Visible = true;
            radioButton3.Visible = true;
            one.setRightNum( one.generateRight());
            one.setSelectNum( one.ra.Next(0, 3));
            label6.Text = null;
            label7.Text = null;
            label8.Text = null;
            label10.Text = null;
            label12.Text = null;
            label2.Text = "您选的是" + Convert.ToString(one.getSelectNum()) + ", " + Convert.ToString(one.anotherNum()) + "是一只绵羊!";
            label2.Visible = true;
        }
        /// <summary>
        /// 输入错误
        /// </summary>
        private void enterError() 
        {
            MessageBox.Show("请输入一个正整数");
            textBox1.Text = null;
        }
        /// <summary>
        /// 所选正确时
        /// </summary>
        private void selectRight() 
        {
            one.setRightTime(one.getRightTime() + 1);
            one.setRightCondition(one.getRightCondition() + "*");
            one.PlaySound(1);
        }
        /// <summary>
        /// 所选错误时
        /// </summary>
        private void selectWrong()
        {
            one.setRightCondition(one.getRightCondition() + "!");
            one.PlaySound(0);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
        /// <summary>
        /// 显示概率,对错,结果以及主持人的提示
        /// </summary>
        private void labelView() 
        {
            label2.Text = "您选的是" + Convert.ToString(one.getSelectNum()) + ", " + Convert.ToString(one.anotherNum()) + "是一只绵羊!";
            label6.Text = Convert.ToString(one.getCurrateRate()*100)+"%";
            label7.Text = Convert.ToString(one.getRightCondition());
            label8.Text = Convert.ToString(one.getRightKeys());
            label10.Text = Convert.ToString(one.getTotalTime() - one.getCurretTime()) + "次";
            label12.Text = Convert.ToString(one.getTotalTime()) + "次";
        }
        /// <summary>
        /// 处理每次玩家选择的情况
        /// </summary>
        private void dealWith() 
        {
            one.setCurrateTime(one.getCurretTime() + 1);
            if (one.getSelectNum() == one.getRightNum())
            {
                selectRight();
            }
            else 
            {
                selectWrong();
            }
            one.calculateRate();
            showGraph(one.getCurrateRate());
            one.setRightKeys(one.getRightKeys() + Convert.ToString(one.getRightNum()));
            one.setRightNum(one.generateRight());
            one.setSelectNum(one.ra.Next(0, 3)); 
            labelView();
        }
        /// <summary>
        /// 按下Enter键之后的情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (one.isNumber(textBox1.Text))
                {
                    int temp = Convert.ToInt32(textBox1.Text);
                    if (temp > 0)
                    {
                        begin();
                        one.setTotalTime(temp);
                    }
                    else
                    {
                        enterError();
                    }

                }
                else
                {
                    enterError();
                }


            }
        }
        /// <summary>
        /// 用户选择不改变时的情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton1_Click(object sender, EventArgs e)
        {
            if (!one.timeEnd())
            {
                dealWith();
            }
            else 
            { 
                finish();
            }
               

        }
        /// <summary>
        /// 用户选择随机选一个时的情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton2_Click(object sender, EventArgs e)
        {
            if (!one.timeEnd())
            {

                one.generateRandom();
                 dealWith();
            }
            else 
            {
                finish();
            }
        }
        /// <summary>
        /// 用户选择选另一个时的情况
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton3_Click(object sender, EventArgs e)
        {
            if (!one.timeEnd())
            {

                one.generateOther();
                dealWith();
            }
            else
            {
                finish();
            }
        }

       
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -