[syndicate]

Auriea Harvey a at e8z.org
Thu Apr 25 09:58:43 CEST 2002


ScissorsPaperStone(Agent p1, Agent p2, int max_score)
    needs p1, p2
    constructor
    {
           int score1=0;
           int score2=0;
           int NumGoes=0;
           AGENT_LIST Players;
           enum actions
           {
                  scissors,
                  paper,
                  stone
           };
           Players.push_back(p1);
           Players.push_back(p2);
           -> Play
    }
    state Play
    {
           needs score1<max_score && score2<max_score !-> Finished
           requests
                  Players do CHOOSE(scissors, paper, stone) !-> GiveUp
                  ->
                  Evaluate
    }
    state Evaluate
    {
           if (p1.GetChoice() > p2.GetChoice())
           {
                  score1++;
           }
           else
           {
                  score2++;
           }
           -> Play
    }
    state Finished
    {
           if (score1 > score2)
           {
                  => UpdateScoreFromResult(p1) // send message to parent
                  -> WinnerCelebrates(p1, p2)
           }
           else
           {
                  => UpdateScoreFromResult(p2) // send message to parent
                  -> WinnerCelebrates(p2, p1)
           }
    }
    state WinnerCelebrates(Agent winner, Agent loser)
    {
           requests
                  winner do CELEBRATE() !-> GiveUp
                  ->
                  LoserCries(loser)
    }
    state LoserCries(Agent loser)
    {
           needs loser
           requests loser do CRY() -> GiveUp
    }
    state GiveUp
    {
           -> Delete
    }


-- 
http://entropy8zuper.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tekspost.no/mailman/private/syndicate/attachments/20020425/e665b1c5/attachment-0001.html>


More information about the Syndicate mailing list