0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#5 Ruby始めました 「たのしいRuby 第6版」第2部基礎を学ぶ 五章 条件判断 ハノイ作成

Last updated at Posted at 2020-12-16

本日から条件判断=プログラミングの要域に入ります。
一通り、教本通りきましたので、若干独自要素を加えて、プログラミング練習にハノイを作ってみましょうw
アルゴリズムとは条件判断の教科書みたいなものです。あのアルゴリズムアプリ通りに条件判断を作っていきます。

オブジェクトを条件判断のみでプリントするという流れで一つのプログラムを作ってみます。
ごくごく僅かな命令文だけで構成したシンプルな構成でいきます。

手順は七段階
https://daeudaeu.com/hanoi/
http://www13.plala.or.jp/kymats/study/C++/Hanoi/Hanoi.html

###再帰処理の学習

答えの順番が分かっているので、ただのオブジェクト移動だけで良いのですがw
再帰処理で、条件判断を入れてダラダラ書かず、戻ってまた処理させるみたいなループ的な感じにしたいと思います。

頭##
白###
汁####

で行きたいと思いますw

まずはイメージを大切にするためにも、まずは日本語で組み立てます。

一気に思い付き、思い込みで書いても無駄なだけ、コンピューターは動きませんw

動作を一つ一つ確認しながら、部品を動作させて構築していくのが良いと思います。
歯車を一個一個作って、機械を動かす方法と同じです。絵に描いた餅では動きませんw
部品を作って動かして、拡張して、動かしての繰り返しで構築して行きます。

料理、機械と全く同じです。
材料と仕込み・部品動作チェック、調理・順番構築、拡張構築と順番に確実に動作させて行くこと重要です。

##・使うオブジェクト:材料(オブジェクト、条件判断ループなど)

1=頭##
2=白###
3=汁####

A=なべ
B=調理
C=丼

if
else
while

0 = [_]
1 = ["頭##"]
2 = ["白###"]
3 = ["汁####"]

A=["なべ"]
B=["調理"]
C=["丼"]

hanoi = ["_","頭##", "白###", "汁####"]

p hanoi [0]
p hanoi [1]
p hanoi [2]
p hanoi [3]

イメージはこんな感じの材料が完成しました。

##仕込み・ステージと部品動作確認チェック

次はステージを用意して上の材料を移動動作させる部品を作ります。

##調理・設計、組み立て拡張

・順番
Basicと同じなので上から順番に組んでいくだけです。

#ハノイの塔
#条件判断プログラム練習




#コメント
アルゴリズムです。
ここが肝の場所ですからじっくりと学んでいきたいと思いますが、ここだけをちゃんとやると多分一生遊べる場所ですが、まあサラッとw

アルゴリズムは昔の本では小難しいことばっかり書いてあって、さっぱり解らなかったですがw今は本当に素晴らしくわかりやすものがたくさんあります。
コンピューターとアルゴリズム書籍で一番最初に習うのがハノイの塔ですが、ハノイを応用したプログラムの使い方、プログラムの書き方は書いてませんw昔のアルゴリズムとはそういうものでしたwなのでさっぱり分かりませんでしたwどう使うの?みたいなw

###ハノイの塔(パズル)
ハノイはアルゴリズム学習で最初に学びますが、それは同時にプログラミング学習の基礎学習になります。基礎練習になりますので、ハノイを学習がてら作ってみましょうというのが答えですねw

プログラム教育のツールとして簡単なゲームを作るのがハノイの塔の狙いで、別にこれを使って凄いことが出来るみたいなものでは無いのでしょうねw

###アルゴリズムアプリ

アルゴリズム図鑑 370円
https://apps.apple.com/jp/app/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%9B%B3%E9%91%91/id1047532631

これを見ているだけで楽しいwアルゴリズムの本なんかより全然理解度がありますw
FortranやっていたNECに行っていたおじさんが言ってましたが、凄腕はアルゴリズムを熟知しているので、処理が速いとのことでした。
プログラマーの腕はやっぱりアルゴリズムだそうです。まあそうですよね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?