
Microsoft Researchのブログで
は、 C#およびJavaでプログラミングを教えるためのブラウザーベースの
Code Huntパズルゲーム
の発売を
発表しました 。
プレーヤーには、以前は未知の機能を備えたコードフラグメントが提供されます。 ゲームの目標は、入力と予想される結果に基づいて、出力がこの予想される結果と一致するようにメソッドまたは関数のコードを変更することです。

ゲームの開始時に、プレーヤーはどの言語(JavaまたはC#)コードフラグメントを表示するかを選択します。 将来、ゲーム中にいつでも1つの言語から別の言語に切り替えることができます。 ゲームは、さまざまなプログラミングトピック(ループ、配列、文字列の操作など)に対応するセクターに分割されます。 同様に、各セクターはいくつかのレベルで構成され、複雑度の高い順に配置されています。 レベルの合格は、記述されたコードの「優雅さ」に応じて、1、2、または3つの「ブリック」によって推定されます。 コードが短いほど、エレガントであると見なされます。 たとえば、文字列内の文字
「a」の数を数えるタスクでは、コード
public class Program { public static int Puzzle(String s) { int result = 0; for (char c : s) { if (c == 'a') ++result; } return result; } }
エレガンススケールでは1つのブロックで評価されますが、同じ機能を備えているが、正規表現を使用して記述されたコードは既に3つのブロックです。
public class Program { public static int Puzzle(String s) { return s.replaceAll("[^a]", "").length(); } }
もちろん、このゲームはプログラミングインストラクターよりもパズルまたはパズルのカテゴリに適していますが、脳のトレーニングとしては非常に中毒性があります。