aiprogrammer.hashlab.jp
forest.watch.impress.co.jp
やりたい処理を日本語で文章で入力するとコードを生成してくれるというウェブサービス。
C++で「ベクトルAとベクトルBの距離」と入力してみたら、
double distance(vector A, vector B) { return sqrt((A.x - B.x)*(A.x - B.x) + (A.y - B.y)*(A.y - B.y)); }
と出力された。ちゃんとあっている。
とはいえ、やっぱりうまく行かないことのほうが多い。たとえばベクトルと入力したときに、動的配列のstd::vectorと判定されることもある。
あと指示があいまいだとコードでなくただ英訳された文章が出てくることもある。
適切にうまく文章を入力する必要があるけど、うまく文章で表現できるくらい分かっているのなら、コードも書けるだろうという感じ。
あれってどうかくんだっけと、ど忘れした時に確認するのには役に立ちそう。
こんなの入力したらどうなるかなと色々試すのが面白い。
「ブレゼンハムのアルゴリズムで線を描画する」と入力したら、このようなコードが出てきた。
void drawLine(int x1, int y1, int x2, int y2) { int dx, dy, p, x, y; dx=x2-x1; dy=y2-y1; x=x1; y=y1; p=2*dy-dx; while(x<=x2) { if(p>=0) { putpixel(x,y,7); y=y+1; p=p+2*dy-2*dx; } else { putpixel(x,y,7); p=p+2*dy; } x=x+1; } }
putpixel()の第3引数の7って何だろう。学習データで使った環境によるものだろう。Z座標か、それともカラーかな。
こうやって試すのは面白い。でも実用としてはまだまだかな。
とか言っているうちに、どんどん学習して使えるものになっていくのだろうか。