使用高级用户界面技术开发的简单的猜数字游戏:随机生成一个0-50之间的数字,如果用户输入的数字大于实际的数字则显示“大了”,如果输入的数字小了,则显示“小了”,如果相等则显示“佩服佩服”。
游戏源代码如下:
//文件名:CaiMIDlet.java package caichuzi; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class CaiMIDlet extends MIDlet { static CaiMIDlet instance; CaiForm displayable = new CaiForm(this); public CaiMIDlet() { instance = this; } public void startApp() { Display.getDisplay(this).setCurrent(displayable); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public static void quitApp() { instance.destroyApp(true); instance.notifyDestroyed(); instance = null; } } //文件名:CaiForm.java package caichuzi; import javax.microedition.lcdui.*; import java.util.*; public class CaiForm extends Form implements CommandListener { CaiMIDlet caiMIDlet; /**提交按钮*/ Command cmdCommit; /**退出*/ Command cmdExit; /**数字输入框*/ TextField tfNumber; /**随机对象*/ Random rd; /**随机数字*/ int randomNumber; /**标志是否是第一个运行游戏*/ boolean flag; public CaiForm(CaiMIDlet caiMIDlet) { super("猜数字"); this.caiMIDlet = caiMIDlet; tfNumber = new TextField("请输入0-50之间的数字", "", 25, TextField.NUMERIC); cmdCommit = new Command("提交", Command.OK, 1); cmdExit = new Command("退出", Command.EXIT, 1); append(tfNumber); addCommand(cmdCommit); addCommand(cmdExit); rd = new Random(); randomNumber = rd.nextInt(50); //标志游戏第一次运行 flag = true; this.setCommandListener(this); } public void commandAction(Command command, Displayable displayable) { //退出按钮 if (command == cmdExit) { // stop the MIDlet CaiMIDlet.quitApp(); } //提交按钮 if (command == cmdCommit) { //获得输入 String input = tfNumber.getString(); //转换成数字 int temp = Integer.parseInt(input); Alert alert = new Alert("猜数字", "", null, AlertType.INFO); alert.setTimeout(3000); //根据输入显示提示信息 if (temp > randomNumber) { alert.setString("大了,笨蛋!"); Display.getDisplay(caiMIDlet).setCurrent(alert); } if (temp == randomNumber) { alert.setString("佩服佩服!"); Display.getDisplay(caiMIDlet).setCurrent(alert); } if (temp < randomNumber) { alert.setString("小了,笨蛋!"); Display.getDisplay(caiMIDlet).setCurrent(alert); } } } }