report6
課題
import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class report6 extends Applet{ Button btn; Checkbox c0; Checkbox c1; Checkbox c2; Label lb0; Label lb1; Label lb2; Label lb3; Label lb4; CheckboxGroup cbG; public void init() { c0 = new Checkbox("石"); c1 = new Checkbox("ハサミ"); c2 = new Checkbox("紙"); btn = new Button("ジャンケン"); lb0 = new Label("敵"); lb1 = new Label(""); //相手が何を出したかを出力 lb2 = new Label("自分"); lb3 = new Label(""); //じゃんけんの結果を出力 lb4 = new Label("対戦結果"); cbG = new CheckboxGroup(); c0.setCheckboxGroup(cbG); c1.setCheckboxGroup(cbG); c2.setCheckboxGroup(cbG); c0.setState(true); c1.setState(true); c2.setState(true); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(c0.getState() == true){ //c0(石)をチェックした場合 int i = (int) (3.0 * Math.random()); switch (i) { case 0: //相手が石のケース lb1.setText("石"); lb3.setText("あいこ"); //対戦結果にあいこを表示 break; case 1: //相手がハサミのケース lb1.setText("ハサミ"); //対戦結果に勝ちを表示 lb3.setText("勝ち"); break; case 2: //相手が紙のケース lb1.setText("紙"); lb3.setText("負け"); //対戦結果に負けを表示 break; } }else if(c1.getState() == true){ //c1(ハサミ)をチェックした場合 int i = (int) (3.0 * Math.random()); switch (i) { case 0: lb1.setText("石"); lb3.setText("負け"); break; case 1: lb1.setText("ハサミ"); lb3.setText("あいこ"); break; case 2: lb1.setText("紙"); lb3.setText("勝ち"); break; } }else if(c2.getState() == true){ //c2(紙)をチェックした場合 int i = (int) (3.0 * Math.random()); switch (i) { case 0: lb1.setText("石"); lb3.setText("勝ち"); break; case 1: lb1.setText("ハサミ"); lb3.setText("負け"); break; case 2: lb1.setText("紙"); lb3.setText("あいこ"); break; } } } }); setLayout(null); add(c0);c0.setBounds(10, 40, 60, 30); add(c1);c1.setBounds(80, 40, 60, 30); add(c2);c2.setBounds(150, 40, 60, 30); add(btn);btn.setBounds(10, 80, 100, 30); add(lb0);lb0.setBounds(10, 120, 60, 30); add(lb1);lb1.setBounds(80, 120,60,30); add(lb2);lb2.setBounds(10, 10,40,20); add(lb3);lb3.setBounds(80, 160,50,20); add(lb4);lb4.setBounds(10, 160,50,20); } } |
考察
Math.random()は0以上1未満の乱数を発生させるメソッドです。プログラムでは、"石"、"ハサミ"、"紙"の三種類が ランダムに出るようになっている。仕組みとしては、int i = (int) (3.0 * Math.random()); で3倍してるので、0以上3未満の乱数が発生し、"0,1,2,"の3種類の数がランダムに発生する。 後は、発生した数字をswitch文を使い、"0","1","2"のそれぞれの動作の指定をすればよい。
感想
やっと最後の課題まで終わりました。正直うれしいです。でも、これからは自分で勉強していきたいです。 実行結果のところですが、何度やり直しても表示されません。やり方は正しいと思うのですが。。。 スミマセン。。