<diagram program="umletino" version="14.3.0"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>390</x><y>118</y><w>180</w><h>240</h></coordinates><panel_attributes>Game -- __init__(who_am_i) start() act_on_message_received() send_xy(x, y) -- sender ball</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>450</x><y>8</y><w>70</w><h>30</h></coordinates><panel_attributes>main </panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>810</x><y>128</y><w>110</w><h>140</h></coordinates><panel_attributes>Ball -- move_to(x, y) -- diameter id</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>580</x><y>438</y><w>250</w><h>160</h></coordinates><panel_attributes>Canvas (a tkinter class) -- create_oval(x1, y1, x2, y2, fill=color) : id coords(x1, y1, x2, y2) -- width height</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>470</x><y>29</y><w>80</w><h>110</h></coordinates><panel_attributes>lt=<- m2=constructs m1=calls start</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>560</x><y>139</y><w>270</w><h>50</h></coordinates><panel_attributes>lt=<- m1=1..* m2=1 constructs</panel_attributes><additional_attributes>250;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>290</x><y>129</y><w>120</w><h>50</h></coordinates><panel_attributes>lt=<- m1=1 m2=1 constructs</panel_attributes><additional_attributes>10;20;100;20</additional_attributes></element><element><id>Relation</id><coordinates><x>210</x><y>309</y><w>390</w><h>180</h></coordinates><panel_attributes>lt=<- constructs m1=1 m2=1</panel_attributes><additional_attributes>370;160;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>820</x><y>259</y><w>80</w><h>200</h></coordinates><panel_attributes>lt=<- m1=1 m2=1 m1pos=5,0 m2pos=15,0 </panel_attributes><additional_attributes>10;180;40;10</additional_attributes></element><element><id>UMLNote</id><coordinates><x>330</x><y>489</y><w>250</w><h>100</h></coordinates><panel_attributes>Note.. bg=green create_oval puts the Ball on the Canvas coords(x1, y1, x2, y2): moves the Ball</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>150</x><y>38</y><w>150</w><h>280</h></coordinates><panel_attributes>GUI -- make_canvas() : Canvas make_chooser() start send_xy -- root frame canvas entry_for_x entry_for_y send_button </panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>10</x><y>49</y><w>140</w><h>350</h></coordinates><panel_attributes>Note.. bg=green make_canvas: makes a Canvas that will have a filled circle on it. make_chooser: makes two Entry boxes and a Button by which the user can send x and y coordinates to the other computer running this same program. When either computer receives a message with an x and y, it moves its filled circle to that x and y.</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>290</x><y>219</y><w>120</w><h>80</h></coordinates><panel_attributes>lt=<- m1=1 m2=1 send_xy calls send_xy</panel_attributes><additional_attributes>100;20;10;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>600</x><y>10</y><w>270</w><h>100</h></coordinates><panel_attributes>Receiver -- Runs in the background. When. it receives a message, it calls the act_on_message method of the Game object.</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>560</x><y>80</y><w>60</w><h>60</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>10;40;40;10</additional_attributes></element><element><id>UMLNote</id><coordinates><x>570</x><y>259</y><w>210</w><h>150</h></coordinates><panel_attributes>Note.. bg=green send_xy. uses the sender to send an x and y to the other computer. act_on_message_received is called when a message is received. It then tells the Ball to move to the x and y in the received message.</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>560</x><y>179</y><w>270</w><h>80</h></coordinates><panel_attributes>lt=<- m1=1 m2=1 act_on_message_received calls move_to(x, y)</panel_attributes><additional_attributes>250;20;10;20</additional_attributes></element></diagram>