2008-06-01から1ヶ月間の記事一覧
整数 6 を因数分解すると、2 と 3 の積になります。すると、2人の対戦では、それぞれに3つのコマを置くのが適当と考えられます。そこで、6つのコマを配置するなら、ゲーム盤の「対称性を損なわない」という結論に達しました。 盤面にコマを配置するときに…
各六角形を蜂の巣状に配置するには、これらをひとつ置きに配置するだけです。 六角形を配置するときに、わずかな隙間を設けました。これは、同じ色のコマが密着して隣接すると、見た目が窮屈になるのを避けるためです。すると、全体的なコマの配置に均衡が取…
オリジナルのゲーム盤の配置では、4つのコマを配置した状態から、ゲームを開始します。しかし、正六角形を基調とする盤面では、対称性が失われ、美観を損ねると考えました。新しいゲームを考案するときに、これが最大の難関でした。そして、試行錯誤の末に…
最初にオセロゲーム(trinity)を作成したのが1988年ですから、今年でちょうど20年目になります。ここでは、Swing アプリケーションとして作成した事例を紹介します。 切っ掛けは、幼い頃に遊んだ「ダイヤモンドゲーム」でした。オセロゲームは2人が対峙す…
《Previous|1/5|Next》 Shall_we_Agile = Java.use(better, Python) # 《記事一覧》 要求仕様の変更:hexagon 《著》伊藤うさぎ、森こねこ《監修》小泉ひよ子とタマゴ倶楽部更新♪2008/11/21
複数のシーケンスが指定されると、その長さが違うことがあります。短いために、対応する要素がないときには、そこに None があるものと見なします。 while (true) { bool done = true; for (int i = 0; i if (enums[i].MoveNext()) { args[i] = enums[i].Cur…
《Previous|5/5|Next》 Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 無限ループから抜け出す鍵は for ブロックの後には、次のコードの断片があります。 while (true) { bool done = true; for (...) { ... done = false; …
具体的なテストケースで説明すると、より理解が深まります。>>> map(lambda a,b,c: a+b+c, "AB", "12", "xy") ['A1x', 'B2y']lambda 関数には、シーケンスと同数の引数 a,b,c が必要です。各シーケンスの要素(文字)を順に参照して、それらを連結した文字列…
《Previous|4/5|Next》 Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 引数が3つ以上の場合:複数のシーケンス 複数のシーケンスを指定した場合を考察します。else ブロックの直後には、次のコードの断片があります。 IEnu…
条件式 param.Length == 2 が成立する、シーケンスを1つだけ指定した場合を考察します。 object func = param[0]; if (param.Length == 2) { IEnumerator i = Ops.GetEnumerator(param[1]); while (i.MoveNext()) { if (func == null) ret.AddNoLock(i.Curr…
《Previous|3/5|Next》 Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 まず全体を俯瞰してから if 文に続いて、次のコードの断片があります。 List ret = new List();変数 ret は、メソッドのリターン値を扱うために、空リ…
Map のヘッダーに続いて、次のような記述があります。 public static List Map(params object[] param) { if (param == null || param.Length throw Ops.TypeError(...); }params と宣言してあるのは、0 個以上の引数 param に対処したいからです。すると、i…
静的メソッド Map が、組み込み関数 map に相当します。 # IronPython-1.1.2/Src/IronPython/Modules/Builtin.cs [PythonType("__builtin__")] public static partial class Builtin { ... [PythonName("map")] public static List Map(params object[] para…
《Previous|2/5|Next》 Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 ソースコードを散策する map の利用法を簡単に紹介したところで、ソースコードを散策する準備を整えます。IronPython をダウンロードしたら、フォルダ…
次に、組み込み関数 map のヘルプ情報を確認します。>>> help(map) Help on built-in function map in module __builtin__:map(...) map(function, sequence[, sequence, ...]) -> list Return a list of the results of applying the function to the items…
第2引数 sequence に、シーケンスとして文字列を与えると、第1引数 function を各要素(文字)に適用します。>>> map(ord, "ABC") [65, 66, 67]組み込み関数 ord を使うと、文字列を構成する各要素(文字)の ASCII コード値が得られます。また、組み込み…
組み込み関数 map の典型的な利用法は、関数を任意の要素に適用することです。>>> map(lambda e: e*2, range(10)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]ここでは、各要素を2倍した値を列挙したリストが得られます。 第1引数 function には、任意の(第2引…
Python IDLE を起動して、次のように入力すると、Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) ... >>> type(map) map が「組み込み関数」だと分かります。
→ collect: Smalltalk use: better《25》これは要るけどこのほうがいいかな
《Previous|1/5|Next》 Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 組み込み関数 map:IronPython 篇 《著》本間りす《監修》小泉ひよ子とタマゴ倶楽部更新♪08/09/10 IronPython のソースコードを読みながら、Python の…
7.5.11 The typeof operatortypeof-expression: typeof ( type ) typeof ( void ) 2008-00-00 ソースコードの歩き方《IronPython》set.__str__ 0/0《in draft》2008年11月19日(水)
[ComVisibleAttribute(false)] public class Dictionary : IDictionary, ICollection>, IEnumerable>, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallbackpublic Dictionary( IEqualityComparer comparer ) public bool Conta…
8.8.4 The foreach statementforeach-statement: foreach ( type identifier in expression ) embedded-statement 2008-08-22 ソースコードの歩き方《IronPython》dict.keys 2008-09-23 ソースコードの歩き方《IronPython》dict.__str__ 3/3
[SerializableAttribute] public struct KeyValuePairpublic TKey Key { get; } public TValue Value { get; } 2008-09-23: ソースコードの歩き方《IronPython》dict.__str__ 3/3
[ComVisibleAttribute(true)] public interface IDictionary : ICollection, IEnumerableIDictionaryEnumerator GetEnumerator()
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class StringBuilder : ISerializablepublic StringBuilder() public StringBuilder Append( Object value ) 2008-09-22: ソースコードの歩き方《IronPython》dict.__str__ 2/3 2008-00-…
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDual)] public class Objectpublic Type GetType()
[ComVisibleAttribute(true)] [GuidAttribute("496B0ABF-CDEE-11d3-88E8-00902754C43A")] public interface IEnumeratorbool MoveNext() Object Current { get; } 2008-05-20 ソースコードの歩き方《IronPython》reduce 2/5 2008-05-21 ソースコードの歩き方…
[ComVisibleAttribute(true)] public interface IDictionaryEnumerator : IEnumeratorObject Current { get; } Object Key { get; } bool MoveNext() Object Value { get; } 2008-09-26 ソースコードの歩き方《IronPython》dict.update 3/3
public interface ICollection : IEnumerable, IEnumerableIEnumerator GetEnumerator() IEnumerator GetEnumerator() 2008-08-20 ソースコードの歩き方《IronPython》dict.keys