Java课程设计—拿火柴小游戏
2017-03-08 13:14
1081 查看
这是我的Java课程设计,做的是拿火柴小游戏。要求是人机互拿火柴,拿到最后一根火柴者赢。最主要的就是处理好多线程,其他的就是添加组件啥的,那个不难,我就给出以下多线程的代码吧。
ComputerTake
这个就是我运行时的界面。
import java.util.*; import java.util.Random; import javax.swing.*; /** * 实现线程功能的类 * @author zhangyubo * */ public class ComputerTake extends TimerTask{ //继承TimeTask类使自己也具有线程功能 private JLabel operator1_message; //电脑或玩家1提示框 private JLabel leftMatch; //剩余火柴数 private JLabel hard_message; //末日难度提示框 private JLabel comob_message; //电脑发动连击提示框 private JButton choose4; //玩家2端拿1根火柴按钮 private JButton choose5; //玩家2端拿2根火柴按钮 private JButton choose6; //玩家2端拿3根火柴按钮 private Random random; //随机值变量 private int number; //随机值 private int probability; //电脑发动连击时的概率 /** * 获取WindowActionEvent中的按钮 * @param t 按钮 */ ComputerTake(JButton...t){ choose4=t[0]; choose5=t[1]; choose6=t[2]; } /** * 获取WindowActionEvent中的标签 * @param t 标签 */ public void setMessage(JLabel...t){ operator1_message=t[0]; leftMatch=t[1]; hard_message=t[2]; comob_message=t[3]; } public void run(){ random=new Random(); //创建随机值 Dispose.number=random.nextInt(3)+1; //随机得到1-3的值并赋给Dispose的类变量number operator1_message.setText("电脑取走了"+Dispose.number+"根火柴"); //输出电脑拿走的火柴数 Dispose.randomNumber=Dispose.randomNumber-Dispose.number; //计算剩余火柴数 if(Dispose.randomNumber<=3&&Dispose.game_level==1)//如果火柴数小于4并且在末日人机游戏难度下 { probability=random.nextInt(6)+1; //产生1-6的随机数 if(probability>=3) //如果随机数大于2,电脑发动连击 { Dispose.number=random.nextInt(3)+1; //产生1-3的随机数 comob_message.setText("电脑发动了连击并多拿了"+Dispose.number+"根火柴!"); //输出电脑发动了连击 Dispose.randomNumber=Dispose.randomNumber-Dispose.number; //计算出剩余火柴数 } } if(Dispose.randomNumber<=0){ //如果当前火柴数已为0 leftMatch.setText("当前还剩下0根火柴"); //输出当前还剩下0根火柴 JOptionPane.showMessageDialog(null, "Computer is the winner"); //弹出消息框 choose4.setEnabled(false); //设置choose4不可用 choose5.setEnabled(false); //设置choose5不可用 choose6.setEnabled(false); //设置choose6不可用 } else{ //如果当前火柴数不为0 leftMatch.setText("当前还剩下"+Dispose.randomNumber+"根火柴"); //输出剩余火柴数 choose4.setEnabled(true); //设置choose4可用 choose5.setEnabled(true); //设置choose5可用 choose6.setEnabled(true); //设置choose6可用 if(Dispose.game_level==1) //如果为末日人机难度 { number=random.nextInt(3)+1; //随机产生1-3的随机数 if(number==1) choose4.setEnabled(false); //如果为1,按钮1不可用 if(number==2) choose5.setEnabled(false); //如果为2,按钮2不可用 if(number==3) choose6.setEnabled(false); //如果为3,按钮3不可用 if(number==1) hard_message.setText("<html><body>感受到被末日人机支<br>配的恐惧了" + "吗?此次<br>您不可以选择拿走 1<br>根火柴!</body></html>"); if(number==2) hard_message.setText("<html><body>感受到被末日人机支<br>配的恐惧了" + "吗?此次<br>您不可以选择拿走 2<br>根火柴!</body></html>"); if(number==3) hard_message.setText("<html><body>感受到被末日人机支<br>配的恐惧了" + "吗?此次<br>您不可以选择拿走 3<br>根火柴!</body></html>"); //使用html输出文本 } } } }
ComputerTake
这个就是我运行时的界面。
相关文章推荐
- JAVA课程设计——“小羊吃蓝莓”小游戏
- [置顶] JAVA课程设计——华容道小游戏
- JAVA课程设计——“小羊吃蓝莓”小游戏
- Java 课程设计 "Give it up"小游戏(团队)
- Java数据结构课程设计 利用栈,将十进制数转换成八进制的数
- Java数据结构课程设计 设计一个算法模拟病人等候就诊的过程
- Java课程设计题目
- JAVA的一些课程设计题目
- Java 小例子:图书馆课程设计
- [Java]数据结构课程设计:迷宫老鼠2.0(完整项目代码与设计报告)
- Java课程设计之学习成绩管理系统
- Java课程设计题目
- java课程设计(计算器)
- java课程设计源码(游戏:急速生存)
- java课程设计源码(游戏:急速生存)
- Java数据结构课程设计 学生成绩管理
- JAVA数据库课程设计的一些经验感想
- java小游戏基础设计参考代码
- Java课程设计 大整数类 实现加法
- (总结)JAVA课程设计报告:记事本的设计与实现