猜数游戏,也用Python做过的。
这么简单的东西,就不写文档了吧……
几个问题:
1. 弹窗用JOptionPane类(包?)里面的show×××××方法,名字很好懂,打了show看输入提示就知道自己需要哪个,这个程序里用了两个,之后用用别的。
2. 弹窗有两种用法,拿showInputDialog()举例,括号里接收几个参数,
第一个参数叫parent component,似乎是决定框架样式的,用null做值的话会提供一个默认框架。
第二个参数是窗口显示的内容,像是“你确定要退出吗?”这类句子呆着的地方。
第三个是窗口标题,和第二个一样,都是接受字符串。
第四个决定窗口面板上显示的图标,如果不用的话输入JOptionPane.PLAIN_MESSAGE,其他的比如感叹号用warning message,问号用question message,用到的时候再看也可以,不过要记得输入前面的JOptionPane和点,不然报看不懂的错,另外变量名要大写加下划线。
3. 上边说的是第一种用法,如果不需要那么麻烦的话两个参数就够,第一个和第二个,它会提供默认标题,但是如果你自己指定了标题,那就必须要给定第四个参数message type,不给报错。
4. 关于检测输入内容,因为Java的变量必须要声明,所以连你自己都不知道变量类型的时候你就蛋疼了,对我就蛋疼过,搞不好之后还要疼几次。
这个程序里用的方法是百度来的,先把输入内容存成兼容性最强的String,然后见第23行,用ismatch方法加上正则表达式来检测。
不过简单的时候可以这样,什么时候我要检查一下输入的是不是byte或者float什么的我就傻逼了。
对了正则表达式里的反斜杠记得转义,因为这里需要的只是字符串形式的表达式,不是要直接用。
5. 排版真难看,什么时候学学别人的。
1 package NumberGuessing; 2 3 import java.util.Random; 4 import javax.swing.JOptionPane; 5 6 public class Run { 7 public static void main(String[] args) { 8 9 //生成100以下随机数。 10 Random generator = new Random(); 11 int number = generator.nextInt(100); 12 13 int count = 0; 14 int guess = 0; 15 String message = "嗟,来猜(0-100):"; 16 17 while (count < 6) { 18 19 //接收玩家猜测内容。 20 String temp = JOptionPane.showInputDialog(null, message ,"猜!第" + (count+1) + "次!", JOptionPane.WARNING_MESSAGE); 21 22 //判断输入类型,如果是空值或者非数字就continue掉。 23 if (temp.length() == 0 || !temp.matches("\d*")) { 24 JOptionPane.showMessageDialog(null, "输!数!字!"); 25 continue; 26 } 27 28 //输入的内容是String,用Integer类里的方法解析成int格式。 29 guess = Integer.parseInt(temp); 30 31 //if语句判断输入正误。 32 if (guess == number) { 33 JOptionPane.showMessageDialog(null, "居然猜中了,怎么可能,啊啊啊啊啊卡卡罗特你算计我!!!", "hehe",JOptionPane.WARNING_MESSAGE); 34 break; 35 } else if (guess > number) { 36 message = "大了!再猜!"; 37 } else { 38 message = "小了!再猜!"; 39 } 40 41 count++; 42 43 //猜测次数用光,弹窗嘲讽。 44 if (count == 6) { 45 JOptionPane.showMessageDialog(null, "嘿嘿你猜不着", "有没有觉得智商受到了挑战", JOptionPane.PLAIN_MESSAGE); 46 break; 47 } 48 } 49 } 50 }