ANDをORとNOTで作る

今日はNOT回路とOR回路が作れるようになったので、AND回路をORとNOTの組み合わせで考えてみた。
ド・モルガンの法則から!(a+b)=(!a)・(!b)なので!(!a+!b)=a・bとなり、ANDがORとNOTで作れた。
画像のレバーで入力の0/1を切り替えられて出力がドアにつながっている。両方のレバーが1でないとドアは開かない。
面白いよ、これ。

 

ジャジャガッチ | ゲーム | 21:40 | comments(0) | trackbacks(0) |

レッドストーン回路の勉強2[マインクラフト]

今日はAND回路を作ってみよう。

ブール代数の法則使って作ってみよう。

!(a+b) = (!a)・(!b)ということは!(!a+!b) = a・b

だ。ほれ、NOTとORでANDが作れた。

ほれ出来た。ドアは出力の位置がわかりやすいようにあるだけな。

ジャジャガッチ | ゲーム | 23:08 | comments(0) | trackbacks(0) |

レッドストーン回路の勉強[マインクラフト]

レッドストーン回路を作ってみたいと思って勉強中。

まずはもっとも基本の回路。

レバーとレッドストーンの組み合わせ。

レバーを動かすと信号が流れる。

回路とは言っても電子回路というよりは論理回路がそのまま具現化した感じか。

輪になっている必要はない。

レバーとかスイッチみたいなものが入力の役割を果たすようだ。

 

こういうのもありらしい。こっちの方が基本的か。

トーチは信号1固定のようだ。

 

次はNOT回路。トーチをブロックに刺しとくとNOT回路として働くらしい。ちなみにトーチの先にワイヤつなげないとだめね。

 

次はOR回路。

0と1が合流するときは1が優先されるらしい。

 

ジャジャガッチ | ゲーム | 22:53 | comments(0) | trackbacks(0) |

マインクラフト 次の課題

マインクラフトで実験的にアインシュタインの地上絵を描くことが出来たわけだが、なかなか面白かった。
プログラミングが上達しない人が多い大きな理由は、作りたいものがないということだと思う。そういう意味ではマインクラフトを題材にして勉強するというのは効果的だと思う。

次にやりたいのは、より大きなプロジェクトを実行するため、複数のロボットの制御や、補給だ。
あとは論理回路な。論理回路は詳しくないので参考書で復習中。

ジャジャガッチ | ゲーム | 21:36 | comments(0) | trackbacks(0) |

ComputerCraftでアインシュタインの地上絵

またしょうもないことを。
ちょっと前に作ったアシンシュタインの数値データは実はこのために抽出した。
本当は画素値に応じてブロックを積もうと思ったんだけど、ブロックの数が半端なくなるのでやめた。
取り出した数値データを二値化(簡単に言うと白黒化)して、地面を掘ることにした。
あと、画像が大きいと大変なので64x64に縮小しました。

fp = fs.open("/pic/einstein.txt" , "r")

x0 = 0
y0 = 0
while true do
str = fp.readLine()
if str==nil then break end
x, y , val = string.match(str, "(.-) (.-) (.+)")

dx = x-x0
dy = y-y0
if dx>0 then turtle.turnRight()
elseif dx<0 then turtle.turnLeft() end

for i=1,math.abs(dx) do
while true do
r,e = turtle.forward()
if r==true then break end
end
end
if dx>0 then turtle.turnLeft()
elseif dx<0 then turtle.turnRight() end

for j=1,math.abs(dy) do
while true do
if dy>0 then r,e = turtle.forward()
else r,e = turtle.back
end
if r==true then break end
end
end

print(math.abs(dx))
if val~="0" then turtle.digDown() end
x0 = x
y0 = y

end

ジャジャガッチ | ゲーム | 21:34 | comments(0) | trackbacks(0) |

Luaスクリプトでテキストを読む

マインクラフト、というかLuaスクリプト。
空白区切りのテキストから数値を取り出すことに成功・・・!1列目だけ表示してみた。
こういう→ s1,s2,s3 = string.match(str, "(.-) (.-) (.-)") 感じでパターンにマッチしたところを取り出してくれる。何これ超便利。

楽しすぎて昨日(というか今日)は朝4時就寝。
今日もテンション上がりすぎてて寝れるのか・・・???

fp = fs.open("/tmp/test.txt","r")

while true do
str = fp.readLine()
if str==nil then break end
s1,s2,s3 = string.match(str, "(.-) (.-) (.-)")
print(s1)
end

ジャジャガッチ | コンピュータ | 21:34 | comments(0) | trackbacks(0) |

ComputerCraft catコマンド

マインクラフト。またしょうもないことを。
Linuxのcatコマンド(テキストの中身を表示する)みたいなのを作ってみた。
自作catコマンドでcatコマンドのソースを表示している様子。
コマンドライン引数の使い方がわかった。

ジャジャガッチ | コンピュータ | 21:32 | comments(0) | trackbacks(0) |

bmp画像をテキストに変換

またしょうもないことしようと思ってbmp画像をテキスト形式に変換するプログラムを作った。
みんな大好きアインシュタインの画像を探してきてテキストに変換してグラフソフトで3次元プロットしてみた。

ジャジャガッチ | C/C++ | 21:31 | comments(0) | trackbacks(0) |

ComputerCraft 掘削プログラム

マインクラフトプログラミング。
前方5マス高さ5マスについて掘削するプログラムを書いてみた。

for i=1,5 do
if turtle.detect()==true then
turtle.dig()
end

turtle.forward()

for j=1,5 do
if turtle.detectUp()==true then
turtle.digUp()
end

turtle.up()
end

for j=1,5 do
turtle.down()
end

end

ジャジャガッチ | コンピュータ | 21:30 | comments(0) | trackbacks(0) |

マインクラフト面白い

マインクラフト。
恐るべし。最初は何が面白いかよくわからん、と思ってたはずなのに穴掘ってたら1時過ぎてた、花植えてたら1時過ぎてた、みたいな生活に。

ComputerCraft。
簡単に外部エディタ使えた。
ゲーム中で作ったファイル名をwindows上で検索したらすぐにどこのディレクトリに保存すればいいかわかったわ。
これで好きなエディタ使ってコーディング出来る!
ちなみにComputerCraftで使う言語はLuaという実在するスクリプト言語。ゲーム遊びながらスクリプト言語をひとつ覚えられるなんてなんてお得なんだ

ジャジャガッチ | コンピュータ | 21:29 | comments(0) | trackbacks(0) |
1/2PAGES | >> |

10
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH