CS 200: HW3

Load the compiled staff solution.

In [1]:
from hw3a import *

Agents

Make some agents.

In [2]:
james = agent('James Bond')
In [3]:
joe = agent('Joe Biden')
In [4]:
james
Out[4]:
agent('James Bond')
In [5]:
joe
Out[5]:
agent('Joe Biden')
In [6]:
str(james)
Out[6]:
'<agent. name: James Bond (3)>'
In [7]:
str(joe)
Out[7]:
'<agent. name: Joe Biden (4)>'
In [7]:
james.add_friend(joe)
In [8]:
james2 = james.copy()
In [9]:
james2.pp()
Out[9]:
"Name:\tJames Bond\nFriends:\t[agent('Joe Biden')]"
In [10]:
print(james2.pp())
Name:	James Bond
Friends:	[agent('Joe Biden')]
In [11]:
print(joe.pp())
Name:	Joe Biden
Friends:	[agent('James Bond')]
In [12]:
james == james2
Out[12]:
True
In [13]:
james == joe
Out[13]:
False

Stances

Create some stances.

In [16]:
s1 = stance('gun control')
In [17]:
s2 = stance('abortion', 'pro', 'b')
In [18]:
s1
Out[18]:
stance("GUN CONTROL", "PRO", "A")
In [19]:
s2
Out[19]:
stance("ABORTION", "PRO", "B")
In [20]:
str(s1)
Out[20]:
'<stance (2): GUN CONTROL [PRO:A]>'
In [21]:
str(s2)
Out[21]:
'<stance (3): ABORTION [PRO:B]>'

Stances contain issue objects

In [22]:
s1.issue
Out[22]:
issue("GUN CONTROL")
In [23]:
str(s1.issue)
Out[23]:
'<issue (2): GUN CONTROL>'

Dict of issues

In [24]:
issue.issues
Out[24]:
{'GUN CONTROL': issue("GUN CONTROL"), 'ABORTION': issue("ABORTION")}
In [25]:
issue.issues['ABORTION']
Out[25]:
issue("ABORTION")

Add goals to agents

In [26]:
joe.add_goal(s1)
In [27]:
joe.add_goal(s2)
In [28]:
james.add_goal(s1)
In [29]:
james.add_goal(s2)
In [30]:
print(joe.pp())
Name:	Joe Biden
Friends:	[agent('James Bond')]
Goals:	[stance("GUN CONTROL", "PRO", "A"), stance("ABORTION", "PRO", "B")]
In [31]:
print(james.pp())
Name:	James Bond
Friends:	[agent('Joe Biden')]
Goals:	[stance("GUN CONTROL", "PRO", "A"), stance("ABORTION", "PRO", "B")]
In [39]:
mary = agent('Mary')
In [40]:
s3 = stance('abortion', 'con', 'a')
In [41]:
s4 = stance('gun control', 'con', 'b')
In [42]:
mary.add_goal(s3)
mary.add_goal(s4)
In [43]:
print (mary.pp())
Name:	Mary
Goals:	[stance("ABORTION", "CON", "A"), stance("GUN CONTROL", "CON", "B")]
In [44]:
mary.agreewith(joe)
Out[44]:
[]
In [45]:
mary.add_friend(joe)
In [46]:
mary.adopt_goals()
In [47]:
mary.agreewith(joe)
Out[47]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [41]:
joe.agreewith(james)
Out[41]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [48]:
joe.disagreewith(james)
Out[48]:
[]
In [49]:
joe.disagreewith(mary)
Out[49]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [50]:
james.disagreewith(mary)
Out[50]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [45]:
joe.agreewith(mary)
Out[45]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [51]:
joe.agreewith(joe)
Out[51]:
[stance("ABORTION", "PRO", "B"), stance("GUN CONTROL", "PRO", "A")]
In [52]:
mary.agreewith(mary)
Out[52]:
[stance("ABORTION", "CON", "A"),
 stance("ABORTION", "PRO", "B"),
 stance("GUN CONTROL", "CON", "B"),
 stance("GUN CONTROL", "PRO", "A")]
In [53]:
mary.disagreewith(mary)
Out[53]:
[stance("ABORTION", "CON", "A"),
 stance("ABORTION", "PRO", "B"),
 stance("GUN CONTROL", "CON", "B"),
 stance("GUN CONTROL", "PRO", "A")]

More Examples

In [54]:
a1 = agent('Arthur')
In [55]:
type(a1)
Out[55]:
hw3a.agent
In [56]:
a1.count
Out[56]:
8
In [57]:
agent.count
Out[57]:
9
In [58]:
a1 in agent.agents
Out[58]:
True
In [51]:
agent.agents
Out[51]:
[agent('Me'),
 agent('Republican'),
 agent('Democrat'),
 agent('James Bond'),
 agent('Joe Biden'),
 agent('James Bond'),
 agent('Mary'),
 agent('Arthur')]
In [59]:
a1.name
Out[59]:
'Arthur'
In [60]:
a1.friends
Out[60]:
[]
In [61]:
a1.goals
Out[61]:
[]
In [62]:
a1.adoptedgoals
Out[62]:
[]
In [63]:
repr(a1)
Out[63]:
"agent('Arthur')"
In [64]:
str(a1)
Out[64]:
'<agent. name: Arthur (8)>'
In [65]:
a1.pp()
Out[65]:
'Name:\tArthur'
In [66]:
print(a1.pp())
Name:	Arthur
In [67]:
a2 = agent('Judy')
In [68]:
a2
Out[68]:
agent('Judy')
In [69]:
str(a2)
Out[69]:
'<agent. name: Judy (9)>'
In [70]:
a2.name
Out[70]:
'Judy'
In [71]:
type(a2)
Out[71]:
hw3a.agent
In [72]:
a2 in agent.agents
Out[72]:
True
In [73]:
a2.count
Out[73]:
9
In [74]:
agent.count
Out[74]:
10
In [75]:
a1 in a2.friends
Out[75]:
False
In [76]:
a2 in a1.friends
Out[76]:
False
In [78]:
a1.add_friend(a2)
In [79]:
a1 in a2.friends
Out[79]:
True
In [80]:
a2 in a1.friends
Out[80]:
True
In [81]:
a2.pp()
Out[81]:
"Name:\tJudy\nFriends:\t[agent('Arthur')]"
In [82]:
print(a2.pp())
Name:	Judy
Friends:	[agent('Arthur')]
In [83]:
b1 = stance('gun control')
In [84]:
b1.issue
Out[84]:
issue("GUN CONTROL")
In [85]:
b1
Out[85]:
stance("GUN CONTROL", "PRO", "A")
In [86]:
str(b1)
Out[86]:
'<stance (8): GUN CONTROL [PRO:A]>'
In [87]:
b1.side
Out[87]:
'PRO'
In [88]:
b1.importance
Out[88]:
'A'
In [89]:
type(b1)
Out[89]:
hw3a.stance
In [90]:
type(b1) == stance
Out[90]:
True
In [91]:
b1.count
Out[91]:
8
In [92]:
stance.count
Out[92]:
9
In [93]:
b1 in stance.stances
Out[93]:
True
In [94]:
stance.stances
Out[94]:
[stance("GUN CONTROL", "PRO", "A"),
 stance("ABORTION", "PRO", "B"),
 stance("GUN CONTROL", "PRO", "A"),
 stance("ABORTION", "PRO", "B"),
 stance("ABORTION", "CON", "A"),
 stance("GUN CONTROL", "CON", "B"),
 stance("ABORTION", "CON", "A"),
 stance("GUN CONTROL", "CON", "B"),
 stance("GUN CONTROL", "PRO", "A")]
In [96]:
b2 = b1.copy()
In [97]:
b1 == b2
Out[97]:
True
In [98]:
b3 = stance('gun control', 'con', 'b')
In [99]:
b3
Out[99]:
stance("GUN CONTROL", "CON", "B")
In [100]:
str(b3)
Out[100]:
'<stance (10): GUN CONTROL [CON:B]>'
In [101]:
b1 == b3
Out[101]:
False
In [102]:
b1 != b3
Out[102]:
True
In [103]:
a1.add_goal(b1)
In [104]:
b4 = stance('bill of rights')
In [105]:
b5 = stance('public health')
In [106]:
b6 = stance('SCOTUS appointments')
In [107]:
a1.add_goal(b4)
a2.add_goal(b5)
a2.add_goal(b6)
In [108]:
b4 in a1.goals
Out[108]:
True
In [109]:
b5 in a1.goals
Out[109]:
False
In [110]:
b5 in a2.goals
Out[110]:
True
In [102]:
b6 in a2.goals
Out[102]:
True
In [111]:
a1.agreewith(a1)
Out[111]:
[stance("BILL OF RIGHTS", "PRO", "A"), stance("GUN CONTROL", "PRO", "A")]
In [112]:
a1.agreewith(a2)
Out[112]:
[]
In [113]:
a1.disagreewith(a2)
Out[113]:
[]
In [106]:
a1.disagreewith(a1)
Out[106]:
[]
In [114]:
a3 = agent('Tom')
In [115]:
c1 = stance ('gun control', 'con', 'b')
In [116]:
c1
Out[116]:
stance("GUN CONTROL", "CON", "B")
In [117]:
a3.add_goal(c1)
In [118]:
a1.add_friend(a3)
In [119]:
a1.adopt_goals()
In [120]:
a1.adoptedgoals
Out[120]:
[stance("PUBLIC HEALTH", "PRO", "A"),
 stance("SCOTUS APPOINTMENTS", "PRO", "A"),
 stance("GUN CONTROL", "CON", "B")]
In [121]:
a1.disagreewith(a1)
Out[121]:
[stance("GUN CONTROL", "CON", "B"), stance("GUN CONTROL", "PRO", "A")]
In [122]:
a3.agreewith(a1)
Out[122]:
[stance("GUN CONTROL", "CON", "B")]
In [ ]: