html5游戏掷骰子源码
< html lang="en">
<head>
<title>throwing 1</title>
<script type="text/javascript">
var cwidth = 400;
var cheight = 300;
var dicex = 50;
var dicey = 50;
var dicewidth = 100;
var diceheight = 100;
var dotrad = 6;
var ctx;
var dx;
var dy;
var firstturn = true;
var point;
function throwdice(){
var sum;
var ch = 1+math.floor(math.random()*6);
sum = ch;
dx = dicex;
dy = dicey;
drawface(ch);
dx = dicex + 150;
ch = 1 + math.floor(math.random()*6);
sum += ch;
drawface(ch);
if(firstturn){
switch(sum){
case 7:
case 11:
document.f.outcome.value="you win!";
break;
case 2:
case 3:
case 12:
document.f.outcome.value="you lose!";
break;
default:
point = sum;
document.f.pv.value = point;
firstturn = false;
document.f.stage.value = "need follow-up throw.";
document.f.outcome.value = "";
}
}else{
switch(sum){
case point:
document.f.outcome.value = "you win!";
document.f.stage.value = "back to first throw.";
document.f.pv.value = "";
firstturn = true;
break;
case 7:
document.f.outcome.value = "you lose!";
document.f.stage.value = "back to first throw.";
document.f.pv.value = "";
firstturn = true;
}
}
}
function drawface(n){
ctx = document.getelementbyid('canvas').getcontext('2d');
ctx.linewidth = 5;
ctx.clearrect(dx,dy,dicewidth,diceheight);
ctx.strokerect(dx,dy,dicewidth,diceheight);
var dotx;
var doty;
ctx.fillstyle = '#009966';
switch(n){
case 1:
draw1();
break;
case 2:
draw2();
break;
case 3:
draw2();
draw1();
break;
case 4:
draw4();
break;
case 5:
draw4();
draw1();
break;
case 6:
draw4();
draw2mid();
break;
}
}
function draw1(){
var dotx;
var doty;
ctx.beginpath();
dotx = dx + 0.5*dicewidth;
doty = dy + 0.5*diceheight;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
ctx.closepath();
ctx.fill()
}
function draw2(){
var dotx;
var doty;
ctx.beginpath();
dotx = dx + 3*dotrad;
doty = dy + 3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
dotx = dx + dicewidth - 3*dotrad;
doty = dy + diceheight - 3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
ctx.closepath();
ctx.fill();
}
function draw4(){
var dotx;
var doty;
ctx.beginpath();
dotx = dx + 3*dotrad;
doty = dy + 3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
dotx = dx + dicewidth -3*dotrad;
doty = dy + dicewidth -3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
ctx.closepath();www.2cto.com
ctx.fill();
ctx.beginpath();
dotx = dx + 3*dotrad;
doty = dy + diceheight - 3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
dotx = dx + dicewidth - 3*dotrad;
doty = dy + 3*dotrad;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
ctx.closepath();
ctx.fill();
}
function draw2mid(){
var dotx;
var doty;
ctx.beginpath();
dotx = dx + 3*dotrad;
doty = dy + 0.5*diceheight;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
dotx = dx + dicewidth - 3*dotrad;
doty = dy + 0.5*diceheight;
ctx.arc(dotx,doty,dotrad,0,math.pi*2,true);
ctx.closepath();
ctx.fill();
}
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300">
不支持html5
</canvas>
<br/>
<button>throw dice</button>
<form name="f">
stage:<input name="stage" value="first throw" /><br/>
point:<input name="pv" value="" /><br/>
outcome:<input name="outcome" value="" />
</form>
</body>
</html>
上一篇: Java多线程可以分组,还能这样玩!
下一篇: Java跳出多重嵌套循环