タイトルの通りWindowsで動作するフラッシュ暗算ソフトを作りたいと考えています
具体的には数字の桁数、口数、秒数を入力して表示させる
例)ランダムな3桁の数字を3秒間に15個表示させる
答えを入力して正誤の判定を表示する
最低限の機能でこのようなソフトをPythonで作る場合に、何を学び、どういった環境を揃えればいいでしょうか?
プログラミング経験はC++を使った、競技プログラミングをやっていたぐらいで、
基本的なif文だとかfor文だとか標準入出力を使うのが中心で、ソフトの開発等となると全く分からずといった状態です。
初歩的な質問で申し訳ないですが、解答よろしくお願いします。
No.1ベストアンサー
- 回答日時:
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
No.2
- 回答日時:
Python に対応した統合開発環境(IDE)ソフトを導入して、チュートリアルでも実践しましょう。
参考) Windows 用の定番 IDE
https://learn.microsoft.com/ja-jp/visualstudio/p …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(プログラミング・Web制作) 三菱製PLC Qシリーズで技術的なことをご教示いただければ幸いです。使ってるソフトはGXWorks2 1 2023/02/28 12:07
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Windows 10 WINDOWSのライセンス認証ができない 7 2022/11/09 15:43
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Iria→Irvineの後継って何でした...
-
ソフトウェア開発の着手金について
-
MacでVisual Basicしたい
-
自作ソフトウェアの販売方法
-
動画をDVDにメニュー付きでまと...
-
gccでコンパイルされた実行ソフ...
-
Pythonを用いたフラッシュ暗算...
-
encore と言う 譜面書きソフト...
-
なぜGIMPは使いづらいのか
-
Excelで顧客管理、フリーソフト...
-
イラストレーター、フォトショ...
-
一般に公開されたPDFがパスワー...
-
逮捕されますか?
-
プログラミングを教えたいです...
-
楽しくて最高のプログラミング...
-
小学1年生の子です。塾に行かせ...
-
IT業界より楽に稼げる業界って...
-
C言語、C+、C++、C#の違い
-
VBSでDim、Private、Publicの違い
-
COBOLでのNOT = の AND条件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どのソフトでHPを作っているか...
-
自作ソフトウェアの販売方法
-
ソフトウェア開発の着手金について
-
Iria→Irvineの後継って何でした...
-
JavaでWebページ作成
-
MacでVisual Basicしたい
-
なぜGIMPは使いづらいのか
-
録音済の音楽用CD-Rのファイナ...
-
窓の杜やベクターのフリーソフ...
-
Pythonを用いたフラッシュ暗算...
-
数学の問題作成用ソフト
-
OS・アプリケーション・ユー...
-
一般に公開されたPDFがパスワー...
-
iTunesのビジュアライザーみた...
-
Excel VBAのシェアウエアは可能?
-
Linux上で動く画面拡大ソフト
-
TURBO CADの解説書
-
gccでコンパイルされた実行ソフ...
-
B’s Recorderの代用となるよう...
-
corosyncってソフトって何ですか?
おすすめ情報