Game Theory UHON 111 SP24

Game Theory UHON 111 SP24 preview image

1 collaborator

Default-person David Earnest (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.3.1 • Viewed 111 times • Downloaded 25 times • Run 0 times
Download the 'Game Theory UHON 111 SP24' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [ titles title ]
breed [ opponents opponent ]

globals [ player-score opponent-score playerchoice opponentchoice game-outcome initial-play iteration unknown-strategy ]

to setup

  clear-all
  reset-ticks

  create-turtles 4 [ set color black make-labels ]
  ask turtle 0 [ setxy 5 4 ]
  ask turtle 1 [ setxy 5 -4 ]
  ask turtle 2 [ setxy -3 -4 ]
  ask turtle 3 [ setxy -3 4 ]
  draw-lines
  generate-titles
  generate-opponent
  setup-scores
end 





;;;;;;;;;;;;;;
;;          ;;
;; GO STUFF ;;
;;          ;;
;;;;;;;;;;;;;;

to play
  play-a-choice
  calculate-payoffs
  tick
  wait 0.1
  plot-results

  if (ticks > 99) [ stop ]
end 

to play-a-choice

  ;; Find player 1 strategy

  set opponentchoice 0

  let opponent-choice "Null"

  ifelse (unknown-strategy = 0)

  [

      if (opponent-strategy = "Cooperative")
        [ set opponentchoice 1 ]
      if (opponent-strategy = "Conflictual")
        [ set opponentchoice 0 ]
      if (opponent-strategy = "Random")
        [
          let randomchoice random 1000
          ifelse (randomchoice < 500)
            [ set opponentchoice 0 ]
            [ set opponentchoice 1 ]
        ]

      if (opponent-strategy = "Reciprocation")
        [
          ifelse (iteration = 1)
            [ set opponentchoice initial-play ]
            [ set opponentchoice playerchoice ]
        ]

      set playerchoice 0


      if (your-strategy = "Cooperate (up)")
        [ set playerchoice 1 ]

      if (your-strategy = "Reciprocation")
        [
          ifelse (iteration = 1)
            [ set playerchoice initial-play ]
            [ set playerchoice opponentchoice ]
        ]


  ]

  [

      if (unknown-strategy = "Cooperative")
        [ set opponentchoice 1 ]
      if (unknown-strategy = "Conflictual")
        [ set opponentchoice 0 ]
      if (unknown-strategy = "Random")
        [
          let randomchoice random 1000
          ifelse (randomchoice < 500)
            [ set opponentchoice 0 ]
            [ set opponentchoice 1 ]
        ]
      if (unknown-strategy = "Reciprocation")
        [
          ifelse (iteration = 1)
            [ set opponentchoice initial-play ]
            [ set opponentchoice playerchoice ]
        ]

      set playerchoice 0

      if (your-strategy = "Cooperate (up)")
        [ set playerchoice 1 ]

      if (your-strategy = "Reciprocation")
        [
          ifelse (iteration = 1)
            [ set playerchoice initial-play ]
            [ set playerchoice opponentchoice ]
        ]

  ]




  ;; Find player 2 strategy



  set iteration iteration + 1

  set game-outcome (word playerchoice ", " opponentchoice)
end 

to calculate-payoffs

  if (game = "Rules of the Road")
     [
       if (game-outcome = "0, 0")
         [
           set player-score player-score + 1
           set opponent-score opponent-score + 1
         ]
       if (game-outcome = "1, 0")
         [
           set player-score player-score + 0
           set opponent-score opponent-score + 0
         ]
       if (game-outcome = "0, 1")
         [
           set player-score player-score + 0
           set opponent-score opponent-score + 0
         ]
       if (game-outcome = "1, 1")
         [
           set player-score player-score + 1
           set opponent-score opponent-score + 1
         ]
     ]


  if (game = "Vacation")
     [
       if (game-outcome = "0, 0")
         [
           set player-score player-score + 1
           set opponent-score opponent-score + 2
         ]
       if (game-outcome = "1, 0")
         [
           set player-score player-score
           set opponent-score opponent-score
         ]
       if (game-outcome = "0, 1")
         [
           set player-score player-score
           set opponent-score opponent-score
         ]
       if (game-outcome = "1, 1")
         [
           set player-score player-score + 2
           set opponent-score opponent-score + 1
         ]
     ]

  if (game = "Prisoner's Dilemma")
     [
       if (game-outcome = "0, 0")
         [
           set player-score player-score + 1
           set opponent-score opponent-score + 1
         ]
       if (game-outcome = "1, 0")
         [
           set player-score player-score + 0
           set opponent-score opponent-score + 3
         ]
       if (game-outcome = "0, 1")
         [
           set player-score player-score + 3
           set opponent-score opponent-score + 0
         ]
       if (game-outcome = "1, 1")
         [
           set player-score player-score + 2
           set opponent-score opponent-score + 2
         ]
     ]
end 

to plot-results
end 





;;; SETUP STUFF

to draw-lines

  create-turtles 1
     [
       set color white
       setxy -8 8
       set heading 90
       pd
       forward 16
       set heading 180
       forward 16
       set heading 270
       forward 16
       set heading 0
       forward 16
       die
     ]
  create-turtles 1
     [
       set color white
       setxy -8 0
       set heading 90
       pd
       fd 16
       pu
       setxy 0 -8
       set heading 0
       pd
       fd 16
       die
     ]
end 

to make-labels

  if game = "Rules of the Road"
     [
       ask turtle 0 [ set label "Crash, Crash" ]
       ask turtle 1 [ set label "Alive, Alive" ]
       ask turtle 2 [ set label "Crash, Crash"]
       ask turtle 3 [ set label "Alive, Alive"]
     ]

  if game = "Vacation"
     [
       ask turtle 0 [ set label "Alone, Alone" ]
       ask turtle 1 [ set label "Disapp, Happy" ]
       ask turtle 2 [ set label "Alone, Alone"]
       ask turtle 3 [ set label "Happy, Disapp"]
     ]

  if game = "Prisoner's Dilemma"
     [
       ask turtle 0 [ set label "3 Yrs, Free" ]
       ask turtle 1 [ set label "2 Yrs, 2 Yrs" ]
       ask turtle 2 [ set label "Free, 3 Yrs"]
       ask turtle 3 [ set label "1 Yr, 1 Yr"]
     ]
end 

to generate-titles
  create-titles 1
    [
      set color black
      setxy -9 0
      set label "you"
    ]
  create-titles 1
    [
      set color black
      setxy 1 9
      set label "opponent"
    ]
end 

to generate-opponent
  create-opponents 1
     [
       set hidden? true
     ]
end 

to setup-scores
  set unknown-strategy 0
  set player-score 0
  set opponent-score 0
  set game-outcome "null"
  set initial-play 0
  set iteration 1

  if (opponent-strategy = "Unknown") [ set unknown-strategy one-of [ "Cooperative" "Conflictual" "Reciprocation" "Random" ]]
end 

There are 8 versions of this model.

Uploaded by When Description Download
David Earnest 8 months ago Final 20240207-0927 Download this version
David Earnest 8 months ago Final Version Download this version
David Earnest 8 months ago Updated 20240206-1916 Download this version
David Earnest 8 months ago Updated 20240206-1914 Download this version
David Earnest 8 months ago Updated 20240206-191100 Download this version
David Earnest 8 months ago Lesson plan for week 5b Download this version
David Earnest 8 months ago For week 5b lesson Download this version
David Earnest 8 months ago Initial upload Download this version

Attached files

File Type Description Last updated
Game Theory UHON 111 SP24.png preview Preview for 'Game Theory UHON 111 SP24' 8 months ago, by David Earnest Download

This model does not have any ancestors.

This model does not have any descendants.