CPGXGame  ×#=ÈAPYou are making losses. Do you want to invest the showupfee in order to continue?YesNo0You are making losses. Do you want to continue?YesNo3Please wait until the experimenter unlocks your PC.EEXDatabaseInfoglobalsEEXDatabaseInfosubjectsEEXDatabaseInfosummaryEEXDatabaseInfo contractsEEXDatabaseInfosession EEXProgramglobalsÿV// This program is very flexible. It was created by Brian Wallace for the paper // Asymmetric Enforcement of Cooperation in a Social Dilemma. //It allows for symmetric and asymmetric players with respect to their sanctioning power. //See details below: // There are 4 treatments: // VCM: usual public goods voluntary contribution mechanism // SYMMETRIC: vcm plus symmetric and linear (in costs) punishment // STRONG: vcm plus assymetric (linear) punishment with 3 identical players and one 'strong' player whose punishment is more effective // IMMUNE: as STRONG except that the 'strong' player has immunity from punishment (punishment is half as effective on him??) // choose one of these for the value of 'treatment' below // the experiment MUST have groups of 4 players, so that players 1 to 4 are in group 1, 5 to 8 in group 2 etc. It will not work otherwise! VCM=1; SYMMETRIC=2; STRONG=3; IMMUNE=4; // In strong treament, first player is strong, second and third are normal, fourth is weak // set treatment to one of: vcm, symmetric, strong_punisher, immune; // REMEMBER to alter show up fee to zero for VCM treatment = SYMMETRIC; array reduction_factor[4]; reduction_factor[1]=4; reduction_factor[2]=1.33; reduction_factor[3]=1.33; reduction_factor[4]=1.33; A=1; B=2; // ========== Time out settings ========== earlyrounds = 10; // how many rounds long time out longtimeout=120; shorttimeout=60; // ========== Set up parameters for the experiment ========== a = 0.4; endowment = 20; array cost[0,10]; //defines an indexed variable from 0 to 10 in steps of 1 cost[0] = 0; cost[1] = 1; cost[2] = 2; cost[3] = 4; cost[4] = 6; cost[5] = 9; cost[6] = 12; cost[7] = 16; cost[8] = 20; cost[9] = 25; cost[10] = 30; // ========== Set up player roles for the round ========== array r[4]; array player[4]; j=1; while (j<=4) { r[j]=random(); player[j]=1; j=j+1;} j=1; while (j<=4) { k=1; while(k<=4) { if (r[j]>r[k]) {player[j]=player[j]+1;} k=k+1; } j=j+1;} // e.g. if player[1] = 2, then player 1 is the second person in the table EEXProgramsubjectsÿÍnumber=count(same(Group)&(Subject<:Subject))+1; type=if(number==1,A,B); array p[4]; // punishment to number i array rp[4]; // received punishment from number i array contribution[4]; // contribution from number i array payoff[4]; // payoff to number i mycontribution=-1; array pl[4]; pl[1]=player[1]; pl[2]=player[2]; pl[3]=player[3]; pl[4]=player[4]; i=1; while (i<=4) { p[i] = 0; rp[i] = 0; contribution[i] = 0; payoff[i]=0; i=i+1;} EEXHeaderWindowHeader0p10%PeriodofTrial Remaining time [sec]:Please reach a decision.EEXDialogWindowText EEXInfoItem+Please wait until the experiment continues.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEXStageStage 1: contribution decision0if(Period<=earlyrounds,longtimeout,shorttimeout)EEXDialogWindowStandard85% EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemYour contributionmycontribution0 endowment1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?EEXContractButtonOKEEXStageStage 2: contributions feedback EEXProgramsubjectsÿºi=1; while (i<=4) {contribution[i]=find(same(Group)&(number==:i),mycontribution); i=i+1;} total_contribution=sum(same(Group),mycontribution); i=1; while (i<=4) {payoff[i]=endowment-contribution[i]+a*total_contribution; i=i+1;} //---------------------------------------------------------NSN----------------------------------------------------------------- payatstage1=payoff[number]; if (treatment==VCM) {Profit=payatstage1;}-1 //30EEXDialogWindowNon-VCM screen85%treatment!=VCM EEXInfoItemYour contribution:mycontribution1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemTotal Contribution:total_contribution1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem Money kept:(endowment-mycontribution)1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemYour Income from Project:(total_contribution*a).01ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ×#< EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem){\rtf \b \fs18 Your Income from Stage 1:}payoff[number]0.01ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ×#<EEXContractButtonOKÿZZEEXDialogWindow VCM screen85%treatment==VCM EEXInfoItemYour contribution:mycontribution1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemTotal Contribution:total_contribution1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem Money kept:(endowment-mycontribution)1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemYour Income from Project:(total_contribution*a).1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÌÌ= EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem,{\rtf \b \fs18 Your Income from this stage:}payoff[number]0.1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÌÌ=EEXContractButtonOKÿZZEEXStageStage 3: punishment (non-VCM) EEXProgramsubjects#Participate=if(treatment!=VCM,1,0);0if(Period<=earlyrounds,longtimeout,shorttimeout) EEXGridWindowGrid85%5%10% EEXInfoItem{\rtf \b \fs18 Player}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem{\rtf \b \fs18 Contribution}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItem{\rtf \fs18 \b Points}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈBÈB EEXGridWindowGrid85%18%10%(number==pl[1]) EEXInfoItem{\rtf \fs18 \b You}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[1]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈBÈB EEXGridWindowGrid85%18%10%(number!=pl[1]) EEXInfoItem{\rtf \fs18 \b Player 1}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[1]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemp[pl[1]]0payoff[number]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÈBÈB EEXGridWindowGrid85%28%10%(number==pl[2]) EEXInfoItem{\rtf \fs18 \b You}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[2]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈBÈB EEXGridWindowGrid85%28%10%(number!=pl[2]) EEXInfoItem{\rtf \fs18 \b Player 2}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[2]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemp[pl[2]]0payoff[number]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÈBÈB EEXGridWindowGrid85%38%10%(number==pl[3]) EEXInfoItem{\rtf \fs18 \b You}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[3]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈBÈB EEXGridWindowGrid85%38%10%(number!=pl[3]) EEXInfoItem{\rtf \fs18 \b Player 3}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[3]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemp[pl[3]]0payoff[number]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÈBÈB EEXGridWindowGrid85%48%10%(number==pl[4]) EEXInfoItem{\rtf \fs18 \b You}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[4]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈBÈB EEXGridWindowGrid85%48%10%(number!=pl[4]) EEXInfoItem{\rtf \fs18 \b Player 4}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ EEXInfoItemcontribution[pl[4]]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€? EEXInfoItemp[pl[4]]0payoff[number]1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÈBÈBEEXDialogWindowStandard85%58%10% EEXInfoItemYour Payoff so far: payatstage1.01ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ×#<EEXDialogWindowStandard85%85%10%EEXContractButtonOK EEXChecker&((p[1]+p[2]+p[3]+p[4])[ - - = ]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEXContractButtonOKÿZZ CPGXPeriodParam1CPGXPeriodParam2CPGXPeriodParam3CPGXPeriodParam4CPGXPeriodParam5CPGXPeriodParam6CPGXPeriodParam7CPGXPeriodParam8CPGXPeriodParam9CPGXPeriodParam10 CPGXRoleS 1CPGXSubjectParamCPGXRoleS 2CPGXSubjectParamCPGXRoleS 3CPGXSubjectParamCPGXRoleS 4CPGXSubjectParamCPGXRoleS 5CPGXSubjectParamCPGXRoleS 6CPGXSubjectParamCPGXRoleS 7CPGXSubjectParamCPGXRoleS 8CPGXSubjectParamCPGXRoleS 9CPGXSubjectParamCPGXRoleS 10 CPGXSubjectParamCPGXRoleS 11 CPGXSubjectParamCPGXRoleS 12 CPGXSubjectParam xCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParamCPGXSubjectParam  ZZZZZZZZZZZZZ