spendingmoney is (purse[1]+purse[2]+purse[3]+purse[4])/100; yesBtn is Button("yesBtn","YES", 200, 185); noBtn is Button("noBtn", "NO", 250, 185); bill is (items[chosenItem][2] + items[chosenItem2][2]); func resetPuzzle { isAnswered = false; ix1 is int(random()*8)+1; ix2 is int(random()*8)+1; ix3 is int(random()*8)+1; ix4 is int(random()*8)+1; ix5 is int(random()*8)+1; ix6 is int(random()*8)+1; ix7 is int(random()*8)+1; ix8 is int(random()*8)+1; chosenItem is int(random()*6)+1; chosenItem2 is int(random()*6)+1; } resetPuzzle(); MoneyText is Text("Your money", 4.0*scaleWidth,0.5*scaleWidth, "blue", 18); EnoughText is Text("Have you enough money?", 1.0*scaleWidth,2.0*scaleWidth, "red", 18); AnswerText is Text("Yes or No?", 1.0*scaleWidth,3.2*scaleWidth, "red", 18); ItemText is Text("Items to buy", 4.0*scaleWidth,6*scaleWidth, "blue", 18); ## picture is [coin1pic,coin2pic,coin3pic,coin4pic,coin5pic,coin6pic,coin7pic,coin8pic, item1pic,item2pic,item3pic,item4pic,item5pic,item6pic, coin1text,coin2text,coin3text,coin4text,coin5text,coin6text,coin7text,coin8text,item1text,item2text,item3text,item4text,item5text,item6text, MoneyText,EnoughText,AnswerText,ItemText, yesBtn, noBtn, Response, resetBtn]; picture is [coin1pic,coin2pic,coin3pic,coin4pic, item1pic,item2pic,item1text, item2text, MoneyText,EnoughText,AnswerText,ItemText, yesBtn, noBtn, Response, resetBtn]; Response is (isAnswered) ? ((answerCorrect) ? Text("Well done! Try another one?", 1.0*scaleWidth, 4*scaleWidth, "green", 18) : Text("Not right yet, have another go?", 1.0*scaleWidth, 4*scaleWidth,"green", 18)) : @; resetBtn is Button("resetBtn", "New Puzzle", 1*scaleWidth, 4.5*scaleWidth, isAnswered && answerCorrect); proc answerYes : yesBtn_clicked{ if(yesBtn_clicked){ isAnswered = true; answerCorrect = false; if(haveenoughmoney){ answerCorrect = true; } } } proc answerNo : noBtn_clicked{ if(noBtn_clicked){ isAnswered = true; answerCorrect = false; if(!haveenoughmoney){ answerCorrect = true; } } } proc newPuzzle : resetBtn_clicked{ if(resetBtn_clicked){ resetPuzzle(); } } ## innovation introduced by SBR ## all heads displayed - can't read off the value of the coin func coindisplay { para ix; if (ix==1) return "1ph.gif"; if (ix==2) return "2ph.gif"; if (ix==3) return "5ph.gif"; if (ix==4) return "10ph.gif"; if (ix==5) return "20ph.jpg"; if (ix==6) return "50ph.jpg"; if (ix==7) return "poundh.gif"; if (ix==8) return "2poundsh.gif"; } /* ## the original coin display arrangement ## all tails displayed - can read off the value of the coin func coindisplay { para ix; if (ix==1) return "1p.gif"; if (ix==2) return "2p.gif"; if (ix==3) return "5p.gif"; if (ix==4) return "10p.gif"; if (ix==5) return "20p.jpg"; if (ix==6) return "50p.jpg"; if (ix==7) return "pound.gif"; if (ix==8) return "2pounds.gif"; } */ proc coin1picMove {}; proc coin2picMove {}; proc coin3picMove {}; proc coin4picMove {}; proc item1picMove {}; proc item2picMove {}; item1pic is HTMLImage("item1pic",scaleWidth*0.5,5.5*scaleWidth-2*scaleWidth*itemsselected[1],scaleWidth,scaleWidth,imagelocation // itemdisplay(chosenItem)); item2pic is HTMLImage("item2pic", scaleWidth*1.8, 5.5*scaleWidth-2*scaleWidth*itemsselected[2],scaleWidth,scaleWidth,imagelocation // itemdisplay(chosenItem2)); item1text is Text(pricedisplay(chosenItem, items), 0.6*scaleWidth,5*scaleWidth); item2text is Text(pricedisplay(chosenItem2, items), 1.9*scaleWidth,5*scaleWidth);