プロが教えるわが家の防犯対策術!

タイトルの通りWindowsで動作するフラッシュ暗算ソフトを作りたいと考えています

具体的には数字の桁数、口数、秒数を入力して表示させる
例)ランダムな3桁の数字を3秒間に15個表示させる

答えを入力して正誤の判定を表示する

最低限の機能でこのようなソフトをPythonで作る場合に、何を学び、どういった環境を揃えればいいでしょうか?

プログラミング経験はC++を使った、競技プログラミングをやっていたぐらいで、
基本的なif文だとかfor文だとか標準入出力を使うのが中心で、ソフトの開発等となると全く分からずといった状態です。
初歩的な質問で申し訳ないですが、解答よろしくお願いします。

A 回答 (2件)

Q: 最低限の機能でこのようなソフトをPythonで作る場合に、何を学び、どういった環境を揃えればいいでしょうか?



> 何を学び

インタプリタの実装方法を学ぶ。
極論、全ての「ソフトウェア」はインタプリタ、です(それどころが、コンピュータの動作原理でさえ実は「インタプリタ」だ)。
一見、プログラミング言語のインタプリタ処理系を「学ぶ」と言うのはアカデミックな、言っちゃえば「机上の屁理屈」を学んでるように思うんだけど、実際はこれが一番シンプルな「ソフトウェアの作り方」で、これを学んでる人とそうじゃない人はかなり切り口が変わってくる。
また、アドベンチャーゲームなんかも原理的には「言語インタプリタ」の応用です。言語インタプリタを学ぶ、ってのはかなり応用が効くテクニックになります。
言語インタプリタの実装は、基本的には3つの部品、読み込み部(Read)、評価部(Eval)、出力部(Print)を別々に作って、それらを組み合わせてループ(Loop)で回す事によって作ります。これをREPL(Read-Eval-Print Loop)と呼ぶ。
どんなソフトウェアも(GUIのソフトウェアでさえ)、必ず実はREPLを持ってる。
REPLの仕組みを学んで下さい。そうすれば無敵・・・と言うよか、原理的にはソフトウェアは「ワンパターン」で「バカの一つ覚え」で作る事が可能になって、それが「レシピ」です。
それを知ってると知らないとでは雲泥の差がある、って事です。知らないと徒手空拳でスパゲティを量産する羽目になる。戦略が立たない。

Pythonで言語インタプリタの作り方を手早く、簡単に覚えるのは次の文書が有効です。

((Pythonで) 書く (Lisp) インタプリタ):
http://www.aoky.net/articles/peter_norvig/lispy. …

これはPython3.x系列ではなく、古いPython2.xの頃に書かれた文書なんだけど、非常に良くまとまってる。PythonでLispと言うプログラミング言語を作ってみよう、ってお話。
いずれにせよ、こういう「構造」を書けるようになるのが「プログラムを書く」上では重要なテクニックになります。

あるいはC++が得意なら、C++で何らかの簡単なプログラミング言語実装(インタプリタ)を作ってもいいでしょう。C/C++ならWeb上でそういった解説記事を探しても簡単に引っかかると思います。

> どういった環境を揃えればいいでしょうか?

「最低限の機能」ならPythonだけ、で十分です。
と言うか、DOS窓で走らせるようにすればいい。
端末は古臭いんだけど、プログラミングを覚える、とかする、とか言うのなら最適なツールとなる。
だからPython + 端末だけ、で当面は十分です。

実装例(端末上で動くようになっている):
https://www.ideone.com/PQR7OZ
    • good
    • 1

Python に対応した統合開発環境(IDE)ソフトを導入して、チュートリアルでも実践しましょう。



参考) Windows 用の定番 IDE
https://learn.microsoft.com/ja-jp/visualstudio/p …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!