DynamicModule[{
x,(*人間のx座標*)
get,(*避けきった玉の数*)
stFlag,(*玉が画面内に存在しているかどうか*)
endFlag,(*ゲームオーバーしたかどうか*)
appTime,(*玉が出現した時間*)
itFlag=0
},
{
Button[left,If[x>0.3,x=x-0.3,x=x]],
Button[right,If[x<8.7,x=x+0.3,x=x]],
Button[Reset,itFlag=0],
Animate[
(*アニメーションの初期化*)
If[itFlag ==0,
x=4.5;
stFlag =0;
get=0;
endFlag =0;
appTime=0;
itFlag=1;
];

(*玉の出現位置の設定*)
If[stFlag==0&&endFlag==0,
appTime=t;
bX=RandomReal[{1,8}];
bR=RandomReal[{0.3,0.4+get/2}];
bY=9.5-(t-appTime)+bR;
ball = Circle[{bX,bY},bR];
stFlag=1;
 ];

(*玉の出現後の位置設定*)
If[stFlag==1&&endFlag==0,
bY=9.5-(t-appTime)+bR;
ball = Circle[{bX,bY},bR]
];

(*玉の当たり判定*)
If[(bX-x<bR+0.3)&&(bX-x>-bR-0.3)&&(bY-bR<3.3)&&endFlag==0,
endFlag=1;
ball=Null;
(*ゲームオーバーした瞬間の時間を保存*)
goverTime=t
];

(*玉が画面外に出た時*)
If[(bY)<-bR&&endFlag==0,
stFlag=0;
get++;
];

(*人間の体、テキスト等の設定*)
If[endFlag==1,
(*ゲームオーバー後の処理*)

(*玉の削除*)
ball=Null;
(*四散する肉体*)
brokenBody= t-goverTime;
head = Circle[{x,3+(brokenBody)},0.3];
body = Line[{{x,1.7-(brokenBody)},{x,2.7-(brokenBody)}}];
leg1= Line[{{x-(brokenBody),1.7-(brokenBody)},{x-0.2-(brokenBody),1-(brokenBody)}}];
leg2= Line[{{x+(brokenBody),1.7-(brokenBody)},{x+0.2+(brokenBody),1-(brokenBody)}}];
arm1=Line[{{x+(brokenBody),2.3+(brokenBody)},{x+0.5+(brokenBody),2.2+(0.5*Sin[t])/2+(brokenBody)}}];
arm2=Line[{{x-(brokenBody),2.3+(brokenBody)},{x-0.5-(brokenBody),2.2+(0.5*Sin[t])/2+(brokenBody)}}];
(*ゲームオーバーメッセージ*)
gameover=Text[Style[GameOver,Large],{4.5,4.5}];
,
(*ゲームオーバー前の処理*)

(*ユーザーへのメッセージ*)
gameover=Text[Style[Yokete,Large],{2,8.5}];
(*人の体*)
head = Circle[{x,3},0.3];
body = Line[{{x,1.7},{x,2.7}}];
leg1= Line[{{x,1.7},{x-0.2,1}}];
leg2= Line[{{x,1.7},{x+0.2,1}}];
arm1=Line[{{x,2.3},{x+0.5,2.2+(0.5*Sin[t])/2}}];
arm2=Line[{{x,2.3},{x-0.5,2.2+(0.5*Sin[t])/2}}];

];

(*地面の描画*)
ground =Line[{{0,1},{9,1}}];

(*ポイントの表示*)
point=Text[Style[get,25],{8,8}];

(*画面設定*)
options=
{AspectRatio->Automatic,PlotRange->
{{0,9},{0,9}}};

(*グラフィック描画処理*)
Graphics[{head,body,leg1,leg2,arm1,arm2,ball,ground,point,gameover},options],
{t,0,Infinity},
AnimationRate->5,
AnimationRepetitions->1
]}]