求各位大佬指点指点小女子吧!图片是利用随机数产生数字,而数字和图片的路径名保持一致,如何点击不同的按钮画出图片?

吴溪啊 2020-06-18 08:02:36
现在想做一个猜拳小游戏,三局两胜,界面中有三个按钮,点第一个按钮,会随机画出两张图片,并根据规则在界面上对胜出方分数增加1,三局过后再将之前的分数作比较得结果。


点击round 1 ,产生两张图片,根据规则,胜出方分数增加或是平局。

现在存在的问题是,我不知道怎么才能够点击round 1再生成图片,并且根据规则比较,分数增加??在点击round 2 重新生成图片,。。。
我不知道咋样能把下面的组合起来??

下面是规则的代码块
if(j.index==1&&w.index==1) {
JOptionPane.showMessageDialog(null,"此局平局");
}
if(j.index==1&&w.index==2) {
j.score++;
JOptionPane.showMessageDialog(null,"此局机兄胜出");
}
if(j.index==1&&w.index==3) {
w.score++;
JOptionPane.showMessageDialog(null,"此局魏兄胜出");
}
if(j.index==2&&w.index==1) {
w.score++;
JOptionPane.showMessageDialog(null,"此局魏兄胜出");
}
if(j.index==2&&w.index==2) {
JOptionPane.showMessageDialog(null,"此局平局");
}
if(j.index==2&&w.index==3) {
j.score++;
JOptionPane.showMessageDialog(null,"此局机兄胜出");
}
if(j.index==3&&w.index==1) {
j.score++;
JOptionPane.showMessageDialog(null,"此局机兄胜出");
}
if(j.index==3&&w.index==2) {
w.score++;
JOptionPane.showMessageDialog(null,"此局魏兄胜出");
}
if(j.index==3&&w.index==3) {
JOptionPane.showMessageDialog(null,"此局平局");
}


事件监视器的代码
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==play01) {

judge();

}


if(e.getSource()==play02) {

judge();

}

if(e.getSource()==play03) {
judge();
}


}


画图的
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
g.setColor(Color.BLACK);
g.setFont(new Font("楷体",Font.BOLD,30));


g.drawImage(j.img, j.x, j.y,j.w,j.h, null);
g.drawImage(w.img, w.x, w.y,w.w,w.h, null);
g.drawString("机兄分数:"+j.score, 250, 300);
g.drawString("魏兄分数:"+w.score, 850, 300);
}

...全文
112 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
引用 8 楼 qq_39936465的回复:
上面说错了,应该是大于3 初始化
嗯嗯好的呢,哎,我突然发现给我指导的是两位大佬,您是另一位谢谢您,非常感谢
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
奥奥,我明白您的意思了,就是只做一个按钮,当按过一次后,自动成为round 2,再round3,到了3之后,清零继续。而我是做了三个按钮,谢谢您,对了,我把我的这个界面的代码又发了个帖子,有点问题,如果您有空麻烦您帮忙看看,哎都是大学生,你太厉害了👍👍
qq_39936465 2020-06-18
  • 打赏
  • 举报
回复
上面说错了,应该是大于3 初始化
qq_39936465 2020-06-18
  • 打赏
  • 举报
回复
引用 6 楼 吴溪啊 的回复:
您说的这个比分问题,我是用index一块来做的,用了score++,根据规则比较三次,最后再判断一次总分
我说的和index变量没冲突,你图片数字和index值应该是一致的,随机数直接赋值给index变量。 按键可以只做一个,初始名称为round1,添加一个计数器初始值为1,按过一次后计数器加1并更新按键名称,名称根据count值来判断,当count=3 按键初始化。
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
引用 4 楼 qq_39936465的回复:
[quote=引用 楼主 吴溪啊 的回复:] 现在想做一个猜拳小游戏,三局两胜,界面中有三个按钮,点第一个按钮,会随机画出两张图片,并根据规则在界面上对胜出方分数增加1,三局过后再将之前的分数作比较得结果。
可以给按键添加一个标志位,没按过为true,按过为false。 监视器触发判断标志位为true,执行2次随机数1-3,标志位改为fasle,获取图片判断胜负计算的分,然后重新绘制,repaint。按键监视器追加一个判断3按键标志位都为false,得出最后比分,重置标志位[/quote] 您说的这个比分问题,我是用index一块来做的,用了score++,根据规则比较三次,最后再判断一次总分
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
引用 4 楼 qq_39936465的回复:
[quote=引用 楼主 吴溪啊 的回复:] 现在想做一个猜拳小游戏,三局两胜,界面中有三个按钮,点第一个按钮,会随机画出两张图片,并根据规则在界面上对胜出方分数增加1,三局过后再将之前的分数作比较得结果。
可以给按键添加一个标志位,没按过为true,按过为false。 监视器触发判断标志位为true,执行2次随机数1-3,标志位改为fasle,获取图片判断胜负计算的分,然后重新绘制,repaint。按键监视器追加一个判断3按键标志位都为false,得出最后比分,重置标志位[/quote] 我做好了😭,但是您说的刚好可以修改我游戏的漏洞,我的按钮可以反复按,按过的还能按哈哈哈,不过我虽然代码可以执行,但是还是有错
qq_39936465 2020-06-18
  • 打赏
  • 举报
回复
引用 楼主 吴溪啊 的回复:
现在想做一个猜拳小游戏,三局两胜,界面中有三个按钮,点第一个按钮,会随机画出两张图片,并根据规则在界面上对胜出方分数增加1,三局过后再将之前的分数作比较得结果。
可以给按键添加一个标志位,没按过为true,按过为false。 监视器触发判断标志位为true,执行2次随机数1-3,标志位改为fasle,获取图片判断胜负计算的分,然后重新绘制,repaint。按键监视器追加一个判断3按键标志位都为false,得出最后比分,重置标志位
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
引用 1 楼 sunyiz的回复:
首先,你的 img 应该是和 index 有关的,所以应该是个数组或者hashmap
你取图片时应该类似于这样 j.img[j.index-1] w.img[w.index-1]

然后你在 judge() 方法开头给 j.index 和 w.index 赋随机值
类似于这样:
Random ran = new Random();
j.index = ran.nextInt(3) + 1;
w.index = ran.nextInt(3) + 1;

最后,在 judge() 方法的最后调用 repaint(); 方法,重绘面板
我和您的想法差不多,但是,我不知道咋回事,我一直有问题,请问可以请教一下您么,我把我的代码发您
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
我和您的想法差不多,但是,我不知道咋回事,我一直有问题,请问可以请教一下您么,我把我的代码发您
sunyiz 2020-06-18
  • 打赏
  • 举报
回复
首先,你的 img 应该是和 index 有关的,所以应该是个数组或者hashmap
你取图片时应该类似于这样 j.img[j.index-1] w.img[w.index-1]

然后你在 judge() 方法开头给 j.index 和 w.index 赋随机值
类似于这样:
Random ran = new Random();
j.index = ran.nextInt(3) + 1;
w.index = ran.nextInt(3) + 1;

最后,在 judge() 方法的最后调用 repaint(); 方法,重绘面板
吴溪啊 2020-06-18
  • 打赏
  • 举报
回复
引用 7 楼 qq_39936465的回复:
[quote=引用 6 楼 吴溪啊 的回复:] 您说的这个比分问题,我是用index一块来做的,用了score++,根据规则比较三次,最后再判断一次总分
我说的和index变量没冲突,你图片数字和index值应该是一致的,随机数直接赋值给index变量。 按键可以只做一个,初始名称为round1,添加一个计数器初始值为1,按过一次后计数器加1并更新按键名称,名称根据count值来判断,当count=3 按键初始化。[/quote] 奥奥,我明白您的意思了,就是只做一个按钮,当按过一次后,自动成为round 2,再round3,到了3之后,清零继续。而我是做了三个按钮,谢谢您,对了,我把我的这个界面的代码又发了个帖子,有点问题,如果您有空麻烦您帮忙看看吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧