ルービックキューブを購入して攻略サイトを見て解く。
ステータス管理、状況判断して実行
繰り返し、バグ取り(手順のミス時)
プログラムそのものです。
授業で3時間続けたら基礎バッチリ。
ここで学びました↓
ルービックキューブ
簡単6面完成攻略法!!
------以下駄文------
プログラムを学ぶ際、コンピュータを持っていない人はどうしたらいいのだろうと考えていました。
一番安くそろえる . . . 本文を読む
3目並べなら機械学習できそう。
やってみるとできました。
機械学習
データを分析して
判別に優位な特徴を見つけだす。
本来膨大なデータが必要。
ざっくりこんな認識しかありません。
教師としてはランダムプレイヤーと
詰めの一手だけ打つランダマー
ランダマーにも負けなくなります。
機械学習したもの同士で戦わせると
ほぼ引き分けます。
引分のデータは計算にいれてませんが、
引き分けます。
最 . . . 本文を読む
解法もプログラムしてみました。
こちらの攻略法の一部を利用しています。
2×2のルービックキューブ攻略
攻略法の場合分けは全ては実装せず、一部のパターン外の時、再度作り直ししています。
<Cubeクラス>
rangemove 部分回転させる
pmatch (x,y,表面の記号)のリストで判定
seq キューブを動かす解法の手順を実行
storeとback
手順を実行後、パターン外のやり直し . . . 本文を読む
2x2x2のルービックキューブを少し動かす。これがもともとの問題。
最初何をどうしていいものかサッパリ。悩んでいるとぼんやりみえてくるもので、
展開図を持たせて(右、左、前、後、上、下)の回転、時計まわりを実装。
移動前と移動後の点の位置、間違えやすいので展開図から取得させる。問題はクリア
次にせっかく作ったので解きたくなる。
ランダム移動を実装して、何面揃っているか計算させる。6面揃 . . . 本文を読む
以前 N進数の計算をするという問題で鬼苦労
関数型プログラムをしている今なら!
目標
任意の進数で足し算、引き算
制作過程
0〜Zまでの文字列作成
36進数までのサポートが確定
plusOneを作成
必要 文字列の任意の位置の変更関数
追加関数テスト
plusOneをテスト
minusOneを作成とテスト
plusを作成、plusOneを足す分ループ
必要 N進数から10進数への変換関 . . . 本文を読む
Python3で約数、最大公約数、最小公倍数を求めるプログラム。
再帰を使って自前で計算してみました。
ユークリッドの互除法、使ってません。
(Python2 整数の最大値でエラーになるかも)
目標
関数型を意識してループと代入を減らす。
約数をリストにする。
追加項目
最大公約数、最小公倍数
リストの全数字の掛け算
再帰の初期値も関数側で指定。
時間測定。
はまった点
再帰の回数が . . . 本文を読む
Pythonでは関数もオブジェクトと知り、目から鱗が落ちる気がしました。
i=inputなどとして関数名の省略は、
使っていましたが、
実は関数を変数に代入していたのです。
そこで関数に関数を渡すという
プログラムを作ってみました。
test関数に2つのパラメータを渡します。
aは関数、bは変数
test内でa関数にbを渡しています。
配列に関数を入れて順次test呼んでます。
受け渡 . . . 本文を読む
Ruby25才おめでとう!ということでCLASH OF CODEにRubyで挑戦してみます。10連戦して作ってみたコードの紹介です。
CLASH OF CODEは問題を与えられ最大8人で、
正確性と、解答速度または短さで競います。
ライバルは世界の誰かです。(フランス人多し)
Q1 Nが与えられた時、1からNまでの数列のなかで連続した数値のXORが0になる個数を答えよ
この難問??XOR . . . 本文を読む
Ruby25才おめでとう!ということでCLASH OF CODEにRubyで挑戦してみます。いきなりは無理ゲーすぎるので少し再学習。
簡単なサンプル作成から...
UbuntuにRubyが入ってない。そ、そこから。
環境Ubuntu16.04
端末から
$ sudo apt-get install ruby
$ ruby --version
ruby 2.3.1p112 (2016-04 . . . 本文を読む
CLASH OF CODEで10連戦して作ってみたコードの紹介です。
Q1 文字列に入っているアルファベットをアルファベット順にその数だけ表示します。
isalpha()のほうが簡単です。
Q2 3つの数字と答えだけが与えられて、問題を考えてプログラムを作ります。
Q3 ろうそくc本もってます。ろうそくのもえかすe本分で1本新しいろうそくが作れます。全部で何本分燃やせますか?
無限なら . . . 本文を読む
結果がこれです。
2分が長く感じる動画ができました。
構想です。
<ストーリー>
魔王は廃墟とかした城にたたずんでいた。
「人間め!なぜここまで」
仲間は勇者と名乗るパーティー達の前に...
魔王はついに立ち上がった。
怒りの矛先は...人類
最初の街で逃げる人々を前に魔王は困惑する。
「こんなに弱いのか人間は?」
彼の前に立ちはだかった人とはまるで違う。
次に人類の城を目指す。
数 . . . 本文を読む
プログラムって普段の生活の役に立つの?
うーんとしか言いようがありません。
少なくとも「誰か」のプログラムがないと昭和中期の生活に戻ります。
「誰か」を大学から育てるのは遅いからです。
中学生でも少し遅い気がします。
画像を縮小する目的で作成してみました。
11行のなのですが、基礎がギュッと詰まっていたので公開してみます。
pythonの画像縮小プログラムのリスト
<説明 超訳 . . . 本文を読む
SCRATCHではスプライトがクラスものです。
その中に変数、関数が存在しています。
同時に動くものをスレッドなどと呼びます。
SCRATCHはスレッドが簡単にできます。
将来的には開発の中核になりそうな気も...
それらを使ってシューティングゲーム。
作った流れとして
1 インベーダタイルの画像
2 自機、敵、ミサイルを動かす
3 爆発用のアニメーション
4 自機を移動とミサイル発射の連 . . . 本文を読む
スタンプ機能でインベーダータイル。
8x8のスプライトを作成します。
スタンプしたときの色と微妙に違います。仕様かもしれませんがバグっぽい。
(プログラムを修正できないとき、それを仕様にします。完成しないのでやむなくです。)
最初一気に作るのは大変そうだったのと
制作過程も参考になるかなと、残してみます。
まず最初はすべて埋め尽くしてみます。
次にランダムで
ランダムですが中央 . . . 本文を読む
一画面で表現してみると、こんな感じです。
小さいのでプログラムの所を大きくします。
正確に理解するのは難しくても、5回ぐらい音読すればわかると思います。
スマホ用です
ネコを動かす
図形を描く
演奏する
. . . 本文を読む