Java双色球机选程序(使用Canvas) - 1

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Command; 

import javax.microedition.lcdui.CommandListener; 

import javax.microedition.lcdui.Display; 

import javax.microedition.lcdui.Displayable; 

import javax.microedition.lcdui.Graphics; 

public class ShuangSeQiu6 extends MIDlet implements CommandListener  {

private MyCanvas2 myCanvas;

private Display disp; // 引用MIDletDisplay 对象 

private Command cmdExit; // 设定按钮用于退出MIDlet 

private Command cmdOK; // 确定按钮 

private MyCalc myCalc;

public ShuangSeQiu6() {

super();

//---

disp = Display.getDisplay(this); // 获得当前MIDletDisplay对象,以便进行界面显示

//---

myCanvas = new MyCanvas2();

//---

cmdOK = new Command("生成", Command.OK, 1); 

cmdExit = new Command("退出", Command.EXIT, 1); // 新建两个控制按钮 

//---

myCanvas.addCommand(cmdOK); 

myCanvas.addCommand(cmdExit); // 添加控制按钮 

myCanvas.setCommandListener(this); // 开始侦听命令 

//---

myCalc = new MyCalc();

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

// TODO Auto-generated method stub

}

protected void pauseApp() {

// TODO Auto-generated method stub

}

protected void startApp(){

disp.setCurrent(myCanvas);

}

public void commandAction(Command arg0, Displayable arg1)  

if (arg0 == cmdExit) { // 按下退出键时停止运行 

try {

destroyApp(false);

} catch (MIDletStateChangeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

notifyDestroyed(); 

} else if (arg0 == cmdOK) { // 按下阅读键后阅读对应信息 

myCanvas.myMessage = myCalc.getSSQ();

myCanvas.repaint();

}

class MyCanvas2 extends Canvas{

    private MyFont myFont;    

    public String myMessage; 

public MyCanvas2() {

super();

//---

myFont = new MyFont_35(this);

if (! myFont.checkFont())

{

myFont = new MyFont_25(this);

if (! myFont.checkFont())

{

myFont = new MyFont_16(this);

if (! myFont.checkFont())

        myFont = new MyFont_D(this); 

}

}

private void clearRect(Graphics grap){

grap.setColor(255,255,255);

grap.fillRect(0,0,this.getWidth(),this.getHeight());

}

protected void paint(Graphics grap){

clearRect(grap);

//---    

myFont.drawString(grap,myMessage);

}

}

 

import java.util.Random;

public class MyCalc {

private final Random random_R = new Random();

private final Random random_B = new Random();

int[] items_R = new int[33 + 1];  

int item_B;  

    private String FormatEx(int v){

     if (v < 10){

     return "0" + v;

     }

     else{

     return "" + v;

     }    

    }  

    

public int getRandomInt(Random random,int v){

        random.setSeed(System.currentTimeMillis()); 

        return Math.abs(random.nextInt()) % v + 1;  //产生1v之间的随机数 

        //---

        //return random.nextInt(v);

}

    public String getSSQ() {

        //---初始化

     int itemCount = 0;

     int i;

        for (i = 1; i < items_R.length; i++) {  

         items_R[i] = 0; 

         itemCount++;  

        }  

        //---选择红球

        int counter = 0;  

        int id;

        int index;

        while (true) {         

         id = getRandomInt(random_R,itemCount);

         if (id == 0) {  

                continue;  

            }    

         //---

         index = 0;

            for (i = 1; i < items_R.length; i++) {  

             if (items_R[i] == 0)

             index++;  

             if (index == id){

             items_R[i] = 1;

             break;

             }

            }              

         itemCount--;

         //---

         counter++;  

            if (counter == 6)  

                break;        

        }

        //---选择蓝球

        while (true) {         

         item_B = getRandomInt(random_B,16);

         if (item_B != 0) 

         break;        

        }

        //---输出结果

        StringBuffer strResult = new StringBuffer(); 

        for (i = 1; i < items_R.length; i++) {  

         if (items_R[i] == 1){

                strResult.append(FormatEx(i));  

                strResult.append(",");  

         }

        }   

        strResult.deleteCharAt(strResult.length() - 1);

        //---

        strResult.append("+");       

        strResult.append(FormatEx(item_B));  

        //---        

        return strResult.toString();      

    }   

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值