Form1.cs
using System.Windows.Forms;
namespace Math
{
#pragma warning disable CS1591 // 公開されている型またはメンバー 'Form1' の XML コメントがありません。
public partial class Form1 : Form
#pragma warning restore CS1591 // 公開されている型またはメンバー 'Form1' の XML コメントがありません。
{
private int int1;
private int int2;
private int results;
private int remainder;
private int answerRemainder;
private int hide;
private int answer;
private int count;
private int rightAnswer;
private int mistake;
private bool answerFlg = false;
private int max = 11;
private string str1 = "正解!よくできました";
private string str2 = "残念!まちがい";
private string str3 = "数字がおかしいよ!";
#pragma warning disable CS1591 // 公開されている型またはメンバー 'Form1.Form1()' の XML コメントがありません。
public Form1()
#pragma warning restore CS1591 // 公開されている型またはメンバー 'Form1.Form1()' の XML コメントがありません。
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
TextClear();
}
private void ButtonStart_Click(object sender, EventArgs e)
{
EnabledFalse();
TextClear();
textBoxJug.Text = "答えを入力して=>答え合わせ";
count++;
ScoreWrite();
AnRemainderVisible();
answerFlg = false;
Random random = new Random();
int1 = random.Next(1, max);
int2 = random.Next(1, max);
hide = random.Next(1, 4);
if (radioButtonAddition.Checked)
{
results = int1 + int2;
}
else if (radioButtonSubtraction.Checked)
{
if (int1 > int2)
results = int1 - int2;
else if (int1 < int2)
{
Swap();
results = int1 - int2;
}
else if (int1 == int2)
results = 0;
}
else if (radioButtonMultiplication.Checked)
{
results = int1 * int2;
}
else if (radioButtonDivision.Checked)
{
if (int1 > int2)
{
results = int1 / int2;
remainder = int1 % int2;
}
else if (int1 < int2)
{
Swap();
results = int1 / int2;
remainder = int1 % int2;
}
else if (int1 == int2)
{
results = 1;
remainder = 0;
}
}
switch (hide)
{
case 1:
richTextBox2.Text = int2.ToString();
richTextBoxResults.Text = results.ToString();
if (remainder != 0)
{
RemainderVisible();
}
richTextBox1.Enabled = true;
richTextBox1.Focus();
break;
case 2:
richTextBox1.Text = int1.ToString();
richTextBoxResults.Text = results.ToString();
if (remainder != 0)
{
RemainderVisible();
}
richTextBox2.Enabled = true;
richTextBox2.Focus();
break;
case 3:
richTextBox1.Text = int1.ToString();
richTextBox2.Text = int2.ToString();
richTextBoxResults.Enabled = true;
if (remainder != 0)
{
labelRemainder.Visible = true;
richTextBoxRemainder.Visible = true;
richTextBoxRemainder.Enabled = true;
}
richTextBoxResults.Focus();
break;
}
}
private void ButtonMatching_Click(object sender, EventArgs e)
{
switch (hide)
{
case 1:
if (int.TryParse(richTextBox1.Text, out answer))
{
if (answer == int1)
{
textBoxJug.Text = str1;
buttonStart.Focus();
if (!answerFlg)
{
rightAnswer++;
ScoreWrite();
answerFlg = true;
}
}
else
{
textBoxJug.Text = str2;
mistake++;
ScoreWrite();
richTextBox1.Focus();
richTextBox1.Clear();
}
}
else
{
textBoxJug.Text = str3;
richTextBox1.Focus();
richTextBox1.Clear();
}
break;
case 2:
if (int.TryParse(richTextBox2.Text, out answer))
{
if (answer == int2)
{
textBoxJug.Text = str1;
buttonStart.Focus();
AnswerFlg();
}
else
{
textBoxJug.Text = str2;
mistake++;
ScoreWrite();
richTextBox2.Focus();
richTextBox2.Clear();
}
}
else
{
textBoxJug.Text = str3;
richTextBox2.Focus();
richTextBox2.Clear();
}
break;
case 3:
if (richTextBoxRemainder.Visible == true)
{
if (int.TryParse(richTextBoxResults.Text, out answer) && (int.TryParse(richTextBoxRemainder.Text, out answerRemainder)))
{
if (answer == results && answerRemainder == remainder)
{
textBoxJug.Text = str1;
buttonStart.Focus();
AnswerFlg();
}
else
{
textBoxJug.Text = str2;
mistake++;
ScoreWrite();
ResultsRemainderClear();
}
}
else
{
textBoxJug.Text = str3;
ResultsRemainderClear();
}
}
else
{
if (int.TryParse(richTextBoxResults.Text, out answer))
{
if (answer == results)
{
textBoxJug.Text = str1;
buttonStart.Focus();
AnswerFlg();
}
else
{
textBoxJug.Text = str2;
mistake++;
ScoreWrite();
richTextBoxResults.Clear();
richTextBoxResults.Focus();
}
}
else
{
textBoxJug.Text = str3;
richTextBoxResults.Clear();
richTextBoxResults.Focus();
}
}
break;
default:
buttonStart.Focus();
break;
}
}
private void RadioButtonAddition_CheckedChanged(object sender, EventArgs e)
{
labelArithmetic.Text = "+";
Start();
textBoxJug.Text = "足し算=>スタートを押してね";
}
private void RadioButtonSubtraction_CheckedChanged(object sender, EventArgs e)
{
labelArithmetic.Text = "-";
Start();
textBoxJug.Text = "引き算=>スタートを押してね";
}
private void RichTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonMatching.Focus();
}
}
private void RichTextBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonMatching.Focus();
}
}
private void RichTextBoxResults_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (remainder == 0)
{
buttonMatching.Focus();
}
else
{
richTextBoxRemainder.Focus();
}
}
}
private void ButtonScoreClear_Click(object sender, EventArgs e)
{
count = 0;
rightAnswer = 0;
mistake = 0;
TextClear();
EnabledFalse();
ScoreWrite();
buttonStart.Focus();
}
private void RadioButtonMultiplication_CheckedChanged(object sender, EventArgs e)
{
labelArithmetic.Text = "×";
Start();
textBoxJug.Text = "掛け算=>スタートを押してね";
}
private void RadioButtonDivision_CheckedChanged(object sender, EventArgs e)
{
labelArithmetic.Text = "÷";
Start();
textBoxJug.Text = "割り算=>スタートを押してね";
}
private void RichTextBoxRemainder_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
buttonMatching.Focus();
}
}
//<自作メソッド>
//---------------------------------------------------------------------
private void TextClear()
{
richTextBox1.Clear();
richTextBox2.Clear();
richTextBoxResults.Clear();
richTextBoxRemainder.Clear();
}
private void Start()
{
TextClear();
EnabledFalse();
buttonStart.Focus();
AnRemainderVisible();
}
private void EnabledFalse()
{
richTextBox1.Enabled = false;
richTextBox2.Enabled = false;
richTextBoxResults.Enabled = false;
richTextBoxRemainder.Enabled = false;
}
private void AnswerFlg()
{
if (!answerFlg)
{
rightAnswer++;
ScoreWrite();
answerFlg = true;
}
}
private void ScoreWrite()
{
labelScore.Text = $"{count}問:正解{rightAnswer} 間違い{mistake}";
}
private void RemainderVisible()
{
labelRemainder.Visible = true;
richTextBoxRemainder.Visible = true;
richTextBoxRemainder.Text = remainder.ToString();
}
private void AnRemainderVisible()
{
labelRemainder.Visible = false;
richTextBoxRemainder.Visible = false;
remainder = 0;
}
private void ResultsRemainderClear()
{
richTextBoxResults.Clear();
richTextBoxRemainder.Clear();
richTextBoxResults.Focus();
}
private void Swap()
{
int int3;
int3 = int1;
int1 = int2;
int2 = int3;
}
//</自作メソッド>
//-----------------------------------------------------------
}
}