生成各种各样的随机数,android分享

写给跟我一样没有java基础的童鞋们。。。。。
完全没有java基础,泪目,学习完来分享一下

安卓 上生成各种各样的随机数

r1是随机数生成器中不断用  random.nextInt(), 取值
r2是一般的0~100之间
r3是0~指定上限
r4是指定上下限:
r4=(int) Math.round(Math.random()*(rMax-rMin)+rMin);

然后d系列是因为以前玩DND的时候,需要很多色子(4~100),所以做了个这个,只要绑个按钮上去控制就可以直接用了,,,
不得不说,我很习惯这种 【 d4=r2%4+1;】, 取模的做法,唯一记得高中学的东西了。。。。
昨天打算尝试小球重力模拟,结果发现物理全部还给老师了,再次泪目。。。。


代码很简单,新手向的分享。。。。


package sam.sucl;

import java.util.Random;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Display;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.Window;
import android.view.WindowManager;


public class Zahui extends Activity{
        App app=null;
        public void onCreate(Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
                Display display=getWindowManager().getDefaultDisplay();
                app=new App(this, display.getWidth(), display.getHeight());
                setContentView(app);
        }
        
        private class App extends SurfaceView implements Callback,Runnable {
                private Context mContext=null;
                private int mScreenWidth=0;
                private int mScreenHeight=0;
                
                private Canvas canvas=null;
                private Paint paint=null;
                private SurfaceHolder surfaceHolder=null;
                
                private Thread mThread=null;
                private boolean isRunning=false;
                
                Random random=new Random();
                private int r1=0;
                private int r2=0;
                private int r3=0;
                private int r4=0;
                private int rMin=0;
                private int rMax=0;
                
                private int d4=0;
                private int d6=0;
                private int d8=0;
                private int d10=0;
                private int d12=0;
                private int d20=0;
                
                public App(Context context, int width, int height) {
                        super(context);
                        mScreenWidth=width;
                        mScreenHeight=height;                        
                        
                        mContext=context;
                        canvas=new Canvas();
                        paint=new Paint();
                        paint.setColor(Color.WHITE);
                        
                        surfaceHolder=getHolder();
                        surfaceHolder.addCallback(this);
                        
                        
                        rMin=29;
                        rMax=66;
                }
                
                public void draw(){
                        r1=random.nextInt();
                        r2=(int) (Math.random()*100);
                        r3=(int)(Math.random()*rMin);
                        r4=(int) Math.round(Math.random()*(rMax-rMin)+rMin);
                        
                        d4=r2%4+1;
                        d6=r2%6+1;
                        d8=r2%8+1;
                        d10=r2%10+1;
                        d12=r2%12+1;
                        d20=r2%20+1;
                        
                        canvas.drawColor(Color.BLACK);
                        
                                        canvas.drawText("宽:"+mScreenWidth, 20, 20, paint);
                                        canvas.drawText("高:"+mScreenHeight, 20, 40, paint);
                                        
                        canvas.drawText("随机数生成示范:", 20, 60, paint);                
                        canvas.drawText("随机数r1:"+r1, 20, 80, paint);        
                        canvas.drawText("随机数r2:"+r2, 20, 100, paint);        
                        
                        canvas.drawText("四面骰子:"+d4, 20, 120, paint);
                        canvas.drawText("六面骰子:"+d6, 20, 140, paint);
                        canvas.drawText("八面骰子:"+d8, 20, 160, paint);
                        canvas.drawText("十面骰子:"+d10, 20, 180, paint);
                        canvas.drawText("十二面骰子:"+d12, 20, 200, paint);
                        canvas.drawText("二十面骰子:"+d20, 20, 220, paint);
                        
                        canvas.drawText("rMin:"+rMin+" , rMax:"+rMax, 20, 260, paint);        
                        canvas.drawText("取0~ra之间的随机数的随机数:"+r3, 20, 280, paint);        
                        canvas.drawText("取指定范围的随机数:"+rMin+"-"+rMax+"之间", 20, 300, paint);        
                        canvas.drawText("随机数为:"+r4, 20, 320, paint);        
                }
                
                public void run(){
                        while (isRunning) {
                                synchronized (surfaceHolder) {
                                        canvas=surfaceHolder.lockCanvas();
                                        draw();
                                        surfaceHolder.unlockCanvasAndPost(canvas);
                                }
                                try {
                                        Thread.sleep(200);
                                } catch (InterruptedException e) {
                                        e.printStackTrace();
                                }
                        }
                }
                
                public void surfaceChanged(SurfaceHolder holder,int arg1,int arg2,int arg3){
                        
                }
                public void surfaceCreated(SurfaceHolder surfaceHolder){
                        isRunning=true;
                        mThread=new Thread(this);
                        mThread.start();
                }
                public void surfaceDestroyed(SurfaceHolder surfaceHolder){
                        isRunning=false;
                }
        }
}

此前发在安卓巴士的,现在转过来,顺手试试CSDN的博客系统,


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值