< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>

Similar documents
< F2D F B834E2E6A7464>

< F2D82518CC282CC D2E6A7464>

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D834F838C A815B A CC>

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

< F2D82B682E182F182AF82F12E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D89BA8EE882C E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D A838B838D96402E6A7464>

< F2D A839382CC906A2E6A7464>

< F2D E E6A7464>

< F2D B825082CC96E291E82E6A7464>

Microsoft PowerPoint - OOP.pptx

Java言語 第1回

アプレットの作成


try catch Exception Java try catch try { } catch ( Exception e ) { } e 16-1 try catch 0 try { int x = 0; int y = 10 / x; } catch ( Exception e ) { Sys

Microsoft PowerPoint prog1_doc2x.pptx

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

アプレットⅤ

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

text_13.dvi

Microsoft PowerPoint prog1_doc2.pptx

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

Java言語 第1回

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

untitled

Thread

ガイダンス

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

Chapter 20. [ ] ; [ ] = new [ ] ; Color colors [ ] = new Color[ 20 ]; // 20 Button operations [ ] = new Button[ 10 ]; // 10 colors[ 3 ] = new Color( 1

text_12.dvi

r3.dvi

ガイダンス

ガイダンス

GUIプログラムⅤ

2

Java演習(4) -- 変数と型 --

r2.dvi

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Microsoft PowerPoint ppt

問題1 以下に示すプログラムは、次の処理をするプログラムである

ガイダンス

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

r4.dvi

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

Microsoft PowerPoint - prog11.ppt

GUIプログラムⅣ

I. java.awt.rectangle java.lang.math random Java TM API java.awt Rectangle Rectangle (x,y)... public int x Rectangle X public int y Rectangle Y public

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

Java言語 第1回

Prog1_12th

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

ガイダンス

vol.30.}...`.X...b.h

Microsoft PowerPoint - prog11.ppt

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperforme

PowerPoint Presentation

問1

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

2

Java演習(2) -- 簡単なプログラム --

シミュレーションの簡単な例 GUI 無しのシミュレーションを作る GUI を作る パラメタを設定するデモンストレーションをする 2 オブジェクト指向プログラミング特論

Java演習(9) -- クラスとメソッド --

Java 2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q 2.

問題1 以下に示すプログラムは、次の処理をするプログラムである

Prog2_11th

226

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

次の演習課題(1),(2)のプログラムを完成させよ

Prog1_12th

Microsoft PowerPoint ppt

Microsoft PowerPoint - prog10.ppt

Microsoft PowerPoint - prog10.ppt

新・明解Java入門

Microsoft PowerPoint - prog12.ppt

Taro-twokansu3.jtd

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperformed

Java講座

Microsoft PowerPoint - OOP.pptx

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含


10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperformed

PowerPoint プレゼンテーション

IT プロジェクト

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperforme

Java講座

r6.dvi

Transcription:

パチンコ玉の落下の実験 [Java アプレット ] [Java アプリケーション ] 1. はじめに 1 個のパチンコ玉が釘に当たって左右に分かれながら落下するとき パチンコ玉はどこに落下するのでしょうか ただし パチンコ玉が釘に当たって左右に分かれるとき その分かれ方は左右半々であるとします パチンコ玉が落下し易い場所はあるのでしょうか それとも どこの場所も同じなのでしょうか シミュレーションソフト パチンコ玉の落下の実験 を使って パチンコ玉の落下の様子を観察してみてください 2.Java アプレット (1) Java プログラムリスト パチンコ玉の落下の実験 Copyright ( C) K.Niwa 2001.12.01 ( Javaアプレット) import java.applet.applet; import java.awt.*; import java.lang.math; implements Runnable でスレット を使えるようにする public class Patinko5 extends Applet implements Runnable { /********* instance ************************************************************************/ Thread thread; boolean active = false; thread をスレット 型として定義する active を boolean 型として定義し初期化する ( スレット 停止フラク ) MediaTracker mt; mt をメテ ィアトラッカー型として定義する Image scrimg; Graphics scrbuf; scrimg をイメーシ 型として定義する ( ク ラフィック描画イメーシ ) scrbuf をク ラフィック型として定義する -81-

int SLEEP = 70; スリーフ 時間 ( 定数 ) int x=150,y=30; パチンコ玉のx 座標とy 座標 int oldx=150,oldy=30; パチンコ玉の前のx 座標とy 座標 int xx; パチンコ玉の落下先の容器描写に使用 int k; パチンコ玉の経路描写に使用 Image ball; ball をイメーシ 型として定義する ( パチンコ玉画像 ) double r; int kai=10; 乱数 10 階建て int kago []; 容器の中の玉の数 int flagstop=0; 停止ホ タンを押したかどうかの識別子 /********** init ***************************************************************************/ public void init () init メソット { kago = new int [ 11 ]; 容器の中の玉の数を実体化する scrimg = createimage( 300,350 ); scrimg を新規作成する scrbuf = scrimg.getgraphics (); scrimg の描画オフ シ ェクトを設定 ball = getimage( getdocumentbase (),"tama.jpg"); パチンコ玉画像の読み込み mt = new MediaTracker( this ); メディアトラッカーを実体化する mt.addimage( ball,0 ); イメージ ( パチンコ玉画像 ) をメディアトラッカーへ貼り付ける try { mt.waitforid( 0 ); 例外処理 ( メテ ィアトラッカー完了まで待機 ) catch ( InterruptedException e ) {; Button init = new Button (" 初期化 "); Button fast = new Button (" 高速 "); init をホ タン型として定義し実体化する fast をホ タン型として定義し実体化する Button middle = new Button (" 中速 "); middle をホ タン型として定義し実体化する Button slow = new Button (" 低速 "); slow をホ タン型として定義し実体化する Button teisi = new Button (" 停止 "); teisi をホ タン型として定義し実体化する Panel panel = new Panel (); panel をハ ネル型として定義し実体化する panel.setbackground( Color.lightGray ); panel の背景色を lightgray に設定する panel.setfont( new Font ("Dialog", Font.PLAIN, 14 ));panel のフォントを設定する panel.setlayout( new GridLayout( 1,5 )); panel のレイアウトを設定する panel.add( init ); panel.add( fast ); panel に初期化ホ タンをハ追加する panel に高速ホ タンをハ追加する panel.add( middle ); panel に中速ホ タンをハ追加する panel.add( slow ); panel に低速ホ タンをハ追加する panel.add( teisi ); panel に停止ホ タンをハ追加する setlayout( new BorderLayout ()); add ("South", panel ); 全体をボーダーレイアウトに設定する panel をアフ レットの南に追加する setbackground( Color.lightGray ); アフ レットの背景色を lightgray に設定する public void init() /********** start **************************************************************************/ public void start () start メソット ( スレット を用いるときに使うメソット ){ thread = new Thread( this ); スレット の実体化 thread.start (); スレット を開始する public void start() /********** stop ***************************************************************************/ public void stop () stop メソット { thread.stop(); スレット を停止する thread = null; スレット を初期化する public void stop() -82-

/********** run ****************************************************************************/ public void run (){ run メソット while( true ){ 無限ルーフ try{ Thread.currentThread ().sleep( SLEEP ); 休む catch ( InterruptedException e ) {; repaint (); paint() メソッドを呼び出す public void run() /********** paint **************************************************************************/ public void paint( Graphics scr ){ scrbuf.clearrect( 0,0,299,349 ); paint メソット 全体をクリアする scrbuf.drawstring ("Copyright( C) K.Niwa 2001.12",80,330 ); 作者名 keirodraw (); ユーザー定義メソッド youkidraw (); ユーザー定義メソッド scrbuf.drawimage( ball,x-4,y-4,this ); public void paint( Graphics scr) パチンコ玉の描写 /********** update *************************************************************************/ public void update( Graphics scr ) update メソッド int i; if( active == true){ if( kai > =1){ r=math.random (); if(< r 0.5){ x=x+12; y=y+12; else{ x=x-12; y=y+12; scrbuf.drawimage( ball,x-4,y-4,this ); パチンコ玉を描写する scrbuf.clearrect( oldx-4,oldy-4,8,8 ); パチンコ玉を消す keirodraw (); ユーザー定義メソッド oldx=x; oldy=y; scr.drawimage( scrimg,0,0,this ); scrimg をアフ レットに描画する kai--; if( kai > =1) else{ if( kai < =0){ kago[( x-30 )/24] ++; パチンコ玉の描写 scrbuf.drawimage( ball,x-4,310-kago[( x-30 )/24] * 10,this ); パチンコ玉を消す scrbuf.clearrect( oldx-4,oldy-4,8,8 ); keirodraw (); x=150; y=30; oldx=150; oldy=30; kai=10; -83-

パチンコ玉の描写 scrbuf.drawimage( ball,x-4,y-4,this ); if( kai < =0) else for( i=0;i< 11;i++ ){ if( kago[ i ]> =15){ active = false; flagstop=0; ; if( active == true) scr.drawimage( scrimg,0,0,this ); scrimg をアフ レットに描画する public void update( Graphics scr) /********** action *************************************************************************/ public boolean action( Event evt, Object obj){ if ( evt.target instanceof Button ){ ホ タン関係のイヘ ントか? if (" 高速 ".equals( obj )){ if ( active == false){ " 高速 " ホ タンを押したとき active =!active; if ( flagstop!=1){ initdraw (); repaint(); SLEEP=10; ( ウェイトを減少 ) return true; if (" 中速 ".equals( obj )){ " 中速 " ホ タンを押したとき if ( active == false){ active =!active; if ( flagstop!=1){ initdraw (); repaint(); SLEEP=70; return true; if (" 低速 ".equals( obj )){ " 低速 " ホ タンを押したとき if ( active == false){ active =!active; if ( flagstop!=1){ initdraw (); repaint(); SLEEP=200; ( ウェイトを増加 ) return true; if (" 初期化 ".equals( obj )){ " 初期化 " ホ タンを押したとき flagstop=0; if ( active == true){ active =!active; -84-

initdraw (); return true; if (" 停止 ".equals( obj )){ " 停止 " ホ タンを押したとき flagstop=1; if ( active == true){ active =!active; initdraw(); return true; if ( evt.target instanceof Button) return false; public boolean action( Event evt, Object obj) /********** initdraw () ユーサ ー定義メソット ******************************************************/ public void initdraw (){ 初期化を行うプロシージャ int i; kai=10; x=150; y=30; oldx=150; oldy=30; for( i=0;i< 11;i++ ){ kago[] i =0; ; scrbuf.clearrect( 0,0,299,349 ); 全体クリア scrbuf.drawstring ("Copyright( C) K.Niwa 2001.12",80,330 ); 作者名 keirodraw (); youkidraw (); scrbuf.drawimage( ball,x-4,y-4,this ); パチンコ玉の描写 repaint (); public void initdraw() /********** keirodraw () ユーサ ー定義メソット ****************************************************/ public void keirodraw (){ 落下経路を描写するプロシージャ for ( k=12;k < =132;k=k+12){ scrbuf.drawline( 150+ ( k-12 ),30+( k-12 ),30+2*( k-12 ),150); for ( k=12;k < =132;k=k+12){ scrbuf.drawline( 150-( k-12 ),30+( k-12 ),270-2*( k-12 ),150); /********** keirodraw () ユーサ ー定義メソット ****************************************************/ public void youkidraw () 容器を描写するプロシージャ { for ( xx=24;xx < =264;xx=xx+24) { scrbuf.drawline( xx,310,xx,160 ); scrbuf.drawline( xx+12,310,xx+12,160 ); scrbuf.drawline( xx,310,xx+12,310 ); public class Patinko4 extends Applet implements Runnable -85-

(2) HTML リスト < HTML> < HEAD> <!------------------------------------------------------------------------------------------------------------------------------------- パチンコ玉の落下の実験 Copyright ( C) K.Niwa 2001.12.01 ---------------------------------------------------------------------------------------------------------------------------------------> < /HEAD> < BODY > < CENTER< > B > パチンコ玉の落下の実験 < /B> < BR>< BR> < APPLET CODE="Patinko5.class" WIDTH="300" HEIGHT="360" >< /APPLET> < /CENTER> < /BODY> < /HTML> 3.Java アプリケーション プログラムリスト Fパチンコ玉の落下の実験 Copyright ( C) K.Niwa 2002.08.22 ( Javaアプリケーション) import java.awt.*; import java.awt.event.*; import java.lang.math; public class FPatinko3 extends Frame implements Runnable { スレッドを使えるようにする Thread myth; Button[] mybtn; myth をスレッド型で宣言する mybtn をボタン型配列で宣言する Panel mypanel; mypanel をバネル型で宣言する int x=150,y=30,oldx,oldy; int xx; パチンコ玉のx 座標とy 座標を整数型で宣言する パチンコ玉の落下先の容器描写に使用 int yy; int k; 落下したパチンコ玉の描写に使用 パチンコ玉の経路描写に使用 int 落下開始ボタンを押したか ( 1) 否か ( 0) の判断 int y1=310,y2=310,y3=310,y4=310,y5=310,y6=310; 落下したハ チンコ玉カウントの y 座標 int y7=310,y8=310,y9=310,y10=310,y11=310; 落下したハ チンコ玉カウントの y 座標 double r; 乱数 Image myimg; イメージ型で宣言する MediaTracker mymt; メディアトラッカー型で宣言する int count; ループカウンター int Speed; パチンコ玉の落下速度 ***** public FPatinko3 () メソット ************************************************************** public FPatinko3 (){ setsize ( 300,360 ) ; フレームの大きさを設定する addwindowlistener( new WindowAdapter (){ 閉じるボタンのイベント処理 public void windowclosing( WindowEvent e){ System.exit( 0 ); ); myth=null; スレッドを初期化する -86-

if ( myth==null){ myth=new Thread( this ); スレッドを実体化する myth.start (); スレッドをスタートする パチンコ玉画像を読み込む myimg=toolkit.getdefaulttoolkit ().getimage("tama.jpg"); mymt=new MediaTracker( this ); メディアトラッカーを実体化する mymt.addimage( myimg,0 ); イメージをメディアトラッカーに貼り付ける try { 例外処理を実施する mymt.waitforid( 0 ); catch( InterruptedException e){ mybtn=new Button[ 4 ]; ボタンを実体化する mybtn[ 0 ] =new Button (" 初期化 "); ボタンを実体化する mybtn[ 1 ] =new Button (" 高速落下 "); mybtn[ 2 ] =new Button (" 低速落下 "); mybtn[ 3 ] =new Button (" 停 止 "); mypanel=new Panel (); パネルを実体化する mypanel.setlayout( new GridLayout( 1,4 )); for ( count=0;count < =3;count++ ){ パネルをグリッドレイアウトに設定する mypanel.add( mybtn[ count ]); ボタンをパネルに貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトに設定する add ("South",myPanel); バネルを南に貼り付ける mybtn[ 0 ].addactionlistener( new ActionListener (){ 初期化ボタン public void actionperformed( ActionEvent e){ x=150;y=30; y1=310;y2=310;y3=310;y4=310;y5=310;y6=310; y7=310;y8=310;y9=310;y10=310;y11=310; repaint (); ); mybtn[ 1 ].addactionlistener( new ActionListener (){ 落下高速ボタン public void actionperformed( ActionEvent e){ if( flag==0){ x=150;y=30; ); flag=1; y1=310;y2=310;y3=310;y4=310;y5=310;y6=310; y7=310;y8=310;y9=310;y10=310;y11=310; Speed=30; 高速スピード repaint (); mybtn[ 2 ].addactionlistener( new ActionListener (){ 落下低速ボタン public void actionperformed( ActionEvent e){ if( flag==0){ x=150;y=30; ); flag=2; y1=310;y2=310;y3=310;y4=310;y5=310;y6=310; y7=310;y8=310;y9=310;y10=310;y11=310; Speed=300; 低速スピード repaint (); -87-

mybtn[ 3 ].addactionlistener( new ActionListener (){ 停止ボタン public void actionperformed( ActionEvent e){ flag=3; repaint (); ); public FPatinko3() /****** public void run () メソット ************************************************************** public void run (){ while ( true ){ try{ myth.sleep( Speed ); catch ( InterruptedException e) { if ( flag==1 flag==2 ){ repaint (); [ 高速ボタン ] または [ 低速ボタン ] が押されたとき public void run() ***** public void paint( Graphics g ) メソット ****************************************************** public void paint( Graphics g){ if ( mymt.checkid( 0 )){ メディアトラッカーにイメージがちゃんと読み込めたとき [ 初期化ボタン ] を押したとき if ( flag==0){ g.clearrect( 0,0,300,360 ); 全体をクリアする g.drawstring ("Copyright( C) K.Niwa 2002.08",80,330 ); 作者名表示 for ( xx=24;xx < =264;xx=xx+24 ){ 容器を描写する g.drawline( xx,310,xx,160 ); g.drawline( xx+12,310,xx+12,160 ); g.drawline( xx,310,xx+12,310 ); g.drawimage( myimg,x-4,y-4,this ); for ( k=12;k < =132;k=k+12 ){ パチンコ玉を描写する 落下経路を描写する g.drawline( 150+ ( k-12 ),30+( k-12 ),30+2*( k-12 ),150); for ( k=12;k < =132;k=k+12){ g.drawline( 150-( k-12 ),30+( k-12 ),270-2*( k-12 ),150); else if ( flag==0) [ 高速落下ボタン ] または [ 低速落下ボタン ] を押したとき else if ( flag==1 flag==2 flag==3){ if( y< 180 && flag!=0){ if( flag==1 flag==2){ oldx=x; oldy=y; r=math.random (); if ( r< 0.5 && y< 150 ){ 右へ分岐する x=x+12; y=y+12; else if ( r > =0.5 && y< 150 ){ 左へ分岐する x=x-12; y=y+12; g.clearrect( oldx-4,oldy-4,8,8 ); パチンコ玉を消す -88-

作者名 g.drawimage( myimg,x-4,y-4,this ); パチンコ玉を描く g.drawstring ("Copyright( C) K.Niwa 2002.08",80,330 ); for ( xx=24;xx < =264;xx=xx+24 ){ 容器を描写する g.drawline( xx,310,xx,160 ); g.drawline( xx+12,310,xx+12,160 ); g.drawline( xx,310,xx+12,310 ); for ( k=12;k < =132;k=k+12 ){ 落下経路を描写する g.drawline( 150+ ( k-12 ),30+( k-12 ),30+2*( k-12 ),150); for ( k=12;k < =132;k=k+12){ g.drawline( 150-( k-12 ),30+( k-12 ),270-2*( k-12 ),150); 落下したパチンコ玉を全て描く for ( yy=300;yy > =y1;yy=yy-10){ g.drawimage( myimg,26,yy,this ); if ( y1==160){ for ( yy=300;yy > =y2;yy=yy-10){ g.drawimage( myimg,50,yy,this ); if ( y2==160){ for ( yy=300;yy > =y3;yy=yy-10){ g.drawimage( myimg,74,yy,this ); if ( y3==160){ for ( yy=300;yy > =y4;yy=yy-10){ g.drawimage( myimg,98,yy,this ); if ( y4==160){ for ( yy=300;yy > =y5;yy=yy-10){ g.drawimage( myimg,122,yy,this ); if ( y5==160){ for ( yy=300;yy > =y6;yy=yy-10){ g.drawimage( myimg,146,yy,this ); if ( y6==160){ for ( yy=300;yy > =y7;yy=yy-10){ g.drawimage( myimg,170,yy,this ); if ( y7==160){ for ( yy=300;yy > =y8;yy=yy-10){ g.drawimage( myimg,194,yy,this ); if ( y8==160){ -89-

for ( yy=300;yy > =y9;yy=yy-10){ g.drawimage( myimg,218,yy,this ); if ( y9==160){ for ( yy=300;yy > =y10;yy=yy-10){ g.drawimage( myimg,242,yy,this ); if ( y10==160){ for ( yy=300;yy > =y11;yy=yy-10){ g.drawimage( myimg,266,yy,this ); if ( y11==160){ 落下したパチンコ玉を全て描く終了 落下したパチンコ玉の描写開始 if ( y > =150){ g.clearrect( 0,0,300,310 ); 全体クリア oldx=x; oldy=y; g.clearrect( oldx-4,oldy-4,8,8 ); switch ( x ){ 落下したハ チンコ玉の y 座標カウント case 30: y1=y1-10; case 54: y2=y2-10; case 78: y3=y3-10; case 102: y4=y4-10; case 126: y5=y5-10; case 150: y6=y6-10; case 174: y7=y7-10; case 198: y8=y8-10; case 222: y9=y9-10; case 246: y10=y10-10; case 270: y11=y11-10; switch ( x) -90-

落下したパチンコ玉を全て描く for ( yy=300;yy > =y1;yy=yy-10){ g.drawimage( myimg,26,yy,this ); if ( y1==160){ for ( yy=300;yy > =y2;yy=yy-10){ g.drawimage( myimg,50,yy,this ); if ( y2==160){ for ( yy=300;yy > =y3;yy=yy-10){ g.drawimage( myimg,74,yy,this ); if ( y3==160){ for ( yy=300;yy > =y4;yy=yy-10){ g.drawimage( myimg,98,yy,this ); if ( y4==160){ for ( yy=300;yy > =y5;yy=yy-10){ g.drawimage( myimg,122,yy,this ); if ( y5==160){ for ( yy=300;yy > =y6;yy=yy-10){ g.drawimage( myimg,146,yy,this ); if ( y6==160){ for ( yy=300;yy > =y7;yy=yy-10){ g.drawimage( myimg,170,yy,this ); if ( y7==160){ for ( yy=300;yy > =y8;yy=yy-10){ g.drawimage( myimg,194,yy,this ); if ( y8==160){ for ( yy=300;yy > =y9;yy=yy-10){ g.drawimage( myimg,218,yy,this ); if ( y9==160){ for ( yy=300;yy > =y10;yy=yy-10){ g.drawimage( myimg,242,yy,this ); if ( y10==160){ -91-

for ( yy=300;yy > =y11;yy=yy-10){ g.drawimage( myimg,266,yy,this ); ----- if ( y11==160){ 落下したパチンコ玉を全て描く終了落下したパチンコ玉の描写終了 x=150;y=30; g.drawimage( myimg,x-4,y-4,this ); for ( xx=24;xx < =264;xx=xx+24 ){ 容器を描写する g.drawline( xx,310,xx,160 ); g.drawline( xx+12,310,xx+12,160 ); g.drawline( xx,310,xx+12,310 ); for ( k=12;k < =132;k=k+12 ){ 落下経路の描写 g.drawline( 150+ ( k-12 ),30+( k-12 ),30+2*( k-12 ),150); for ( k=12;k < =132;k=k+12){ g.drawline( 150-( k-12 ),30+( k-12 ),270-2*( k-12 ),150); if ( y > =150) if( y< 180 && flag!=0) else if ( flag==1 flag==2) if ( mymt.checkid( 0)) public void paint( Graphics g) /****** public static void main メソット ********************************************************** public static void main( String[] args){ Frame w=new FPatinko3 (); w.show (); public static void main( String[] args) public class FPatinko3 extends Frame implements Runnable -92-