精华内容
下载资源
问答
  • 设计一个双色球小游戏(注双色球,由6个红,和1个蓝球组成) 自选号码,从控制台输入 机选号码,随机生成注双色球 对比两注双色球,获取中奖金额 /** @Description2. 设计一个双色球小游戏(注双色球,由6...

    设计一个双色球小游戏(一注双色球,由6个红球,和1个蓝球组成)

    1. 自选号码,从控制台输入
    2. 机选号码,随机生成一注双色球
    3. 对比两注双色球,获取中奖金额
    /** @Description2. 设计一个双色球小游戏(一注双色球,由6个红球,和1个蓝球组成)
     *                      1. 自选号码,从控制台输入
     *                      2. 机选号码,随机生成一注双色球
     *                      3. 对比两注双色球,获取中奖金额
     */
    public class Test {
        public static void main(String[] args) {
            UI.start();
        }
    }
    
    import java.util.Scanner;
    
    /**
     * @Description 双色球用户交互设计
     */
    public class UI {
    
        private static Scanner scanner = new Scanner(System.in);
    
        // 开启交互
        public static void start() {
            while (true) {
                System.out.println("请输入要进行的操作:");
                System.out.println("1. 自选号码    2. 机选号码");
    
                // 声明一注双色球,作用用户的选择的双色球
                Ball ball = null;
    
                int choice = scanner.nextInt();
                if (choice == 1) {
                    // 自选号码
                    ball = getCustomBall();
                }
                else if (choice == 2) {
                    // 机选号码
                    ball = new Ball();
                }
                else {
                    continue;
                }
    
                // 生成中奖的号码
                Ball correct = new Ball();
                // 对比自己的双色球和中奖号码,得出奖项等级
                int level = correct.getTicketLevel(ball);
                // 计算中奖金额
                int money = TicketPool.getMoney(level);
                // 输出结果
                System.out.println("您的选择是: " + ball);
                System.out.println("中奖号码是: " + correct);
                if (money == 0) {
                    System.out.println("很遗憾,本期未中奖,期待下一期再接再厉!");
                }
                else {
                    System.out.println("恭喜!!! 本期中了" + level + "等奖, 中奖金额为: " + money + "元");
                }
            }
        }
    
        // 获取一注自选的双色球
        private static Ball getCustomBall() {
            // 1. 实例化一个红球数组
            int[] redBalls = new int[6];
            // 2. 循环输入
            System.out.println("请输入红球: ");
            for (int i = 0; i < redBalls.length; i++) {
                redBalls[i] = scanner.nextInt();
            }
    
            // 3. 蓝球输入
            System.out.println("请输入蓝球: ");
            int blueBall = scanner.nextInt();
    
            return new Ball(redBalls, blueBall);
        }
    }
    
    import java.util.Arrays;
    import java.util.Random;
    
    /**
     *      双色球类:
     *      属性:红球数组、蓝球数字
     *      方法:自选号码、机选号码、和另外一个双色球进行校验、对比
     */
    public class Ball {
        private int[] redBalls;     // 红球数组
        private int blueBall;       // 蓝球数字
    
        /**
         * 通过一个红球数组和一个蓝球,实例化一注双色球
         * @param redBalls 红球数组
         * @param blueBall 蓝球
         */
        public Ball(int[] redBalls, int blueBall) {
            // 1. 校验蓝色球是否在合法的范围内
            if (blueBall >= 1 && blueBall <= 16) {
                this.blueBall = blueBall;
            } else {
                System.out.println("蓝球范围超标");
                return;
            }
    
            // 2. 将红球数组中的元素都拷贝到当前的属性数组中
            this.redBalls = Arrays.copyOf(redBalls, redBalls.length);
            // 3. 将红球数组中的元素升序排列
            Arrays.sort(this.redBalls);
            // 4. 进行范围检查
            if (this.redBalls[0] < 1 || this.redBalls[5] > 33) {
                System.out.println("红球范围超标");
                this.redBalls = null;
                return;
            }
            // 5. 进行红球的重复验证
            for (int i = 0; i < this.redBalls.length - 1; i++) {
                if (this.redBalls[i] == this.redBalls[i + 1]) {
                    System.out.println("红球重复");
                    this.redBalls = null;
                    return;
                }
            }
        }
    
        /**
         * 通过无参构造,获取一注随机的双色球
         */
        public Ball() {
            // 1. 实例化一个随机数对象
            Random random = new Random();
            // 2. 准备一个存储有所有的红色球能够取到的值的数组
            int[] data = new int[33];
            for (int i = 0; i < data.length; i++) {
                data[i] = i + 1;
            }
            // 3. 实例化红球数组
            this.redBalls = new int[6];
            // 4. 填充红球数组
            for (int i = 0; i < this.redBalls.length; i++) {
                // 4.1. 从数据源中,随机生成一个下标
                int randomIndex = random.nextInt(data.length);
                // 4.2. 将这个下标的元素存入到红球数组中
                this.redBalls[i] = data[randomIndex];
                // 4.3. 将这个元素,从数据源中移除
                System.arraycopy(data, randomIndex + 1, data, randomIndex, data.length - 1 - randomIndex);
                // 4.4. 修改data的内容
                data = Arrays.copyOf(data, data.length - 1);
            }
            // 5. 红球数组排序
            Arrays.sort(this.redBalls);
            // 6. 生成随机的蓝球
            this.blueBall = random.nextInt(16) + 1;
        }
    
        @Override
        public String toString() {
            String str = "红球: ";
            // 遍历红球数组,拼接每一个数字
            for (int i = 0; i < this.redBalls.length; i++) {
                if (i < this.redBalls.length - 1) {
                    str += getNumberStr(this.redBalls[i]) + ", ";
                }
                else {
                    str += getNumberStr(this.redBalls[i]) + " ";
                }
            }
    
            // 拼接蓝球数字
            str += "蓝球: " + getNumberStr(this.blueBall);
    
            return str;
        }
    
        // 把一个数字转成字符串,如果数字不到10,往前补0
        private String getNumberStr(int number) {
            return number < 10 ? "0" + number : String.valueOf(number);
        }
    
        /**
         * 使用一注双色球,和另外一注双色球进行比对,得出中奖等级
         * @param otherBall 需要对比的双色球
         * @return 奖项等级
         */
        public int getTicketLevel(Ball otherBall) {
            // 核心点:找出两注双色球中红球和蓝球相同的数量
            int redCount = 0, blueCount = 0;
            // 计算红球的中奖数量
            for (int redBall : this.redBalls) {
                // 判断红球是否在另外一个数组中包含
                if (MyArrayTools.contains(otherBall.redBalls, redBall)) {
                    redCount++;
                }
            }
            // 计算蓝球中奖数量
            blueCount = this.blueBall == otherBall.blueBall ? 1 : 0;
    
            // 计算中奖等级
            if (redCount == 6 && blueCount == 1) {
                return 1;
            }
            else if (redCount == 6 && blueCount == 0) {
                return 2;
            }
            else if (redCount == 5 && blueCount == 1) {
                return 3;
            }
            else if (redCount + blueCount == 5) {
                return 4;
            }
            else if (redCount + blueCount == 4) {
                return 5;
            }
            else if (blueCount == 1) {
                return 6;
            }
            else {
                return 7;
            }
        }
    }
    
    /**
     * @Description 奖池
     */
    public class TicketPool {
        public static int getMoney(int level) {
            switch (level) {
                case 1: return 5000000;
                case 2: return 400000;
                case 3: return 3000;
                case 4: return 200;
                case 5: return 10;
                case 6: return 5;
    
                default: return 0;
            }
        }
    }
    
    展开全文
  • 体积和表面积计算设计”。设计一个对话框,可以输入的半径,输出体积和表面积。
  • 动画设计基础(第节)-3d max2014 自制小球下落轨迹(气球-铁球-弹球-篮球-乒乓) 各种运动轨迹比较视频 各种自制小球下落 气球 铁球 弹球 篮球 乒乓 ...

    动画设计基础(第一节)-3d max2014 自制小球下落轨迹(气球-铁球-弹球-篮球-乒乓球)

    各种球运动轨迹比较视频

    各种自制小球下落

    1. 气球
      在这里插入图片描述
      在这里插入图片描述

    2. 铁球
      在这里插入图片描述
      在这里插入图片描述

    3. 弹球
      在这里插入图片描述
      在这里插入图片描述

    4. 篮球
      在这里插入图片描述
      在这里插入图片描述

    5. 乒乓球
      在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 种球形飞行器设计及其气动特性研究,李鹏,孙汉旭,为了实现小型飞行器以任意姿态起降及保护螺旋桨的目的,提出了种新型的单桨球形飞行器结构,该飞行器同时具有空中飞行和地面行
  • 用VHDL设计一个乒乓游戏机,用开关来摸拟球手及裁判,用LED来模拟乒乓,采用每局十一赛制,比分由七段显示器显示. 采用按功能分块,将整个电路分成若干子程序,利用不同的子程序来实现记分,显示,键盘控制。
  • 本文介绍的系统是以计算能力强的DSP为所设计的新形球形机器开环控制器。  1 驱动机结构简介  种高效驱动机由电机控制器、电机、联轴器和驱动轮组成,电机输出轴用联轴器与驱动轮主轴直接联接,通过电机控制...
  • 种新型水陆两用球形机器人的设计与性能评估
  • 您想制作自己的零压气球吗? 从这里开始! 此代码将允许您为气球任务指定输入并为您的任务确定正确的气球形状。 将创建个模板来描述要切出的血块的形状。
  • 设计健身自动检验分类机,将不同直径尺寸的健身(石料)按直径分类。检测后送入各自指定位置。整个工作过程(包括进料、送料、检测、接料)自动完成。 健身直径范围为 ,要求分类机将健身按直径大小分为三类...
  • 种球形机器人远程控制系统设计,孙治伟,孙汉旭,针对目前球形机器人实用化研究较少的现状,本文设计种基于手机和互联网的球形机器人远程控制系统。首先介绍实用化球形机器人
  • 双色球的设计方案

    2021-05-29 23:29:06
    /**需求,定义个方法,设计一注双色球,个蓝色范围:1---16;六个红色范围:1-33,六个红色不能重复 * 实现:1定义个长度为7的数组. * 2.将蓝色定位数组的0索引位置,并通过随机数生成数据 * 3.剩下六个....
    package com.it.shuangSeQiu;
    
    import java.util.Random;
    
    /**需求,定义一个方法,设计一注双色球,一个蓝色球范围:1---16;六个红色球范围:1-33,六个红色球不能重复
            * 实现:1定义一个长度为7的数组.
            *      2.将蓝色球定位数组的0索引位置,并通过随机数生成数据
            *      3.剩下六个球.需要循环六次分别记录随机数,并且每次记录时候需要判断该数字是否在数组内是否已经存在
            *       如已经存在,结束本次循环,重新录入,如不存在,则录入数据,因此这里需要额外加入一个判断的方法
            *       4.最后将完整的数组数组返回给调用者.*/
    public class  qiu {
    
    
    //
        public static int[] hong(){
            int[] arr = new int[7];//1定义一个长度为7的数组.
            Random r = new Random();//引入随机数
            arr[0]=r.nextInt(16)+1;//随机数先赋值给数组0号索引位置
            for (int i = 1; i <= 6; i++) {//循环录入红色六个球的数据
                int a =r.nextInt(33)+1;
                boolean b = panduan(a, arr);//调用一个判断随机数与数组内已有红色球数据是否相同的方法,从而将相同的数据
                //丢弃,重新录入
                if (b){//这里如果返回值为true .即表示随机数与数组内已知的红色球数据均不相同,录入!
                    arr[i]=a;
                }else {
                    i--;//这里表示返回值为false,即表示随机数与数组内已经红色球存在数据相同,因此循环减1,再次重复
                    //continue结束当次循环,增加运行效率
    
                }
            }return arr;//循环完毕后即表示所有红色球数据均不重复,将该数组返回给调用者
        }
        public static boolean panduan(int a ,int[] arr){//这里增加了一个布尔类型的判断方法,用于判断
            //调用者判断数组内是否存在与随机数相同的数据, 如有的话,将返还结果false给调用者
            //如没有的话.将true返还给调用者.
            for (int i = 1; i < arr.length; i++) {
                if (a==arr[i]){//存在相同数据,直接返回false,
    
                    return false;
                }
            }return  true;//如循环一圈,都与数据不同,则返回true,也就是可以录入
        }
    
        public static void main(String[] args) {//这里主方法内进行调用
            int[] ssq = hong();//调用hong 方法,并接收返回的数组
            for (int i = 0; i < ssq.length; i++) {//遍历数组,展示每个元素
                System.out.print(ssq[i]+" ");
            }
        }
    }
    
    
    
    展开全文
  • 种全向运动球形机器人的方案设计和动力学分析,卢亮,孙汉旭,针对球型机器人普遍重心偏高与控制系统不易稳定的特性,分析了球形机器人运动与控制系统特性,设计一种具有新型结构的全向运动
  • 针对目前光学口径不断增大的空间光学遥感器对实验室辐射定标的要求,设计种使用近距离小面源照明方式定标的高亮度积分光源,并对该光源的光学参数和结构参数进行了详细设计。为了解决高亮度积分使用时的散热...
  • 针对当前网络需求的社区化和碎片化趋势,提出种基于智能Andriod系统的社区羽毛球运动管理系统。通过对系统功能需求的分析,将社区羽毛球管理系统分为社区羽毛球场馆管理、社区羽毛球指导员管理、基本信息管理、...
  • 设计一个自定义组件继承于Android.view.View的图形绘制类TestView,在该视图组件中绘制个小球;再设计一个实现监听触摸屏事件的方法onTouch(View v,MontionEvent event),该方法监听并获取触摸屏的坐标位置,并把...

    目录

    1、要求

    2、结构

    3、设计步骤

    4、实现效果


    1、要求

    设计一个自定义组件继承于Android.view.View的图形绘制类TestView,在该视图组件中绘制一个小球;再设计一个实现监听触摸屏事件的方法onTouch(View v,MontionEvent event),该方法监听并获取触摸屏的坐标位置,并把坐标值传递给图形绘制类TestView,由TestView在该位置重绘小球。

    2、结构

    3、设计步骤

    MainActivity.java

    package com.example.administrator.ex_4_4;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.MotionEvent;
    import android.view.View;
    
    
    public class MainActivity extends AppCompatActivity {
    
        TestView tView = null;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tView =(TestView)findViewById(R.id.tv1);
            tView.setOnTouchListener(new mOnTouch());
        }
        class mOnTouch implements View.OnTouchListener {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int x1, y1;
                x1 = (int) event.getX();
                y1 = (int) event.getY();
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
    
                    tView.getXY(x1,y1);
                    tView.invalidate();
                    return true;
                } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
                    tView.getXY(x1,y1);
                    tView.invalidate();
                    return true;
                }
                return tView.onTouchEvent(event);
            }
        }
    }

    TestView.java

    package com.example.administrator.ex_4_4;
    
    import android.view.View;
    import android.content.Context;
    import android.util.AttributeSet;
    import android.graphics.Color;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    
    public class TestView extends View {
        int x = 150, y = 50;
    
        public TestView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        void getXY(int _x, int _y) {
            x = _x;
            y = _y;
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            canvas.drawColor(Color.CYAN); /*设置背景为青色*/
            Paint paint = new Paint();
            paint.setAntiAlias(true); /*去锯齿*/
            paint.setColor(Color.BLACK); /*设置paint的颜色*/
            canvas.drawCircle(x, y, 30, paint); /*画一个实心圆*/
            paint.setColor(Color.WHITE);/*画一个实心圆上的小白点*/
            canvas.drawCircle(x - 9, y - 9, 6, paint);
    
    
        }
    }

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">
    
        <com.example.administrator.ex_4_4.TestView
            android:id="@+id/tv1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="24dp"
            android:layout_marginBottom="24dp" />
    
    </RelativeLayout>

    4、实现效果

    展开全文
  • 设计模式与足球(

    万次阅读 多人点赞 2012-07-01 23:45:00
    VS 意大利),作为名铁杆球迷,偶当然不会错过(请不要让我来预测比分,我不是章鱼,更何况这两个队我都非常喜欢,输赢我都很淡定,),在静候决赛的这段时间,突然萌发个想法,将设计模式跟足球联系到一起写点...
  • 本文介绍的系统是以计算能力强的DSP为核心所设计的新形球形机器开环控制器。  1 驱动机结构简介  种高效驱动机由电机控制器、电机、联轴器和驱动轮组成,电机输出轴用联轴器与驱动轮主轴直接联接,通过电机...
  • 设计一个自定义组件继承于Android.view.View的图形绘制类TestView,在该视图组件中绘制个小球:再设计一个实现监听触摸屏事件的方法onTouch(View v,MotionEvent event),该方法监听并获取触摸屏的坐标位置,并把...
  • 最近学了一些 Java 的...在网上找了一些参考资料,感觉设计的都不怎么“面向对象”,于是自己也写了个——颗小球的畅想,对原来的游戏做了一些功能的增强。目前的功能还有许多不足的地方,因此暂定为 v1.0 版本。
  • 本篇教大家如何巧用PS设计制作个质感十足的篮球!纯干货,最终完成效果灰常不错,很适合PS新手,收走学起来! 编辑:千锋UI设计 ...
  • 为了弥补市场上现有产品缺少对乒乓和羽毛球运动状态识别的现状,设计个佩戴于持球拍手腕就可以识别这两种运动中多种状态的手表。其硬件主要采用STM32F103C8T6单片机、MPU6050传感器、蓝牙串口模块。运动状态...
  • 篮球脚步移动教学设计四川省旺苍东城中学张义成年级班人数男生女生年月日指导思想和理论依据本课以体育与健康新课程标准为指导坚持以健康安全第学生发展为本激发学生的学习兴趣提高学生自主学习能力培养良好的锻
  • 介绍了种足球机器人击球系统的设计方案。设计了能够实现平射和挑射的电磁击球机构,提出了种实用型升压电路以及击球电磁铁驱动电路控制方法。通过试验对足球机器人击球系统的两种击球效果进行了分析,结果表明,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,850
精华内容 1,940
关键字:

一球设计