📄 form1.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 + -