抽奖小程序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源代码,抽奖小程序 源码
文章URL:https://www.cdcxhl.com/article32/heoisc.html

成都网站建设公司_创新互联,为您提供营销型网站建设搜索引擎优化网站排名关键词优化手机网站建设微信公众号

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设