• ベストアンサー

’じゃんけん’をするプログラムをつくるには?

JAVAで'じゃんけん'を3回勝負して勝ち負けを決めるゲームアプレットを作成したいのですが、 JAVA初心者の私に少し分かりづらいので、 作成経験がある方、サンプルなどのデータ提供お願いします。 結構困ってます。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

サンプルを作ってみました、多分、イメージとは異なるとは思いますが、たたき台にでもしてやってください。 for java1.5 ------------------------------------------------------------------- import java.applet.Applet; import java.awt.*; import java.awt.event.*; /* <applet code="Sample.class" width="100" height="90"></applet> */ enum JankenKind { ぐー, ちょき, ぱー }; enum JankenJudge { 勝ち, 負け, あいこ }; public class Sample extends Applet implements ActionListener { Label compSelect, msg, result; JankenButton goo, choki, par; JankenKind select; int win = 0, loose = 0; public void init(){ setLayout(new BorderLayout()); // メッセージとコンピュータの手の表示 Panel top = new Panel(); top.setLayout(new GridLayout(2,1)); msg = new Label("じゃんけんしましょう", Label.CENTER); top.add(msg); compSelect = new Label("?", Label.CENTER); top.add(compSelect); add(top, BorderLayout.NORTH); // ユーザの選ぶボタンの表示 Panel center = new Panel(); center.setLayout(new GridLayout(1,3)); goo = new JankenButton(JankenKind.ぐー); goo.addActionListener(this); center.add(goo); choki = new JankenButton(JankenKind.ちょき); choki.addActionListener(this); center.add(choki); par = new JankenButton(JankenKind.ぱー); par.addActionListener(this); center.add(par); add(center, BorderLayout.CENTER); // 対戦結果表示 result = new Label(""+win+"勝"+loose+"敗です", Label.CENTER); add(result, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e){ select = Janken.select();//コンピュータの手 compSelect.setText("私の手:"+select.toString()); JankenButton bt = (JankenButton)e.getSource();//選択した手 switch(Janken.judge(bt.kind(), select)){//判定 case 勝ち: win++; msg.setText("あなたの勝ちです"); break; case 負け: loose++; msg.setText("あなたの負けです"); break; case あいこ: msg.setText("あいこです"); break; } result.setText(""+win+"勝"+loose+"敗です"); if(win+loose == 3){//都合3戦した(あいこはノーカウント) goo.setVisible(false);//ボタンを非表示にする choki.setVisible(false); par.setVisible(false); } } } class Janken { public static JankenKind select(){ switch((int)(1+3*Math.random())){ case 1://ぐー return JankenKind.ぐー; case 2://ちょき return JankenKind.ちょき; case 3://ぱー return JankenKind.ぱー; } return null; } public static JankenJudge judge(JankenKind me, JankenKind you){ if(me == you) return JankenJudge.あいこ; else if(me == JankenKind.ぐー && you == JankenKind.ちょき || me == JankenKind.ちょき && you == JankenKind.ぱー || me == JankenKind.ぱー && you == JankenKind.ぐー) return JankenJudge.勝ち; else return JankenJudge.負け; } } class JankenButton extends Button{ protected JankenKind kind; public JankenButton(JankenKind k){ super(k.toString()); kind=k; } public JankenKind kind(){ return kind; } }

その他の回答 (1)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

とりあえず、入門書を一回読んでから始めることをお勧めします。 VisualBasicと違ってGUI系のものを作るとなると結構面倒です。 >サンプルなどのデータ提供お願いします。 java じゃんけん 等のキーワードで検索をかけると結構ソースが見つかります。 >結構困ってます。 困っていることを具体的に挙げてみてください。 抽象的な質問というのは答えにくいものです。

関連するQ&A