MoonWolf(むーんうるふ)です。

 

複数のプログラム言語の入門書を書いています。

 

今回のテーマは、夏休みの課題。

 

私の書籍のプログラムはGitHubに

MITライセンスという形で登録されています。

 

MITライセンスとは、簡単に表現すると

「利用者は自由に使ってよいですよ。」というものです。

 

つまり、分かりやすく言うと、

私のプログラムを自分なりに少しいじって、

夏休みの研究発表などに、自由に使ってよいのですよ。

 

どのように調整したら、結果がどうなるか?

という部分は、どの書籍にも詳しく書いてあります。

 

先にGitHubのリンクを見せておきましょう。

私のプログラムを見ることができます。

例えば、MoonWolfのなでしこ3のプログラムはここです。

 

 

↑ここの、ブランチ10と20に

書籍で紹介されている、プログラムソースコードは既に、、

ほら見て? 

閲覧が可能ですから。コピーもできますよ。

 

 

こんな感じのすごくシンプルなゲーム作成から

始めてみてはいかがですか?

 

GAME1ができるまでの道のり

 

 

こんな感じで、ひとつひとつ、やっていけば良いのよ。

 

・マウスで自分を動かす

・弾を発射してみる

・敵を1機動かしてみる

・弾と敵の当たり判定をつけてみる

 

これでもうゲームですよ。

 

興味のある人は、こちらを紹介。

全くゲーム作成の経験が無い人に詳しく作り方を説明しています。

出来上がったものは、自由に使ってもらって良いですから。

 

 

『MoonWolfと学ぶ 日本語プログラム開発 なでしこ 第2巻 ゲーム開発 基礎練習編』

 

 

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 

 

これじゃ、物足りないねー

もっと、難しいのが好きなんだよねー

 

そんなあなたへ。

言語はPythonになりますが、

私は既に準備済ですよ。

 

ほら、見てごらんなさい。

 

Pythonを使って描いた花火大会

 

Pythonを使って開発したレトロ2Dゲーム

 

『MoonWolfと学ぶPythonシリーズ 第3巻 花火大会編』

 

『MoonWolfと学ぶPythonシリーズ 第4巻 レトロゲーム編』

 

夏休みの課題などで、ご自由にお使いください。

 

それがMoonWolfの願いです。

MoonWolf(むーんうるふ)です。

 

コンピュータプログラムの書籍を中心に、

23冊もの書籍を出版しています。(2024年8月現在)

 

 

「何から手をつけていいのか、よく分からないです。」

という、ご意見をいただきそうです。

 

今回のテーマは、プログラムが全くの初心者へのお勧めです。

 

2つ程、提案しておきます。

 

 

私の書籍はAmazon KindleUnlimited(キンドル アンリミテッド)に

月額980円で加入している方は、無料ですべて読めます。

これを使うと、月に何十冊も読むことが可能になります。

 

それ以外の方は、

Kindle版の電子書籍(価格が安い傾向にある)

 

あるいは、

紙のペーパーバック版(印刷代+輸送代が入り、価格が高い傾向にある)

これらが準備できています。

 

 

本の読み方にほ大きくわけて、「精読」と「多読」があります。

学校の授業、あれが精読です。

精読は一文字、一文字、考えに考えて、かみしめながら読む方法

 

 

一方、多読とは、さらーっと書籍全体に目を通して、

自分が気になる部分を中心に本を読みきってしまう方法。

KindleUnlimitedの人はこれができます。

なにせ、ただなのですから。

 

100%内容を習得しなくても、10%でも20%でも

その本から得られるものがあれば、ラッキーと考えて

次々と書籍をページをめくっていってしまいます。

多くの書籍から、自分が気に入る部分だけを、

次々と学習できます。

 

 

プログラム初心者にお勧め①

 

一番、優しくて、PCからでも、iPhoneなどの端末からでも

すぐにプログラミングができて、さらに、

内容が易しいのが、こちらの書籍です。

 

 

『MoonWolfと学ぶ 日本語プログラム開発 なでしこ 第1巻 超入門編』

 

このようなWEBの画面で、すぐに始められます。

 

プログラムの基礎を、短時間でこの書籍を通して

マスターできるように構成されています。

 

変数の意味、算術演算・論理演算、比較演算、

判定文、繰り返し文、関数の扱い。

 

重要なこの部分だけに焦点を絞ってあります。

実際にプログラムを打ち込みながら練習ができます。

早い人は1日でマスターすることでしょう。

 

 

プログラム初心者にお勧め②

 

 

『MoonWolfと学ぶPythonシリーズ 第1巻 超入門編』

 

高校や大学、専門学校でPythonが採用されるケースが多くなっています。

 

この書籍では、無料版のPyCharm Communityをつかい、

Pythonの基礎から解説しています。

あなたのPCにPython+PyCharm Communityをインストールします。

 

 

これがPyCharm Communityの画面

とても使いやすいです!

 

この書籍では、Lazarus(Pascal)のユーザの私から見た

Pythonって、一体何が違うのか、

その新鮮な驚きをたくさん記しつつ、基礎項目をまとめ上げました。

Python初心者の方には、私の書籍は分かりやすいと思います。

 

これ以外にMoonWolfと学ぶPytohnシリーズとして

2巻:オブジェクト指向プログラミング(OOP)解説編

3巻:OOPを使った花火大会編

4巻:2Dレトロゲーム編

 

1巻、2巻で基礎をつくり、3巻、4巻で

その内容をもとに、一気に作品をつくり上げています。

 

2024年、この夏、

私のお勧めのどちらか、あるいは両方を

マスターして、プログラマーへの第一歩を

歩んでみてはいかがでしょうか?

 

プログラム能力は、あなたの人生を豊かにする

 

そのように考えております。

 

 

 

参考動画:

 

 

プログラマーであり、

Amazon著者であり、

PixAI大使である、MoonWolf(むーんうるふ)です。

 

あぁ、私はいったいどれくらいの時間を、

プログラムと数学に費やしてきたのでしょうか。

 

それは、単なる徒労だったのでしょうか。

点数を取るためだけの手段だったのでしょうか。

 

いや、プログラミング+数学+物理の世界に使ったエネルギーは、

優秀なプログラミング言語と、高速なPCのおかげで、

私にアウトプットをさせてくれる道を与えてくれたのでした。

 

はい、今回のテーマは、

「プログラミングと数学の接点を求める。」です。

何せ、接点の1点で良いので、語る側として気が楽ですねー

 

なでしこ3の、配列の中に、辞書型データを

いくらでも実行時に追加できる機能を利用して、

私の関数グラフ+シューティングのゲームに、

星の動いた残像を残して、グラフ化するように

機能の追加ができました。

 

私のプログラムは数学を使っていますよ!

と、言っても、今までは

「そうかもしれないけど、よく分からんね。」

と、言われたことでしょう。

 

しかし、この動画をご覧ください。

これは、明らかに数学のグラフを描いていますね?

 

数学、物理の先生方、

そして、その生徒たち、

コンピューター系の専門学校生、大学生、

 

少なくともこれらの方々は、

ちょっとは、「おっ!」と、思うはずです。

数学の関数が、

教科書にかかれて固定されたものではなく、

動きを伴って表現されていて、

さらに、ゲーム化されているからです。

 

私がやっているのは、Xの値を均等に増加させて、

それぞれの数学の関数に、

Yの値を計算してもらっているだけです。

そのXとYを使い星の位置を決定しています。

動きが速くなるのは、Yの値の変化量が大きいところです。

 

 

 

参考資料:

 

これらが、私が使っている数学の関数たち。

すべて、「yはxの関数」です。

 

Y = 整数変換( 3500 * 1 / 数学的X ) * (-1)
Y = ABS( 整数変換( 0.3 * 数学的X + 30 ) )
Y = 整数変換( 3500 * 1 / 数学的X )
Y = 整数変換( 0.003 * 数学的X * 数学的X ) * (-1)
Y = 整数変換( 0.007 * ( 数学的X - 50 ) * ( 数学的X - 50 ) - 150 )
Y = 整数変換( 0.006 * ( 数学的X + 70 ) * ( 数学的X + 70 ) - 200 ) * (-1)
Y = 整数変換( 120 * SIN( 数学的X * 0.005 ) )
Y = 整数変換( 10 * TAN( 数学的X * 0.0098 ) )
Y = 整数変換( 数学的X * SIN( 数学的X * 0.05 ) )
Y = 整数変換( 5000 / 数学的X * SIN( 数学的X * 0.05 ) )

 

おおよそ1年前、Lazarus(言語:Pascal)で作成したプログラムの

なでしこ3版のリメイクと、星の残像機能追加です。

 

最初に作成する際には、ゲームが全くない状態から作成し、

100以上ある、自分で作成した数学の関数の候補から、

それぞれ自分で動かしてみて、10個厳選しました。

 

指数関数、対数関数も候補にありましたが、

意外と面白くないのです。

それに対して、中1で習う反比例が動きが結構面白いです。

サイン波は、期待通りの安定の動き。

タンジェント波形はすごいの一言。

最後のふたつの関数はちょっと遊び。

いくらでも複雑にできるが、自分で作って自分で当たらない。

最後のボスキャラ的な存在です。

 

見栄えのいい関数を作成して選ぶことは、

試行錯誤が必要であり、時間をロスするのであまりお勧めしません。

まずは、私の例のように、600x500のスケールで

どのように関数を調整したら、

そもそも画面に出てくるのか?

ゲームで使えるのか?

見た目も良くなるのか?

これは、サンプルとして学習しておいた方が良いでしょう。

 

2023年夏、Lazarusで作ったオリジナルはこちら。

MoonWolf誕生の書籍でもあります。

 

『きみもPASCALでWindowsゲームを作ってみないか?

LAZARUSを使ったゼロから始めるプログラミング開発』

https://www.amazon.co.jp/dp/B0CD2RZ3DF

 

それでは、皆様、

すばらしき、数学的 関数ライフをお楽しみください。