上下左右をループで得るコード

今日見たコードで凄いのがあった。

#include <iostream>
using std::cout; using std::endl;

int main () {
    for (int x = -1, y = 0, i = 0; i < 4; x += y, y = x - y, x = y - x, ++i) {
        cout << "x " << x << " y " << y << endl;
    }
    return 0;
}
$ main
x -1 y 0
x 0 y -1
x 1 y 0
x 0 y 1

forループ一発で上下左右の場所を得れる。こういうコードを考え付く人って凄いよね。

でも最初パッと見たときに何をやってるコードなのかさっぱりわからなかったのであんまりよろしくない気もするけど一度覚えてしまえばどうということな無いので有りといえば有りなのかもしれない。