人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

自分で作った英単語や文章のスペルと意味のリストを使った暗記を考えています.ランダムに意味を表示し,その意味の英単語・文章をキーボードで入力し,正解なら発音するという流れのものです.自作する場合のお勧めツールや言語を教えて下さい.また,すでにそんなソフトがあったらそれも教えて下さい.

●質問者: taki
●カテゴリ:コンピュータ ゲーム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ATU
●30ポイント

コードとか簡単だと思うけど

Visual Basicぐらいかな。

Microsoftが出してるから信用はあると思うけど。

あとはCとかC#とかC++とか(言語難しいねやっぱり)。

参考になったらうれしいです、はい。

DL↓

Microsoft Visual Studio Express

参考HP VB中学校

http://homepage1.nifty.com/rucio/main/main.htm

◎質問者からの返答

ありがとうございます.

Visual Basicを見直したので,ちょっと勉強してみます.


2 ● Mook
●100ポイント ベストアンサー

マクロで簡単に作ってみました。


下記のようにEXCEL のA列に単語、B列に意味を入れて、下のマクロを実行してみてください。

AB
1Appleりんご
2Orangeみかん
3Bananaバナナ
4Grapeぶどう
5Strawberryいちご

マクロの使い方:

  1. Excel で Alt+F11 で VBE を起動
  2. VBE で 「挿入」メニューから「標準モジュール」を選択
  3. 開いたウィンドウに下記のコードをコピー
  4. Excel に戻って Alt+F8 でWordQuiz を実行

終了は END を入力です。

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub WordQuiz()
 Dim r As Long
 Dim rr As Long
 Dim i As Long
 Dim wd As String
 Randomize
 Do
 rr = r
 Do While rr = r
 r = Int(Rnd() * Range("A1").End(xlDown).Row) + 1
 Loop
 wd = ""
 For i = 1 To 3
 wd = InputBox("意味:" & Cells(r, "B").Value, "回答" & i & "回目", wd)
 
  '// 「END」 で終了
 If UCase(wd) = "END" Then
 Application.Speech.Speak "Good Bye"
 Exit Sub
 End If
 
  '// 合っていたら読み上げ
 If UCase(wd) = UCase(Cells(r, "A").Value) Then
 Application.Speech.Speak wd
 Exit For
 Else
  '// 外れ
 Beep 120, 300
 Sleep 50
 Beep 120, 800
 End If
 Next
 If i = 4 Then
 Application.Speech.Speak "Answer is " & Cells(r, "A").Value
 MsgBox Cells(r, "A").Value, , "答え"
 End If
 Loop
End Sub

Mac では say が読み上げコマンドのようです。

Mac はもっていませんので未検証ですが、下記のコードではダメでしょうか。


Option Explicit

Sub WordQuiz()
 Dim r As Long
 Dim rr As Long
 Dim i As Long
 Dim wd As String
 Randomize
 Do
 rr = r
 Do While rr = r
 r = Int(Rnd() * Range("A1").End(xlDown).Row) + 1
 Loop
 wd = ""
 For i = 1 To 3
 wd = InputBox("意味:" & Cells(r, "B").Value, "回答" & i & "回目", wd)
 
  '// 「END」 で終了
 If UCase(wd) = "END" Then
 MacScript("do shell script ""say 'Good Bye'""")
 Exit Sub
 End If
 
  '// 合っていたら読み上げ
 If UCase(wd) = UCase(Cells(r, "A").Value) Then
 MacScript("do shell script ""say '" & wd & "'""")
 Exit For
 Else
  '// 外れ
 MacScript("do shell script ""say 'Boo'""")
 End If
 Next
 If i = 4 Then
 MacScript("do shell script ""say 'Answer is " & Cells(r, "A").Value & "'""")
 MsgBox Cells(r, "A").Value, , "答え"
 End If
 Loop
End Sub

http://members3.jcom.home.ne.jp/daruma_kyo/info/shell.html

http://d.hatena.ne.jp/nacookan/20110724/1311468103

◎質問者からの返答

すばらしい!

簡単につくれるもんですね.

やってみたところ,読み上げのところでエラーになるので調べてみます.

マクロ使った事がなかったのですが,便利そうですね.


Mookさんのコメント
Mac だったんですね。 Mac 用のコードを追加しました。

3 ● ももんがらす
●30ポイント

P-Study Systemというソフトでかなり近いことが出来そうですが、いかがでしょう。

忘却曲線などを加味して効率的な出題方法をプログラミングするのは手間だと思いますし。

◎質問者からの返答

良さそうなんですが,Macなんで・・・

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ