抽奖小程序java源代码,抽奖小程序 源码

求java小游戏源代码

表1. CheckerDrag.java

十余年的临武网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整临武建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“临武网站设计”,“临武网站推广”以来,每个客户项目都认真落实执行。

// CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盘上每个小方格的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盘的尺寸 – 包括黑色的轮廓线 final static int BOARDDIM = 8 * SQUAREDIM + 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的颜色为深绿色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖动标记 --当用户在棋子上按下鼠标按键时设为true, // 释放鼠标按键时设为false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盘左上角的左方向坐标 int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盘左上角的上方向坐标 int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的左方向坐标 int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的上方向坐标 int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的上方向位移 int rely; // Width of applet drawing area. // applet绘图区域的宽度 int width; // Height of applet drawing area. // applet绘图区域的高度 int height; // Image buffer. // 图像缓冲 Image imBuffer; // Graphics context associated with image buffer. // 图像缓冲相关联的图形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 获取applet绘图区域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 创建图像缓冲 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出图像缓冲相关联的图形背景 imG = imBuffer.getGraphics (); // Initialize checkerboard's origin, so that board is centered. // 初始化棋盘的原点,使棋盘在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1; boardy = (height - BOARDDIM) / 2 + 1; // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原点,使得棋子在第一行左数第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1; oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一个用来监听鼠标按键的按下和释放事件的鼠标监听器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 获取按键时的鼠标坐标 int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按键时如果鼠标位于可拖动的棋子上方 // (也就是contains (x, y)返回true),则保存当前 // 鼠标坐标与棋子的原点之间的距离(始终为正值)并且 // 将拖动标志设为true(用来表明正处在拖动过程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 计算棋子的中心位置 int cox = ox + CHECKERDIM / 2; int coy = oy + CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍处于棋子范围内则返回true // CHECKERDIM / 2为半径 return (cox - x) * (cox - x) + (coy - y) * (coy - y) CHECKERDIM / 2 * CHECKERDIM / 2; } public void mouseReleased (MouseEvent e) { // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 当鼠标按键被释放时,如果inDrag已经为true, // 则将其置为false(用来表明不在拖动过程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一个用来监听鼠标拖动事件的鼠标运动监听器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 计算棋子新的原点(棋子矩形的左上角) int tmpox = e.getX () - relx; int tmpoy = e.getY () - rely; // If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)没有被 // 移出棋盘,则将之前计算的原点 // (tmpox, tmpoy)赋值给永久性的原点(ox, oy), // 并且刷新显示区域(此时的棋子已经位于新坐标上) if (tmpox boardx tmpoy boardy tmpox + CHECKERDIM boardx + BOARDDIM tmpoy + CHECKERDIM boardy + BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子将要被拖动的位置上绘制棋盘 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 绘制即将被拖动的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 绘制图像缓冲的内容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 设置棋子阴影的颜色 g.setColor (Color.black); // Paint checker shadow. // 绘制棋子的阴影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 设置棋子颜色 g.setColor (Color.red); // Paint checker. // 绘制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 绘制棋盘轮廓线 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1); // Paint checkerboard. // 绘制棋盘 for (int row = 0; row 8; row++) { g.setColor (((row 1) != 0) ? darkGreen : Color.white); for (int col = 0; col 8; col++) { g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT调用了update()方法来响应拖动棋子时所调用的repaint()方法。该方法从 // Container类继承的默认实现会在调用paint()之前,将applet的绘图区域清除 // 为背景色,这种绘制之后的清除就导致了闪烁。CheckerDrag重写了update()来 // 防止背景被清除,从而消除了闪烁。 public void update (Graphics g) { paint (g); }}

如何设计一个可以电脑随机抽奖程序

为了帮助网友解决“如何设计一个可以电脑随机抽奖程序?”相关的问题,中国学网通过互联网对“如何设计一个可以电脑随机抽奖程序?”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:如何设计一个可以电脑随机抽奖程序?,具体解决方案如下:

解决方案1:

如果你是对编程一窍不通,又想快速学会做小程序的话,建议学flash+as3。因为flash本来就是动画软件,有简单易懂的界面绘制系统,不像java之类的语言需要用代码来解决界面问题。相对来说,初学者要做小程序,学这个会比较速成。

以下我列举一些你制作这个程序应该要用到的一些基本知识,你搞懂这些大概就可以做出这个程序了。不过,这样速成的学习方法,也会有弊端,我会在下面补充说明。

首先你可以熟悉一下flash的界面。为编程做准备,至少要了解库和属性面板,要了解影片剪辑或按钮。

然后应该学习一下编程的基本知识,比如变量(Variable)、数据类型(Datatype)、方法(Method)的概念,还有if、for等常见语句的用法。你可以把这些当关键词在百度搜索一下(如果直接搜搜不到相关内容,可以多加一个关键词,比如编程或as3之类的,如果中文搜不到就搜英文关键词)。

要了解一下as3的常用语法。比如声明变量、方法的语句。关于这个可以搜一下as3的var和function关键词。

最后,当你对编程有了一个大致的概念之后,你就可以着手准备你的这个小程序。

你可能需要用到的关键方法:

addEventListener() //你最可能用到的事件是MouseEvent.CLICK

Math.random()

Math.round()或Math.floor()或Math.ceil() //这三个都是可以用来数字取整的方法,有细微的不同

addChild()

因为你是初学者,即使是做这么简单的小程序,也有可能会遇到各种各样的情况。建议你一开始不要想得太复杂,把基本的效果做出来再说,否则很有可能在一些非关键的问题上屡屡碰壁,最后半途而废。而且有时因为自己想得太复杂,遇到问题连想问人都没法问,因为表达不清楚。

如果只是抽奖的程序,学会了以上这些之后,要做出来应该没有什么大问题。如果你要搞什么附加的模块,那就另当别论了——比如用户帐号、联网、界面特效等等,我列举的知识点不足以支持实现这些功能,那需要更多的学习。

那么,最后说一下这种速成学习法的弊端。

很明显的,速成=基础不扎实,这简直就是自然而然的逻辑关系。

有可能出现的结果是:学习花的时间少,但写代码的效率低,花的时间多;一旦出现错误,不知道该如何排错;跟别人交流的时候,听不懂各种术语;代码不规范,别人不好帮你修改……等等。

要解决这些问题,只有一个途径,就是系统、正规地学习编程。但是这样一来,跟你这个问题的出发点就相差十万八千里了。这就好比,本来你只是想自己做一艘船。但想做一艘正儿八经的船,而不是玩具船,不是破破烂烂的船,那就要费不少功夫。从它的材料开始,精心培育树木、采集矿物、打制零件……如此涉及到整个制船业的知识。看起来,你并没有打算走那么深。

如果我仅仅告诉你速成的学习方法,感觉上有点儿像害人。因为对于学习编程来说,这不是一个好的开始。但如果我告诉你“乖乖从基础开始学起吧”,似乎又有点儿强行替你做决定的感觉。

总而言之,现在我把两个选项都告诉你了。

从基础开始系统地学习,这样比较正规,但也比较枯燥,可能你自学了半天也做不出什么像样的东西,然后最初的那股兴趣就渐渐消失了。不过,如果是这样,flash+as3的建议就不一定合适了,或许你要仔细考虑一下职业规划什么的,再决定发展的方向——这样的话,就是比较严肃的话题了。

速成的学习法,如果你悟性好的话,能比较快地掌握一些重点的知识,对编程有一个大概的了解(但是悟性不好的话,说不定反而会搞得更烦躁),很快地做出一些小成果出来。不感兴趣的话,那就这样了。感兴趣的话,再往后发展。基础的缺乏、不良的书写代码习惯,这些也是可以后来再补充、纠正的。如果你不确定要往编程这条路上深入发展(比如打算以码农为职业),倒也可以用这种方法玩票,能走多远算多远。

解决方案2:

网赛有很多模版。没必要自己做

解决方案3:

不知道你会那些语言啊 做桌面的一般用C# Web的用J2EE 至于什么编程软件 ,,,,,建议还是自己补一补知识把,这个我不知道怎么回答你 貌似你好象什么都不知道

java 制作抽奖小程序

帮你做了一个,不知是否满意呢?

import java.applet.Applet;

import java.awt.Button;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.util.Random;

import java.util.Vector;

public class Lottery extends Applet {

private static final long serialVersionUID = 1L;

int w,h;

Button ok,out,setup;

String[] msg;

TextField[] gaiLv;

TextField[] jiangPin;

int mx,ml;

int maxNum;

Random ran;

VectorInteger fist;

VectorInteger sec;

VectorInteger third;

VectorInteger lucky;

boolean lot=false;

boolean iserr=false;

boolean issetup=false;

String mesg="输入错误";

String priseMsg="继续努力!";

public void init(){

w=400;

h=220;

mx=20;

ml=40;

ran=new Random();

this.setSize(w, h);

this.setLayout(null);

ok=new Button("抽奖");

out=new Button("退出");

setup=new Button("确认设置");

msg=new String[4];

msg[0]="一等奖";

msg[1]="二等奖";

msg[2]="三等奖";

msg[3]="幸运奖";

gaiLv=new TextField[4];

jiangPin=new TextField[4];

for(int i=0;i4;i++){

gaiLv[i]=new TextField("0.0"+(i+1));

this.add(gaiLv[i]);

gaiLv[i].setBounds(mx+ml, 75+i*26, 60, 18);

jiangPin[i]=new TextField();

this.add(jiangPin[i]);

jiangPin[i].setBounds(mx+ml*3, 75+i*26, 80, 18);

}

this.add(ok);

ok.setBounds(260, 180, 60, 28);

ok.addActionListener(new LotButtonAction(this));

this.add(out);

out.setBounds(330, 180, 60, 28);

out.addActionListener(new LotButtonAction(this));

this.add(setup);

setup.setBounds(110, 180, 80, 24);

setup.addActionListener(new LotButtonAction(this));

}

public void paint(Graphics g){

g.setColor(Color.white);

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

g.setColor(new Color(230,255,230));

g.fillRect(0, 0, w, 30);

g.setColor(Color.BLUE);

g.drawString("JAVA抽奖系统", 130, 20);

g.setColor(Color.ORANGE);

g.drawRect(10, 40, 230, 170);

g.setColor(Color.BLACK);

g.drawString("设置", mx, 60);

g.drawString("概率", mx+ml, 60);

g.drawString("奖品", mx+ml*3, 60);

for(int i=0;imsg.length;i++){

g.setColor(new Color(255-(i*30),45,89));

g.drawString(msg[i], 20, 90+i*26);

}

if(lot==true){

g.setColor(new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)));

if(priseMsg.length()=7){

g.drawString(priseMsg, 260, 100);

}else{

g.drawString(priseMsg.substring(0, 5), 260, 100);

g.drawString(priseMsg.substring(5), 260, 120);

}

}

if(iserr==true){

g.drawString(mesg, 260, 100);

}

}

public void getLucky(){

float firu=1;

float secu=1;

float thiu=1;

float fouu=1;

float minu=1;

if(gaiLv[0].getText().trim().length()1){

firu=Float.parseFloat(gaiLv[0].getText());

if(firu=0||firu=1){

iserr=true;

return;

}

if(firuminu){

minu=firu;

}

}

if(gaiLv[1].getText().trim().length()1){

secu=Float.parseFloat(gaiLv[1].getText());

if(secu=0||secu=1){

iserr=true;

return;

}

if(secuminu){

minu=secu;

}

}

if(gaiLv[2].getText().trim().length()1){

thiu=Float.parseFloat(gaiLv[2].getText());

if(thiu=0||thiu=1){

iserr=true;

return;

}

if(thiuminu){

minu=thiu;

}

}

if(gaiLv[3].getText().trim().length()1){

fouu=Float.parseFloat(gaiLv[3].getText());

if(fouu=0||fouu=1){

iserr=true;

return;

}

if(fouuminu){

minu=fouu;

}

}

if(minu=1||minu=0){

iserr=true;

return;

}

float aNum=1/minu;

maxNum=(int)aNum;

int count=(int)(firu/minu);

if(firu!=1){

fist=getLotteryVec(maxNum,count);

}else{

fist.removeAllElements();

}

count=(int)(secu/minu);

if(secu!=1){

sec=getLotteryVec(maxNum,count);

}else{

sec.removeAllElements();

}

count=(int)(thiu/minu);

if(thiu!=1){

third=getLotteryVec(maxNum,count);

}else{

third.removeAllElements();

}

count=(int)(fouu/minu);

if(fouu!=1){

lucky=getLotteryVec(maxNum,count);

}else{

lucky.removeAllElements();

}

issetup=true;

iserr=false;

}

protected VectorInteger getLotteryVec(int maxNum,int num){

VectorInteger result=new VectorInteger();

for(int i=0;inum;i++){

result.add(ran.nextInt(maxNum));

}

return result;

}

protected int getaNum(){

return ran.nextInt(maxNum);

}

public int isLucky(int pNum){

for(int i=0;ifist.size();i++){

if(fist.get(i)==pNum){

return 1;

}

}

for(int i=0;isec.size();i++){

if(sec.get(i)==pNum){

return 2;

}

}

for(int i=0;ithird.size();i++){

if(third.get(i)==pNum){

return 3;

}

}

for(int i=0;ilucky.size();i++){

if(lucky.get(i)==pNum){

return 4;

}

}

return -1;

}

public void ButtonActionPerformed(ActionEvent e){

String acName=e.getActionCommand();

if(acName.equals("抽奖")){

if(issetup==false){

priseMsg="请先设置参数!";

lot=true;

repaint();

lot=false;

return;

}

lot=true;

priseMsg=getResult(getaNum());

repaint();

// lot=false;

}else if(acName.equals("退出")){

this.setVisible(false);

this.stop();

this.destroy();

System.exit(0);

}else if(acName.equals("确认设置")){

lot=false;

getLucky();

repaint();

}

}

public String getResult(int num){

int resu=isLucky(num);

String result="";

switch(resu){

case -1:

result="继续努力!";

break;

case 1:

result="恭喜你!一等奖!\n获得"+jiangPin[0].getText();

break;

case 2:

result="恭喜你!二等奖!\n获得"+jiangPin[1].getText();

break;

case 3:

result="恭喜你!三等奖!\n获得"+jiangPin[2].getText();

break;

case 4:

result="恭喜你!幸运奖!\n获得"+jiangPin[3].getText();

break;

default:

result="继续努力!";

}

return result+num;

}

}

class LotButtonAction implements java.awt.event.ActionListener{

Lottery su;

public LotButtonAction(Lottery bun){

this.su=bun;

}

@Override

public void actionPerformed(ActionEvent e) {

su.ButtonActionPerformed(e);

}

}

一抽奖小程序,需十位学生信息,抽出一等奖1名,二等奖2名,三等奖3名

public static void main(String[] args) {

int input = 10;

Scanner s = null;

ListStudent ls = new ArrayList();

ls.add(new Student("张3", '男'));

ls.add(new Student("张4", '女'));

ls.add(new Student("张5", '男'));

ls.add(new Student("张6", '男'));

ls.add(new Student("张7", '女'));

ls.add(new Student("张8", '男'));

ListStudent lscopy = new ArrayList();

// 由于不能重复中奖,所以抽一次就要把中奖的学生移除,所以不能在原list中操作。

lscopy.addAll(ls);

while (input != 0) {

System.out.println("选择:");

System.out.println("1:一等奖");

System.out.println("2:二等奖");

System.out.println("3:三等奖");

System.out.println("0:结束");

s = new Scanner(System.in);

input = s.nextInt();

switch (input) {

case 1:

// 随机出0-9 十个数字

int first = (int) (Math.random() * (lscopy.size() - 1));

System.out.println("一等奖:" + lscopy.get(first));

// 已经中奖的移除

lscopy.remove(first);

break;

case 2:

for (int i = 0; i  2; i++) {

int second = (int) (Math.random() * (lscopy.size() - 1));

System.out.println("二等奖:" + lscopy.get(second));

lscopy.remove(second);

}

break;

case 3:

for (int i = 0; i  3; i++) {

int third = (int) (Math.random() * (lscopy.size() - 1));

System.out.println("三等奖:" + lscopy.get(third));

lscopy.remove(third);

}

break;

}

}

}

自己看着改一下,没运行过不知道有没有错,大概就是这么个意思。你自己再写个学生类

java小程序代码 抽奖 36选1共选6个还有一个是32 选一只选一个 类似双色球抽奖

//36中(1~36)选6位

for (int i = 1; i =6 ; i++)

{

int k = (int)((36-1+1)*Math.random()+1);

System.out.println(k);

if (k==0)

{

break;

}

}

//32中(1~32)选1位

int k = (int)((32-1+1)*Math.random()+1);

System.out.println(k);


本文标题:抽奖小程序java源代码,抽奖小程序 源码
文章地址:http://myzitong.com/article/heoisc.html