## extracted and simplified from shopping construal ## option for euro currency by redefining listcoindisplay (see below) ## calculating in pence / cents so as to eliminate floating point arithmetic scaleWidth = 80; coinlist is [1,2,5,10,20,50,100,200]; purse is [coinlist[ix1], coinlist[ix2], coinlist[ix3], coinlist[ix4], coinlist[ix5], coinlist[ix6], coinlist[ix7], coinlist[ix8]]; spendingmoney is (purse[1]+purse[2]+purse[3]+purse[4]+purse[5]+purse[6]+purse[7]+purse[8]); haveenoughmoney is (totalcost<=spendingmoney); offered is moneyinhand(purse, coinsselected); coinsselected is [coin1selected,coin2selected,coin3selected,coin4selected,coin5selected,coin6selected,coin7selected,coin8selected]; imagelocation = "http://www.dcs.warwick.ac.uk/~jonny/ukcurrency/"; listcoindisplay is ["1p.gif", "2p.gif", "5p.gif", "10p.gif", "20p.jpg", "50p.jpg", "pound.gif", "2pounds.gif"]; coin1pic is HTMLImage("coin1pic",0,(coin1selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix1]); coin2pic is HTMLImage("coin2pic", scaleWidth,(coin2selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix2]); coin3pic is HTMLImage("coin3pic", scaleWidth*2,(coin3selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix3]); coin4pic is HTMLImage("coin4pic", scaleWidth*3,(coin4selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix4]); coin5pic is HTMLImage("coin5pic", scaleWidth*4,(coin5selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix5]); coin6pic is HTMLImage("coin6pic", scaleWidth*5, (coin6selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix6]); coin7pic is HTMLImage("coin7pic", scaleWidth*6, (coin7selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix7]); coin8pic is HTMLImage("coin8pic", scaleWidth*7, (coin8selected) ? scaleWidth : 0,scaleWidth,scaleWidth,imagelocation // listcoindisplay[ix8]); CoinsOfferedText is Text("Offered", 8.5*scaleWidth,1.2*scaleWidth,scaleWidth/4, "red"); coin1pic_click = false; coin2pic_click = false; coin3pic_click = false; coin4pic_click = false; coin5pic_click = false; coin6pic_click = false; coin7pic_click = false; coin8pic_click = false; coin1selected = false; coin2selected = false; coin3selected = false; coin4selected = false; coin5selected = false; coin6selected = false; coin7selected = false; coin8selected = false; proc coin1picMove : coin1pic_click { if(coin1pic_click) coin1selected = !coin1selected; } proc coin2picMove : coin2pic_click { if(coin2pic_click) coin2selected = !coin2selected; } proc coin3picMove : coin3pic_click { if(coin3pic_click) coin3selected = !coin3selected; } proc coin4picMove : coin4pic_click { if(coin4pic_click) coin4selected = !coin4selected; } proc coin5picMove : coin5pic_click { if(coin5pic_click) coin5selected = !coin5selected; } proc coin6picMove : coin6pic_click { if(coin6pic_click) coin6selected = !coin6selected; } proc coin7picMove : coin7pic_click { if(coin7pic_click) coin7selected = !coin7selected; } proc coin8picMove : coin8pic_click { if(coin8pic_click) coin8selected = !coin8selected; } proc initpurse: newgamename_clicked { ix1 is randomInteger(1,8); ix2 is randomInteger(1,8); ix3 is randomInteger(1,8); ix4 is randomInteger(1,8); ix5 is randomInteger(1,8); ix6 is randomInteger(1,8); ix7 is randomInteger(1,8); ix8 is randomInteger(1,8); } func moneyinhand { para allcoins, chosen; auto result, i; result = 0; for (i=1; i<=allcoins#; i++) if (chosen[i]) result = result + allcoins[i]; return result; } newgame is Button("newgamename", "New Game", scaleWidth*8.5, 0.5 * scaleWidth, true); listcoindisplay is ["eu1.gif", "eu2.gif", "eu5.gif", "eu10.gif", "eu20.gif", "eu50.gif", "eu100.gif", "eu200.gif"]; listcoindisplay is ["1p.gif", "2p.gif", "5p.gif", "10p.gif", "20p.jpg", "50p.jpg", "pound.gif", "2pounds.gif"]; totalcost = 500; change is offered - totalcost; picture is [coin1pic,coin2pic,coin3pic,coin4pic,coin5pic,coin6pic,coin7pic,coin8pic, newgame, CoinsOfferedText]; coinpics is [coin1pic,coin2pic,coin3pic,coin4pic,coin5pic,coin6pic,coin7pic,coin8pic]; picture is coinpics // [newgame, CoinsOfferedText];