ここでは、C#のGUIのフレームワークであるWPFのサンプルプログラムを、ChatGPTの力を借りながら、作ったサンプルコードをまとめています。実行可能であることは確認していますが、WPF初学者の私がChatGPTと作っているので、ベストな方法ではないかもしれませんので、ご了承ください。

音を出す

指定した時間後に音を鳴らすタイマーを作ろうとしたのですが、プロンプトをいろいろ変えてもなかなかうまくいきませんでした。特に、音声ファイルの生成ができませんでしたのでまず音を出すサンプルから作ることにしました。

まずプロンプトです。これも一回ではうまくいかず、何度か修正してもらって完成しました。


Visual Studio Express 2017で、PCで動くサンプルアプリを作ります。
GUIはWFPを使います。

GUIの外観
+「音を出す」と書かれたボタン

動作
+「音を出す」を押すと、タイマー音が再生される。
+タイマー音は、exeファイルと同じフォルダにある「sound.mp3」を使用する。

このアプリのXAMLのコードと、C#のコードを作ってください。
mp3ファイルを再生するために必要なライブラリがある場合にはインストールの方法も説明してください。


 

GPTが作ってくれた、MainWindow.xamlです。

 

次は、GTPが作ってくれた、MainWindow.xaml.cs です。

 

実行したときのGUIです。ボタンを押すと、…\bin\Debug\sound.mp3 を再生することを確認しました。

タイマー

タイマーを作ってもらうのは、かなり試行錯誤しました。プロンプトを変えてもなかなか思うようにはいかず、運の要素もある感じもしてきました。特に、特に音を出すところで毎回エラーが出て、修正を依頼してもうまくいきません。

そこで、一気に作るのではなく、段階的に機能を加えていくように指示しました。そのようにしたら、結構スムーズに目的のものに到達できました。

 

以下、使用したプロンプトです。

1回目:時間のボタンは「+5秒」のみ。時間が0になっても、音は出さずに、表示のみ。


Visual Studio Express 2017で、PCで動くシンプルなタイマーアプリを作ります。
GUIはWFPを使います。

GUIに表示するもの
+時間を表示するラベル。画面上部にセンタリングして大きいフォントで表示。「HH:MM:SS」で時間を表示する。
+「+5秒」と表記された時間ボタン。時間を表示したラベルの下の行に配置。
+「初期化」と表記されたクリアボタン。時間増加ボタンの下の行に配置。

動作
+起動時すると、初期状態として、時間を「00:00:00」と表示。
+時間増加ボタンを押すと、対応する時間が加算されカウントダウンが開始する。
+カウントダウンが終わると、「時間になりました」と表示する。
+「初期化」ボタンを押すと、初期状態となる。

このアプリのXAMLのコードと、C#のコードを作ってください。コメントも詳しく入れてください。


 

2回目:時間が0になったときに音がなるようにする。音の繰り返しはなし。


カウントダウンが終わって、「時間になりました」と表示するときに、実行ファイル同じフォルダに配置されたsound.mp3 を再生するように改良してください。


 

3回目:「初期化」ボタンを押すまで、音が繰り返し鳴るようする。


カウントダウンが終わって、「時間になりました」と表示するときに、
実行ファイル同じフォルダに配置されたsound.mp3 を繰り返し再生するように改良してください。
そして、「初期化」ボタンを押したときに、再生を止めるようにしてください。


 

4回目:時間ボタンの追加。


「+5秒」のボタンの横に「+10秒」と「+1分」のボタンも加えてください。


 

5回目:レイアウト調整。


ボタンが重なっているので、位置を整えてください。


 

以下、GPTが最終的に作ってくれたコードです。

 

 

実行したときのGUIです。

立ち上げ時は00:00:00 を表示。

「+5秒」を押すと00:00:05からカウントダウンし、

時間が来ると、「時間になりました」と表示され、アラームが鳴り続けます。

やっとできました。

動画はこちら。