Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!nntp.posted.palinacquisition!news.posted.palinacquisition.POSTED!not-for-mail NNTP-Posting-Date: Mon, 18 Apr 2011 01:47:42 -0500 Date: Sun, 17 Apr 2011 23:47:41 -0700 From: Peter Duniho User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Basic prisoner's dilemma? References: <4dabb5e8$0$55571$c30e37c6@exi-reader.telstra.net> <3c4ead8c-1841-415f-8bbe-f716ab8f33a9@l14g2000pre.googlegroups.com> In-Reply-To: <3c4ead8c-1841-415f-8bbe-f716ab8f33a9@l14g2000pre.googlegroups.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Lines: 37 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 50.46.118.188 X-Trace: sv3-zuxbfFff5maybLVRGmuBovB2xSrMsEwaBLBKckaaUd5FFrj3JrmJQnF/SDGAijlPMnmxXNpytdQen3h!oSuHjXjlHteD2SVkD2gJji90cgllMaaQDfehtvlPJHXeciadWJaQROgJJLw/7mdSJAeKO3lkMBIR!lIzpLSDqeCOvX2Qbvvu+EVeyvhMImtDMsktoVWzr5d8= X-Complaints-To: abuse@iinet.com X-DMCA-Complaints-To: abuse@iinet.com X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2494 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3102 On 4/17/11 10:08 PM, theglazeb wrote: > [...] how could make it output random > DEFECT or COOPERATE? and then following on that, how could I start > thinking about a Tit for Tat strategy? class Prisoner { private java.util.Random _rnd = new java.util.Random(); public String randomChoice() { return _rnd.nextBoolean() ? "DEFECT" : "COOPERATE"; } public String titForTat(String opponentsLastChoice) { return opponentsLastChoice; } } Incorporate those "algorithms" into your ArrayList-based code as needed. For example: class PDTitForTatStrategy extends PDStrategy { private Prisoner _prisoner = new Prisoner(); public String chooseAction(ArrayList myHistory, ArrayList oppHistory) { return _prisoner.titForTat(oppHistory.get(oppHistory.size() - 1)); } } Or rework the logic so it's all in one class, or whatever you want to do. Pete