(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 6.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 24375, 587] NotebookOptionsPosition[ 23393, 551] NotebookOutlinePosition[ 23734, 566] CellTagsIndexPosition[ 23691, 563] WindowFrame->Normal ContainsDynamic->False*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Project - Go Grid", "Section", CellChangeTimes->{ 3.4612562964071407`*^9, 3.461682317732991*^9, {3.461691394884993*^9, 3.461691395224435*^9}}], Cell["\<\ Go is an ancient Chinese game of strategy. The game is played by two players \ who alternately place black and white stones (playing pieces, now usually \ made of glass or plastic) on the vacant intersections of a grid of \ 19\[Times]19 lines. The object of the game is to control a larger portion of \ the board than the opponent. A stone or a group of stones is captured and \ removed if it has no empty adjacent intersections, the result of being \ completely surrounded by stones of the opposing color.\ \>", "Text", CellChangeTimes->{{3.461691411949356*^9, 3.461691434221492*^9}, { 3.461691487056188*^9, 3.4616915601831827`*^9}, {3.461695149297104*^9, 3.46169516222749*^9}}], Cell[TextData[{ "The goal of this project is to use ", StyleBox["Mathematica", FontSlant->"Italic"], " to make Go diagrams - that is, a grid of lines on which are placed white \ and black stones. Here is an example on a 10 by 10 grid:" }], "Text", CellChangeTimes->{{3.46169520135705*^9, 3.461695342666959*^9}, 3.4616953767591267`*^9, {3.461695416702447*^9, 3.461695447313892*^9}, { 3.461695479384338*^9, 3.4616955300733624`*^9}}], Cell[BoxData[ GraphicsBox[ {EdgeForm[{GrayLevel[0], Thickness[ Large]}], {LineBox[{{1, 1}, {1, 10}}], LineBox[{{2, 1}, {2, 10}}], LineBox[{{3, 1}, {3, 10}}], LineBox[{{4, 1}, {4, 10}}], LineBox[{{5, 1}, {5, 10}}], LineBox[{{6, 1}, {6, 10}}], LineBox[{{7, 1}, {7, 10}}], LineBox[{{8, 1}, {8, 10}}], LineBox[{{9, 1}, {9, 10}}], LineBox[{{10, 1}, {10, 10}}]}, { LineBox[{{1, 1}, {10, 1}}], LineBox[{{1, 2}, {10, 2}}], LineBox[{{1, 3}, {10, 3}}], LineBox[{{1, 4}, {10, 4}}], LineBox[{{1, 5}, {10, 5}}], LineBox[{{1, 6}, {10, 6}}], LineBox[{{1, 7}, {10, 7}}], LineBox[{{1, 8}, {10, 8}}], LineBox[{{1, 9}, {10, 9}}], LineBox[{{1, 10}, {10, 10}}]}, { {GrayLevel[0], DiskBox[{1, 10}, 0.4]}, {GrayLevel[1], DiskBox[{3, 10}, 0.4]}, {GrayLevel[1], DiskBox[{4, 10}, 0.4]}, {GrayLevel[1], DiskBox[{5, 10}, 0.4]}, {GrayLevel[1], DiskBox[{6, 10}, 0.4]}, {GrayLevel[0], DiskBox[{8, 10}, 0.4]}, {GrayLevel[1], DiskBox[{9, 10}, 0.4]}, {GrayLevel[1], DiskBox[{2, 9}, 0.4]}, {GrayLevel[1], DiskBox[{3, 9}, 0.4]}, {GrayLevel[0], DiskBox[{6, 9}, 0.4]}, {GrayLevel[0], DiskBox[{8, 9}, 0.4]}, {GrayLevel[0], DiskBox[{9, 9}, 0.4]}, {GrayLevel[1], DiskBox[{4, 8}, 0.4]}, {GrayLevel[0], DiskBox[{6, 8}, 0.4]}, {GrayLevel[0], DiskBox[{7, 8}, 0.4]}, {GrayLevel[0], DiskBox[{8, 8}, 0.4]}, {GrayLevel[1], DiskBox[{10, 8}, 0.4]}, {GrayLevel[1], DiskBox[{4, 7}, 0.4]}, {GrayLevel[1], DiskBox[{5, 7}, 0.4]}, {GrayLevel[0], DiskBox[{6, 7}, 0.4]}, {GrayLevel[0], DiskBox[{7, 7}, 0.4]}, {GrayLevel[0], DiskBox[{8, 7}, 0.4]}, {GrayLevel[0], DiskBox[{2, 6}, 0.4]}, {GrayLevel[1], DiskBox[{3, 6}, 0.4]}, {GrayLevel[0], DiskBox[{6, 6}, 0.4]}, {GrayLevel[0], DiskBox[{7, 6}, 0.4]}, {GrayLevel[0], DiskBox[{8, 6}, 0.4]}, {GrayLevel[0], DiskBox[{9, 6}, 0.4]}, {GrayLevel[0], DiskBox[{10, 6}, 0.4]}, {GrayLevel[1], DiskBox[{1, 5}, 0.4]}, {GrayLevel[0], DiskBox[{2, 5}, 0.4]}, {GrayLevel[0], DiskBox[{4, 5}, 0.4]}, {GrayLevel[0], DiskBox[{5, 5}, 0.4]}, {GrayLevel[0], DiskBox[{6, 5}, 0.4]}, {GrayLevel[1], DiskBox[{7, 5}, 0.4]}, {GrayLevel[0], DiskBox[{8, 5}, 0.4]}, {GrayLevel[0], DiskBox[{9, 5}, 0.4]}, {GrayLevel[1], DiskBox[{10, 5}, 0.4]}, {GrayLevel[1], DiskBox[{1, 4}, 0.4]}, {GrayLevel[1], DiskBox[{4, 4}, 0.4]}, {GrayLevel[0], DiskBox[{5, 4}, 0.4]}, {GrayLevel[0], DiskBox[{8, 4}, 0.4]}, {GrayLevel[0], DiskBox[{9, 4}, 0.4]}, {GrayLevel[1], DiskBox[{5, 3}, 0.4]}, {GrayLevel[1], DiskBox[{7, 3}, 0.4]}, {GrayLevel[1], DiskBox[{9, 3}, 0.4]}, {GrayLevel[0], DiskBox[{1, 2}, 0.4]}, {GrayLevel[1], DiskBox[{2, 2}, 0.4]}, {GrayLevel[1], DiskBox[{3, 2}, 0.4]}, {GrayLevel[0], DiskBox[{4, 2}, 0.4]}, {GrayLevel[0], DiskBox[{5, 2}, 0.4]}, {GrayLevel[1], DiskBox[{7, 2}, 0.4]}, {GrayLevel[0], DiskBox[{8, 2}, 0.4]}, {GrayLevel[1], DiskBox[{9, 2}, 0.4]}, {GrayLevel[1], DiskBox[{10, 2}, 0.4]}, {GrayLevel[0], DiskBox[{1, 1}, 0.4]}, {GrayLevel[1], DiskBox[{2, 1}, 0.4]}, {GrayLevel[1], DiskBox[{3, 1}, 0.4]}, {GrayLevel[1], DiskBox[{4, 1}, 0.4]}, {GrayLevel[1], DiskBox[{5, 1}, 0.4]}, {GrayLevel[1], DiskBox[{7, 1}, 0.4]}, {GrayLevel[1], DiskBox[{10, 1}, 0.4]}}}, BaseStyle->Thickness[Large], ImageSize->500, PlotRange->{{0.5, 10.5}, {0.5, 10.5}}]], "Output", CellChangeTimes->{ 3.4616937334724627`*^9, {3.4616937964241257`*^9, 3.46169382390095*^9}, 3.461693878307054*^9, 3.461694479814898*^9, {3.461694517621132*^9, 3.461694525119076*^9}, 3.461694567282132*^9, {3.461694613882203*^9, 3.4616946626351767`*^9}, 3.461694724746719*^9, 3.461694763623664*^9}, ImageCache->GraphicsData["CompressedBitmap", "\<\ eJztXc+PXEWSLtNut9vGNp4ZZrDbUN0Yg0arkbWydmfstrdh2RnUM6DVSIzg wAxY1kozGlkwv7Tallaw2sOqL94T4ggHOHDeP6GvLUsgOHFBSPwBoB0Bp9qX rzJrqx6Z+SIyIjLzlcOS+0fWlz/iy9dV70VGfPHczT//9l9u3/zz727d3Hzm jzdf++3vbv1p82ev/rFpWjkyGh35X/N/c3S0+XkyGi18Mf/+ar6Ef/5++21t 8s0330w++eSTyeHh4eTg4KD9bn5v2kd/Uxnm1wDMfwMwD04p+E77bXXy5Zdf Tt57773JzZs3J48//vjkvvvua1oNkavm57bNvGYwDXZ0MdBvZWVl1q/5ebD9 fpXY778S+52dbscD7beVyQcffDB56aWXJuvr66NTbbcV83Pb9uGHH47GHdyJ Eyea3wxurR1+a2trcuXKlcn169fb7+Z3s4QVO1aDv6fG+iXjWP/JONaZ6baf tkN+9tlnk+eff74FfsfCze+m3SDOt1/XZ7gjR44YVPv9ySefnNy5c2dy9+7d 9g981WLNm4BpM68ZzHwfO/ZoQ8dtx31OaNzXhcY9Nb18TtnL56233mqvLnPh fG/uajPtBvFQ+/VY+/vJkyfb4czrr7322uTTTz89ZV9ufmyb7FAttOlybrC9 f0Hq/e+k3vdPt+ik3aKvvvpq8uKLL7ab85DdIvP7119/3SK+Z0ebw7X/X3jh hcnnn39+1r7c/Ng2uZftEA8OtvczpN7/Rup9YrpFJ+wWffHFF5OdnZ12c87b LTK/m3aDcLdMc7jJ6dOnJ++//769q1o1P7dt5jXbd/TdgfT7aWK/f03stz6l f33uL8TRf2GOfvcX8oAdag43uXDhwuSjjz4a/cC+1vzctrlpmr72Dqv+fk8n 9vtLYr/ji/TP/fmMHp57g7L/7B3L0RnODNe89Z2zzeZd0M3QQM5Wg34ahf4L Cm0pPG4pNB8UjsKxpdB+BLeIU3YUhzN/EM3ObNhms0nub6SBnKkG/RQK/ScU em1K4Zql0NwouTuZzbk7GXcjfL8dxfzuPpOb95aHbbN5m3GfwQ3kVDXoHRT6 Dyj0sUUK7XNES96WpdC0uavwZAfXfDDOHrnch2Tz2uzmMjduB4j7AxBn6Tlm X2qevmb0XLT0mDZHz7ol2bSZW25z9TX3D2PbbG4lTJN5qYGcrAZ9A4V+FYVe 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 NRa9l/w89I0doSe3gApUmCT1bqyGOzvfGiJbUGuRX6iMDzRtOEfKsW+OCPVD E9PyPaWHvQSUJ23Zp/nIlpSUj4NqhkE9UmEPkqyXKkJvSfFDn+807KGl+D9l fawRenPLdUJ1HaG+/7CvXvY8IEJp7iK/UCVSaIrwmNCXkjbcS6mMzDGWvvST TdnT0wh9Y2u5RJFf306GT/op5+qyZ/cR+iQl3qFi19AokXBUh2zkSC99fEUF sJRxRBCF+lKilCKUSZaxgKrTQyPhYiF/ktFxvfTxFU7BUsYRJRnqS4nEjFAm WaoHWo0DGu0bjs6VjQDupY+vOBSWMo5I8FBfSrQ5gDKuEmRYyjjyDUJ9KTkN AMq4ivxiKeNI4Q31paQJRyiTLK0ILcwEzc7ymcad2ZVEH18xTyxlHJl7ob6U 7MBIMWDuIr++9F9IOvG8OdgU3lDf1DThnmLA7hGXqxiwmWf0cwtu7JuBIxWB uSv9+lKCISnG85Ri03pDfVNTh3sqAuubA+jNQT+O2D6OuCv9Ym+AONJ6Q30p qcN6m42eQx/m0HOo+0DKfaAOq0TK1EWaSJ865dFOeT0GIh0Dub81iUq/Y898 S3YIqUfgpCPw3JV+sZSmp/nKphJr6FDO0CENdhMNdtNQTdFQTQ1OTu97njAH IFS/tkq/2FB9jtRfifRiTVRJGitTooqmUt1LiXM1LVPNqWVJao6aM4g2a873 2291y1NISlgQP+emD+ZlRUpS7+By98txR5eyBruVzm1Vuhrv+B4YizPVmXsd 9nI4bV+qSYxLyjMxtHHpYmx51mQvpfkjmryCejQfYsnedKFDzpntRrqT3vzC kzRfe8nedEFQzpntRp6wL+WUZk09h8rdjy6NyzOn3SoXkJKzMnRqanzufvTK 3DxzdrZKXowbF28giaaLnFNmssS7MEH5qtW4ZH1JtO/vfQzk4RR5Jku8C2+V L36Ai++SRNOLSlBm6hAvWa4DGovIjeMsd4KZw1LrcinkS8jgomQl0fTSPJSZ OsRLFj2CRnRz4ziLRmHmsNS69Cr5Qly4XANJNL3AGWWmDvGSpeOgeTHcOM7S e5g5OtRKFjKEZmlx4zgLQWLm6FArWUMcKprAjeOswY6Zw1J71L4kX+oVl80q iaaX0KXM1CFesjgxNPOaG8dZ3BkzR4faw8PDb03FUc0cI9/AjeOsBg+dY06+ wVF7cHAwm+qWnYpLvoEbdxuIcy6hhtIZ7sH+K8qnoGCUJYyKwu7uLruyBDdu A7DmkL1dZQnoHG+++Sb2ffDHlb/nXWV+f/u7RXr6Ppd+0n6t4dMVh74KtA/3 uWvJc1z3aSpc7eCouhLcuG2gHV0NidB4f79IT98d/NUOrrank22gHdAnkQ49 fc+OVzu42p6Lt4F2QJ+BO/T0+S6u2T/R8h4YHHobaB/ON2PJg/oWtzu42vyI N4B2QH2GP16kp8/Xu21JLu+xxqFvAO3D+bItedCzmBsdXG3nLjtAO6BnLD9Z pKfvbOwfLMnlT/hw6B2gfbizP0se9GR7x44iofYgiX4KaJ/vxDo86vQOARyP 8ZQdpXw0BQ79NNA+XJzFtUXy+lQM/rH9mk/pIXe/p4E8PJA4vqUbGpH3T3ao 2qPoUvv9FMhDaqTd9A4GHMn6s/brEONOab2fAfJDi1C9Pt0MaHz4z+1ow4vm pvX+BZAfWtz39P4LnPfxbPt1ODkTQxv3OeA+SOVz7EwvB5cV1qfW8MsOrhbl i1rH6vIFVcugzDm9z03O2fxVoF9teZap/UL2SeViTu8sv5WBbM68zHGf+e4y cH8NwHQzeSUxXOuZ3maMzNfJX+E/j478H6tHDGs=\ \>"]], Cell[TextData[{ "You need to define a function", StyleBox[" gogrid[M_]", "Input"], " that takes a rectangular matrix ", StyleBox["M", "Input"], " whose entries are all ", StyleBox["0", "Input"], ", ", StyleBox["+1", "Input"], " or ", StyleBox["-1", "Input"], ". The ", StyleBox["1", "Input"], "s correspond to the black stones, the ", StyleBox["-1", "Input"], "s correspond to white stones and the ", StyleBox["0", "Input"], "s correspond to empty intersections. The diagram above was be generated \ from a random matrix: " }], "Text", CellChangeTimes->{{3.461695552258469*^9, 3.4616957737976027`*^9}, { 3.461695818195714*^9, 3.4616958286615343`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"M", "=", RowBox[{"RandomInteger", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"10", ",", "10"}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.461693127228949*^9, 3.4616931434732647`*^9}, { 3.461693312647859*^9, 3.461693312967023*^9}, {3.461694658070138*^9, 3.461694658248538*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "0", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "0", ",", "1", ",", RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "1", ",", "0", ",", "1", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", RowBox[{"-", "1"}], ",", "0", ",", "1", ",", "1", ",", "1", ",", "0", ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "1", ",", "1", ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "1", ",", "1", ",", "1", ",", "1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1", ",", "0", ",", "1", ",", "1", ",", "1", ",", RowBox[{"-", "1"}], ",", "1", ",", "1", ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0", ",", "0", ",", RowBox[{"-", "1"}], ",", "1", ",", "0", ",", "0", ",", "1", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", RowBox[{"-", "1"}], ",", "0", ",", RowBox[{"-", "1"}], ",", "0", ",", RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "1", ",", "1", ",", "0", ",", RowBox[{"-", "1"}], ",", "1", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "0", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", RowBox[{"-", "1"}]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{ 3.461693144937428*^9, 3.461693314182262*^9, 3.461693727527783*^9, 3.461693792509014*^9, 3.461694207406584*^9, 3.461694477339219*^9, 3.461694521810358*^9, {3.461694645003303*^9, 3.461694659348999*^9}}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"M", "//", "TableForm"}]], "Input", CellChangeTimes->{{3.4616946984755173`*^9, 3.4616947057609053`*^9}}], Cell[BoxData[ TagBox[GridBox[{ {"1", "0", RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], "0", "1", RowBox[{"-", "1"}], "0"}, {"0", RowBox[{"-", "1"}], RowBox[{"-", "1"}], "0", "0", "1", "0", "1", "1", "0"}, {"0", "0", "0", RowBox[{"-", "1"}], "0", "1", "1", "1", "0", RowBox[{"-", "1"}]}, {"0", "0", "0", RowBox[{"-", "1"}], RowBox[{"-", "1"}], "1", "1", "1", "0", "0"}, {"0", "1", RowBox[{"-", "1"}], "0", "0", "1", "1", "1", "1", "1"}, { RowBox[{"-", "1"}], "1", "0", "1", "1", "1", RowBox[{"-", "1"}], "1", "1", RowBox[{"-", "1"}]}, { RowBox[{"-", "1"}], "0", "0", RowBox[{"-", "1"}], "1", "0", "0", "1", "1", "0"}, {"0", "0", "0", "0", RowBox[{"-", "1"}], "0", RowBox[{"-", "1"}], "0", RowBox[{"-", "1"}], "0"}, {"1", RowBox[{"-", "1"}], RowBox[{"-", "1"}], "1", "1", "0", RowBox[{"-", "1"}], "1", RowBox[{"-", "1"}], RowBox[{"-", "1"}]}, {"1", RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], "0", RowBox[{"-", "1"}], "0", "0", RowBox[{"-", "1"}]} }, GridBoxAlignment->{ "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], Function[BoxForm`e$, TableForm[BoxForm`e$]]]], "Output", CellChangeTimes->{3.4616947065348253`*^9}] }, Open ]], Cell[BoxData[ RowBox[{"gogrid", "[", "M", "]"}]], "Input", CellChangeTimes->{{3.461693729141848*^9, 3.461693731633254*^9}}], Cell[TextData[{ "The size of the matrix ", StyleBox["M", "Input"], " is not known to the function ", StyleBox["gogrid", "Input"], " in advance. Different size matrices should produce different sized \ diagrams, but the grid spacing is fixed. Here's a 3 by 5 matrix:" }], "Text", CellChangeTimes->{{3.461695850396784*^9, 3.461696027888898*^9}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{"M", "=", RowBox[{"RandomInteger", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "5"}], "}"}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{"M", "//", "TableForm"}], "\[IndentingNewLine]", RowBox[{"gogrid", "[", "M", "]"}]}], "Input", CellChangeTimes->{{3.461694790698691*^9, 3.4616948425228653`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "0", ",", "1"}], "}"}]}], "}"}]], "Output", CellChangeTimes->{{3.461694807663973*^9, 3.461694907939013*^9}}], Cell[BoxData[ TagBox[GridBox[{ {"0", RowBox[{"-", "1"}], RowBox[{"-", "1"}], "1", "0"}, {"0", "0", "1", "1", "0"}, { RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], "0", "1"} }, GridBoxAlignment->{ "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], Function[BoxForm`e$, TableForm[BoxForm`e$]]]], "Output", CellChangeTimes->{{3.461694807663973*^9, 3.461694907956316*^9}}], Cell[BoxData[ GraphicsBox[ {EdgeForm[{GrayLevel[0], Thickness[ Large]}], {LineBox[{{1, 1}, {1, 3}}], LineBox[{{2, 1}, {2, 3}}], LineBox[{{3, 1}, {3, 3}}], LineBox[{{4, 1}, {4, 3}}], LineBox[{{5, 1}, {5, 3}}]}, {LineBox[{{1, 1}, {5, 1}}], LineBox[{{1, 2}, {5, 2}}], LineBox[{{1, 3}, {5, 3}}]}, { {GrayLevel[1], DiskBox[{2, 3}, 0.4]}, {GrayLevel[1], DiskBox[{3, 3}, 0.4]}, {GrayLevel[0], DiskBox[{4, 3}, 0.4]}, {GrayLevel[0], DiskBox[{3, 2}, 0.4]}, {GrayLevel[0], DiskBox[{4, 2}, 0.4]}, {GrayLevel[1], DiskBox[{1, 1}, 0.4]}, {GrayLevel[1], DiskBox[{2, 1}, 0.4]}, {GrayLevel[1], DiskBox[{3, 1}, 0.4]}, {GrayLevel[0], DiskBox[{5, 1}, 0.4]}}}, BaseStyle->Thickness[Large], ImageSize->250, PlotRange->{{0.5, 5.5}, {0.5, 3.5}}]], "Output", CellChangeTimes->{{3.461694807663973*^9, 3.461694908169894*^9}}] }, Open ]] }, Open ]] }, WindowSize->{738, 569}, WindowMargins->{{90, Automatic}, {Automatic, 12}}, FrontEndVersion->"6.0 for Mac OS X PowerPC (32-bit) (April 20, 2007)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[590, 23, 155, 3, 67, "Section"], Cell[748, 28, 696, 11, 71, "Text"], Cell[1447, 41, 443, 9, 41, "Text"], Cell[1893, 52, 13033, 235, 515, 3474, 77, "CachedBoxData", "BoxData", \ "Output"], Cell[14929, 289, 672, 21, 56, "Text"], Cell[CellGroupData[{ Cell[15626, 314, 405, 11, 27, "Input"], Cell[16034, 327, 2360, 63, 88, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[18431, 395, 128, 2, 27, "Input"], Cell[18562, 399, 1741, 56, 173, "Output"] }, Open ]], Cell[20318, 458, 125, 2, 27, "Input"], Cell[20446, 462, 349, 8, 41, "Text"], Cell[CellGroupData[{ Cell[20820, 474, 426, 11, 58, "Input"], Cell[21249, 487, 491, 14, 27, "Output"], Cell[21743, 503, 750, 23, 61, "Output"], Cell[22496, 528, 869, 19, 165, "Output"] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)