課題1 逃げるオシリのアルゴリズム(画面設定) ( No.3 )
日時: 2022/03/27 12:19
名前: REDCHEEKS

>>2 の続き

次に、プロジェクトの内部を見て、設定していきます。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020321.jpg
@「Form1」が選択されているのを確認し、
A スクロールさせて下の方にある「Text」を見つけ、その右横に「逃げるオシリのアルゴリズム」と入力します。
B Aを入力しキーボードの「Enter」を押下することで、ウインドウのタイトルに反映されます。
C 次に「ツールボックス」をクリックします。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020350.jpg
@ ピンのマークをクリックし、図の通りピンが立った状態にします。
A「コモン コントロール」をクリックし、一覧表示を開きます。
B「Button」をドラッグして「逃げるオシリのアルゴリズム」の画面上にコピーします。
C「ListBox」をドラッグして「逃げるオシリのアルゴリズム」の画面上にコピーします。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020442.jpg
@「ListBox1」をクリックして選択します。
A「ListBox1」の右下をドラッグして拡大します。
B「Button1」をクリックして選択します。
C「Button1」の右をドラッグして拡大します。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020514.jpg
@「Button1」をクリックして選択します。
A「Button1」が選択されているのを確認し、
B「Text」の右側に「お仕置き開始」と入力します。
C「Button1」をダブルクリックします。⇒ プログラム入力画面に切り替わります。

課題1 逃げるオシリのアルゴリズム(プログラム入力) ( No.4 )
日時: 2022/03/27 12:19
名前: REDCHEEKS

>>3 の続き

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020551.jpg
@「button1_Click」の下の { と } の間に、プログラムを手入力するか、または >>5 からコピペします。
A「button1_Click」の下の } の外側に、プログラムを手入力するか、または >>6 からコピペします。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020633.jpg
@ これが上のAで入力(またはコピペ)した「お仕置き処理」プログラムです。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020709.jpg
@ さらにライブラリを入力(または >>7 からコピペ)します。
A「開始」ボタンをクリックします。

以下は、プログラムの動作です。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20201230020734.jpg
@「お仕置き開始」ボタンをクリックします。
A お仕置き宣言が表示されるので「尻を突き出す」ボタンをクリックします。
B お仕置きが始まるので、お仕置きが終わらないうちに「尻を引っ込める」ボタンをクリックします。
C お叱りメッセージが表示されるので、再度「尻を突き出す」ボタンをクリックします。

http://spankingart.org/wiki/File:Dc27.jpg

課題1 コピペ用(ボタンの切り替え) ( No.5 )
日時: 2020/12/30 21:32
名前: REDCHEEKS

// ボタンの切り替え
if (button1.Text == "尻を突き出す")
{
button1.Text = "尻を引っ込める";
}
else if (button1.Text == "尻を引っ込める")
{
button1.Text = "尻を突き出す";
}
else // お仕置き処理
{
listBox1.Items.Clear();
button1.Text = "尻を突き出す";
Osioki();
button1.Text = "お仕置き開始";
}

課題1 コピペ用(お仕置き処理) ( No.6 )
日時: 2021/01/07 18:23
名前: REDCHEEKS

/// <summary>
/// お仕置き処理
/// </summary>
private void Osioki()
{
int n = 12; // 残りの回数
int escapeCount = 0; // 逃げた回数
int escapeTime = 0; // 逃げている時間(秒)

Say("これから罰としてオシリを" + n + "回叩きます。 パンツ下ろして、オシリ出しなさい。");

while (!CanSpank()) // お尻が突き出されるまで待つ
{
WaitSec(); // 1秒待つ
}
Say("始めます、歯を食いしばれ!");

while (n > 0) // 残り回数が 0 よりも大きければ繰り返す
{
WaitSec(); // 1秒待つ

if (CanSpank()) // お尻が突き出されている場合
{
Spank(); // オシリをぶつ

n--; // 残りの回数を -1 する
}
else // 引っ込めている場合
{
/***************************************************
* ★逃げるオシリのアルゴリズム *
* *
* ↓ここにプログラムを追加 *
* 逃げた回数(escapeCount)によるお叱り・処罰 *
* 逃げている時間(escapeTime)によるお叱り・処罰 *
***************************************************/

// (↓お叱りの例)
Say("逃げてはいけません、あと" + n + "回残っています、ちゃんとオシリを突き出しなさい。");

while (!CanSpank()) // お尻が突き出されるまで待つ
{
WaitSec(); // 1秒待つ
}
Say("始めます、うんと痛くします、辛抱しなさい!");
}
}
Say("部屋の隅でオシリを出したまま立ってなさい。"); // コーナータイム
}

課題1 コピペ用(ライブラリ) ( No.7 )
日時: 2020/12/30 21:33
名前: REDCHEEKS

private int _spankSC = 0;
private bool CanSpank()
{
return button1.Text == "尻を引っ込める";
}
private void Spank()
{
_spankSC %= 5;
if(_spankSC == 0)
{
Say("パアン、");
}
else
{
SayAdd("パアン、");
}
_spankSC++;
}
private void Say(string msg)
{
_spankSC = 0;
listBox1.Items.Add(msg);
}
private void SayAdd(string msg)
{
var cnt = listBox1.Items.Count;
if(cnt > 0)
{
listBox1.Items[cnt - 1] += msg;
}
}
private void WaitSec()
{
for (int t = 0; t < 4; t++)
{
System.Threading.Thread.Sleep(250);
Application.DoEvents();
}
}