生成各种各样的随机数,android分享
2012-02-13 11:53
811 查看
写给跟我一样没有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的博客系统,
完全没有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的博客系统,
相关文章推荐
- Android Market 链接的生成与分享
- Android生成二维码--保存和分享二维码图片
- Android中利用Random生成随机数
- Android 后台生成长图并分享示例(非长截图)
- [开源] android apk 一键生成混淆文件 脚本分享 (python)
- win7安装python生成随机数代码分享
- Android配置文件分享和JSON数据生成与解析
- Android中利用Random生成随机数
- 史上最全的java随机数生成算法分享
- JS实现的生成随机数的4个函数分享
- Android集成微信分享功能应用签名生成方法及分享不生效的问题
- Android 生成分享长图并且添加全图水印
- Android生成随机数
- Android:生成随机数,生成10个随机数,存入sdcard中的随机生成文件中
- Android 点击生成随机数。
- 史上最全的java随机数生成算法分享(转)
- asp.net生成随机数或字母验证码代码分享
- android_生成图片分享功能实现 布局转为图片
- win7安装python生成随机数代码分享
- Android Market 链接的生成与分享