一个猜数字的小游戏 但是还没实现 请人帮我看看
游戏是:产生一个随机数(100以内)然后用户来猜猜的数和随机数来比较然后给出范围提示如随机数为50我猜40则提示40-100再猜70则提示40-70直到猜到为止我这里自己...
游戏是: 产生一个随机数(100以内)
然后用户来猜 猜的数和随机数来比较
然后给出范围提示如 随机数为 50 我猜40 则提示40-100 再猜70 则提示40-70
直到猜到为止
我这里自己写了一下 感觉思路是对了 但是运行的时候 功能没完全实现
比如我输入40 它提示40-100 但我继续输入70 则会提示0-70
代码如下 高人帮我看下
import java.awt.*;
import java.awt.event.*;
class WindowButton extends Frame implements ActionListener
{
int number;
Label 提示条;
TextField 输入框;
Button buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
setLayout(new FlowLayout());
buttonGetNumber=new Button("产生一个0-100的随机数");
add(buttonGetNumber);
buttonEnter=new Button("确定");
add(buttonEnter);
提示条=new Label("你来猜一个数到下面输入");
提示条.setBackground(Color.cyan);
add(提示条);
输入框=new TextField("00");
add(输入框);
buttonGetNumber.addActionListener(this);
buttonEnter.addActionListener(this);
setBounds(100,100,300,300);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==buttonGetNumber)
{number=(int)(Math.random()*100)+1;}
else if(e.getSource()==buttonEnter)
{ int guess=0,max=100,min=0;
int number1;
guess=Integer.parseInt(输入框.getText());
if(guess==number)
{提示条.setText("猜对了");}
if(guess<number)
{ 提示条.setText(输入框.getText()+"到"+max);
min=Integer.parseInt(输入框.getText());
}
if(guess>number)
{提示条.setText(min+"到"+输入框.getText());
max=Integer.parseInt(输入框.getText());
}
}
}
}
public class exa176
{
public static void main(String args[])
{WindowButton wb=new WindowButton("猜数字游戏");}
} 展开
然后用户来猜 猜的数和随机数来比较
然后给出范围提示如 随机数为 50 我猜40 则提示40-100 再猜70 则提示40-70
直到猜到为止
我这里自己写了一下 感觉思路是对了 但是运行的时候 功能没完全实现
比如我输入40 它提示40-100 但我继续输入70 则会提示0-70
代码如下 高人帮我看下
import java.awt.*;
import java.awt.event.*;
class WindowButton extends Frame implements ActionListener
{
int number;
Label 提示条;
TextField 输入框;
Button buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
setLayout(new FlowLayout());
buttonGetNumber=new Button("产生一个0-100的随机数");
add(buttonGetNumber);
buttonEnter=new Button("确定");
add(buttonEnter);
提示条=new Label("你来猜一个数到下面输入");
提示条.setBackground(Color.cyan);
add(提示条);
输入框=new TextField("00");
add(输入框);
buttonGetNumber.addActionListener(this);
buttonEnter.addActionListener(this);
setBounds(100,100,300,300);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==buttonGetNumber)
{number=(int)(Math.random()*100)+1;}
else if(e.getSource()==buttonEnter)
{ int guess=0,max=100,min=0;
int number1;
guess=Integer.parseInt(输入框.getText());
if(guess==number)
{提示条.setText("猜对了");}
if(guess<number)
{ 提示条.setText(输入框.getText()+"到"+max);
min=Integer.parseInt(输入框.getText());
}
if(guess>number)
{提示条.setText(min+"到"+输入框.getText());
max=Integer.parseInt(输入框.getText());
}
}
}
}
public class exa176
{
public static void main(String args[])
{WindowButton wb=new WindowButton("猜数字游戏");}
} 展开
2个回答
展开全部
一个语法理解的错误,鼠标单击事件方法actionPerformed()是在你鼠标单击的时候调用的,并产生事件源ActionEvent e,你每单击一次就调用次方法actionPerformed()同时产生事件源ActionEvent e,由于你的max和min都是在actionPerformed()方法中创建的临时存储,所以方法在结束时会被释放,在调用时会被再次创建并按照你的要求初始化即max=100,min=0,所以你要设置全局变量或者静态变量,以确保数据不会被释放,我简单的在你上面改动一点,代码如下,你要求的功能应该可以实现,在猜对后还能再次产生随机数多次猜测:
import java.awt.*;
import java.awt.event.*;
class WindowButton extends Frame implements ActionListener
{
int number;
Label 提示条;
TextField 输入框;
int min=0,max=100;
Button buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
setLayout(new FlowLayout());
buttonGetNumber=new Button("产生一个0-100的随机数");
add(buttonGetNumber);
buttonEnter=new Button("确定");
add(buttonEnter);
提示条=new Label("你来猜一个数到下面输入");
提示条.setBackground(Color.cyan);
add(提示条);
输入框=new TextField("00");
add(输入框);
buttonGetNumber.addActionListener(this);
buttonEnter.addActionListener(this);
setBounds(100,100,300,300);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==buttonGetNumber)
{number=(int)(Math.random()*100)+1;}
else if(e.getSource()==buttonEnter)
{ int guess=0;
int number1;
guess=Integer.parseInt(输入框.getText());
if(guess==number)
{ min=0;max=100;
提示条.setText("猜对了");}
if(guess<number)
{ 提示条.setText(输入框.getText()+"到"+max);
min=Integer.parseInt(输入框.getText());
}
if(guess>number)
{提示条.setText(min+"到"+输入框.getText());
max=Integer.parseInt(输入框.getText());
}
}
}
}
public class exa176
{
public static void main(String args[])
{WindowButton wb=new WindowButton("猜数字游戏");}
}
还有你的代码格式书写不规范,要养成良好的代码编写习惯,变量的属性以及方法的属性都要有显示的声明,给你看下我写的游戏的一个菜单类的书写格式,只是还没来得及写详细注释,希望对你有帮助:
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.KeyStroke;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
/*
游戏菜单类
*/
public class JMenuDemo extends JMenuBar
{
private JMenuItem item1;
private JMenuItem item2;
private JMenuItem item3;
private JMenuItem item4;
private JMenuItem item5;
private JMenuItem item6;
private JMenuItem item7;
private JMenuItem item8;
private JMenuItem item9;
public JMenuDemo()
{
add(createJMenuOne());
add(createJMenuTwo());
add(createJMenuFour());
add(createJMenuThree());
setVisible(true);
}
private JMenu createJMenuOne()
{
JMenu menu=new JMenu("游戏操作(O)");
menu.setMnemonic(KeyEvent.VK_O);
JMenuItem item=new JMenuItem("再来一次(F)",KeyEvent.VK_F);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,ActionEvent.CTRL_MASK));
item1=item;
menu.add(item);
item=new JMenuItem("增加难度(U)",KeyEvent.VK_U);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,ActionEvent.CTRL_MASK));
item2=item;
menu.add(item);
item=new JMenuItem("降低难度(D)",KeyEvent.VK_D);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));
item6=item;
menu.add(item);
return menu;
}
private JMenu createJMenuTwo()
{
JMenu menu=new JMenu("游戏信息(I)");
menu.setMnemonic(KeyEvent.VK_I);
JMenuItem item=new JMenuItem("最高得分(S)",KeyEvent.VK_S);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
item3=item;
menu.add(item);
item=new JMenuItem("挑战次数(P)",KeyEvent.VK_P);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK));
item4=item;
menu.add(item);
return menu;
}
private JMenu createJMenuThree()
{
JMenu menu=new JMenu("游戏版本(B)");
menu.setMnemonic(KeyEvent.VK_B);
JMenuItem item=new JMenuItem("关于我们(A)",KeyEvent.VK_A);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
item5=item;
menu.add(item);
return menu;
}
private JMenu createJMenuFour()
{
JMenu menu=new JMenu("音乐设置(M)");
menu.setMnemonic(KeyEvent.VK_M);
JMenuItem item=new JMenuItem("开始播放(K)",KeyEvent.VK_K);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,ActionEvent.CTRL_MASK));
item7=item;
menu.add(item);
item=new JMenuItem("循环播放(L)",KeyEvent.VK_L);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,ActionEvent.CTRL_MASK));
item8=item;
menu.add(item);
item=new JMenuItem("停止播放(N)",KeyEvent.VK_N);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
item9=item;
menu.add(item);
return menu;
}
public JMenuItem getitem(int n)
{
switch(n)
{
case 1:return item1;
case 2:return item2;
case 3:return item3;
case 4:return item4;
case 5:return item5;
case 6:return item6;
case 7:return item7;
case 8:return item8;
case 9:return item9;
default: return null;
}
}
}
import java.awt.*;
import java.awt.event.*;
class WindowButton extends Frame implements ActionListener
{
int number;
Label 提示条;
TextField 输入框;
int min=0,max=100;
Button buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
setLayout(new FlowLayout());
buttonGetNumber=new Button("产生一个0-100的随机数");
add(buttonGetNumber);
buttonEnter=new Button("确定");
add(buttonEnter);
提示条=new Label("你来猜一个数到下面输入");
提示条.setBackground(Color.cyan);
add(提示条);
输入框=new TextField("00");
add(输入框);
buttonGetNumber.addActionListener(this);
buttonEnter.addActionListener(this);
setBounds(100,100,300,300);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==buttonGetNumber)
{number=(int)(Math.random()*100)+1;}
else if(e.getSource()==buttonEnter)
{ int guess=0;
int number1;
guess=Integer.parseInt(输入框.getText());
if(guess==number)
{ min=0;max=100;
提示条.setText("猜对了");}
if(guess<number)
{ 提示条.setText(输入框.getText()+"到"+max);
min=Integer.parseInt(输入框.getText());
}
if(guess>number)
{提示条.setText(min+"到"+输入框.getText());
max=Integer.parseInt(输入框.getText());
}
}
}
}
public class exa176
{
public static void main(String args[])
{WindowButton wb=new WindowButton("猜数字游戏");}
}
还有你的代码格式书写不规范,要养成良好的代码编写习惯,变量的属性以及方法的属性都要有显示的声明,给你看下我写的游戏的一个菜单类的书写格式,只是还没来得及写详细注释,希望对你有帮助:
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.KeyStroke;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
/*
游戏菜单类
*/
public class JMenuDemo extends JMenuBar
{
private JMenuItem item1;
private JMenuItem item2;
private JMenuItem item3;
private JMenuItem item4;
private JMenuItem item5;
private JMenuItem item6;
private JMenuItem item7;
private JMenuItem item8;
private JMenuItem item9;
public JMenuDemo()
{
add(createJMenuOne());
add(createJMenuTwo());
add(createJMenuFour());
add(createJMenuThree());
setVisible(true);
}
private JMenu createJMenuOne()
{
JMenu menu=new JMenu("游戏操作(O)");
menu.setMnemonic(KeyEvent.VK_O);
JMenuItem item=new JMenuItem("再来一次(F)",KeyEvent.VK_F);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,ActionEvent.CTRL_MASK));
item1=item;
menu.add(item);
item=new JMenuItem("增加难度(U)",KeyEvent.VK_U);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,ActionEvent.CTRL_MASK));
item2=item;
menu.add(item);
item=new JMenuItem("降低难度(D)",KeyEvent.VK_D);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));
item6=item;
menu.add(item);
return menu;
}
private JMenu createJMenuTwo()
{
JMenu menu=new JMenu("游戏信息(I)");
menu.setMnemonic(KeyEvent.VK_I);
JMenuItem item=new JMenuItem("最高得分(S)",KeyEvent.VK_S);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
item3=item;
menu.add(item);
item=new JMenuItem("挑战次数(P)",KeyEvent.VK_P);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK));
item4=item;
menu.add(item);
return menu;
}
private JMenu createJMenuThree()
{
JMenu menu=new JMenu("游戏版本(B)");
menu.setMnemonic(KeyEvent.VK_B);
JMenuItem item=new JMenuItem("关于我们(A)",KeyEvent.VK_A);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
item5=item;
menu.add(item);
return menu;
}
private JMenu createJMenuFour()
{
JMenu menu=new JMenu("音乐设置(M)");
menu.setMnemonic(KeyEvent.VK_M);
JMenuItem item=new JMenuItem("开始播放(K)",KeyEvent.VK_K);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,ActionEvent.CTRL_MASK));
item7=item;
menu.add(item);
item=new JMenuItem("循环播放(L)",KeyEvent.VK_L);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,ActionEvent.CTRL_MASK));
item8=item;
menu.add(item);
item=new JMenuItem("停止播放(N)",KeyEvent.VK_N);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
item9=item;
menu.add(item);
return menu;
}
public JMenuItem getitem(int n)
{
switch(n)
{
case 1:return item1;
case 2:return item2;
case 3:return item3;
case 4:return item4;
case 5:return item5;
case 6:return item6;
case 7:return item7;
case 8:return item8;
case 9:return item9;
default: return null;
}
}
}
哎呦互动
2024-07-12 广告
2024-07-12 广告
我们的抽奖互动游戏软件专为提升活动现场氛围与参与度设计。软件界面简洁直观,操作便捷,支持多种抽奖方式,满足不同活动需求。通过随机算法确保公正公平,实时展示中奖结果,增强活动透明度。此外,软件还支持自定义奖项设置和个性化界面定制,让您的活动更...
点击进入详情页
本回答由哎呦互动提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询