黑客技术群

黑客入侵,黑客基地,黑客组织,网站黑客,黑客平台

java游戏编程小游戏代码(java游戏编程小游戏代码怎么用)

本文目录一览:

谁有Java 游戏编程开发教程这本书二人麻将游戏源代码或这本书的电子版

String []mapimg={"source/font.png","source/ks.jpg","source/1.jpg","source/2.png",

"source/3.jpg","source/youknow.jpg","fight/js.jpg","fight/js1.jpg"};

//获得工具包

Toolkit tool=Toolkit.getDefaultToolkit()

//开始图片

Image startimg;

//背景图片

Image bjimg,fontimg;

//画开始界面

public void drawstart(Graphics g){

startimg=tool.getImage(mapimg[1]);

g.drawImage(startimg, 0, 0, frame.getWidth(), frame.getHeight(), frame);

fontimg=tool.getImage(mapimg[0]);

g.drawImage(fontimg, 20, 30, frame);

};

这是我以前做的一个很简单的游戏中的几行代码,对你的问题,你要手动选择图片,那做个文件选择器,把图片路径作为方法参数传进去就ok了

java游戏编程1A2B是一款十分经典的猜数字游戏,每局开始,计算机都会随机生成四个数字?

package com.test;

import java.util.Random;

import java.util.Scanner;

/**

* 我的测试类

*

* @author 刘逸晖

*

*/

public class MyTest {

/**

* 生成不同的正整数随机数,返回字符串数组

*

* @param count

* 需要生成随机数的数量

* @param max

* 随机数的最大值

* @param min

* 随机数的最小值

* @return 生成的随机数

*/

private static String[] generateRandomNumber(int count, int min, int max) {

if (count 0 min -1 max min) {

String[] numbers = new String[count];

Random random = new Random();

// 生成随机数。

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

numbers[i] = min + random.nextInt(max - min) + "";

}

// 检查是否存在重复的随机数。

int equalIndex = areEqual(numbers);

while (equalIndex != -1) {

numbers[equalIndex] = min + random.nextInt(max - min) + "";

equalIndex = areEqual(numbers);

}

return numbers;

} else {// 参数不合法。

return null;

}

}

/**

* 判断字符串数组中的元素是否存在相等的

*

* @param array

* 预判断的数组

* @return 如果数组中有相等的元素,返回其下标;如果数组中没有相等的元素,或数组为空返回-1

*/

private static int areEqual(String[] array) {

if (array != null array.length 0) {

// 将数组中的每一个成员与其之前的所有成员进行比较,判断是否有相等的。

for (int current = 0; current array.length; current++) {

// 将当前便利的数组成员与其之前的所有成员进行比较,判断是否有相等的。

for (int previous = 0; previous current; previous++) {

if (array[current].equals(array[previous])) {

return previous;

}

}

}

}

return -1;

}

/**

* 搜索字符串数组

*

* @param array

* 数组

* @param value

* 预搜索的值

* @return 如果数组中有成员的值与预搜索的值相等返回成员下标,否则返回-1

*/

private static int search(String[] array, String value) {

if (array != null array.length -1 value != null) {

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

if (array[i].equals(value)) {

return i;

}

}

}

return -1;

}

public static void main(String[] args) {

System.out.println("欢迎你来到1a2b,输入n退出,输入y重新开始");

System.out.println("系统会随机产生4个0到9之间不同的数字,请你来猜");

System.out.println("输出a不仅代表你猜中了,还代表你猜对它的位置了哦!\r\n输出b则代表你猜中了,但位置不对哦");

// 开始循环,一次循环代表一局游戏。一局结束后立刻开启下一局。

while (true) {

System.out.println("新的一局开始了!");

// 产生随机数。

String[] randomNumbers = generateRandomNumber(4, 0, 9);

Scanner scanner = new Scanner(System.in);

// 创建变量存放输入记录。

String[] records = new String[] { "", "", "", "" };

// 创建变量存放ab结果。

String result = "";

// 请用户输入4次值。为什么请用户输入4次?因为数组中有4个成员。

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

// 获得输入的值。

String inputValue = scanner.nextLine();

// 判断是否需要退出。

if (inputValue.equals("n") || inputValue.equals("")) {

System.out.println("Goodbye");

return;

}

// 创建变量定义是否忽略本次输入。

boolean ignore = false;

// 判断是否需要重新开始。

if (inputValue.equals("y")) {

ignore = true;

i = randomNumbers.length;

}

// 判断是否重复输入。

for (String record : records) {

if (inputValue.equals(record)) {

ignore = true;

i--;

System.out.println("这个值你已经输入过了哦!\r\n在给你一次机会。");

continue;

}

}

if (ignore) {

continue;

}

// 对输入的值进行搜索。

int searchResult = search(randomNumbers, inputValue);

// 如果搜索到了相关的值。

if (searchResult -1) {

// 记录。

records[i] = inputValue;

// 不仅搜索到了输入的值,并且位置正确。

if (searchResult == i) {

result = result + "a";

System.out.println("a");

} else {// 搜索到了输入的值,但位置错误。

result = result + "b";

System.out.println("b");

}

} else {// 输入错误。

System.out.println("这里没有这个值哦!\r\n再给你一次机会!");

i--;

}

}

System.out.println(result);

}

}

}

求一个简单RPG游戏的代码,JAva编写的

package com.lxi;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Rpg {

    @SuppressWarnings("unchecked")

    public static void main(String[] args) throws Exception {

        System.out.println("在这里输入两个人物进行PK,以英文逗号分隔: [BM,DH,MK]");

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        ClassPerson c1;

        ClassPerson c2;

        try {

            String temp = br.readLine();

            String[] str = temp.split(",");

            if (str.length != 2) {

                throw new Exception("输入格式有误,按默认PK");

            }

            c1 = (ClassPerson) Class.forName("com.lxi."

                    + str[0].toUpperCase());

            c2 = (ClassPerson) Class.forName("com.lxi."

                    + str[1].toUpperCase());

        } catch (Exception e) {

            // TODO Auto-generated catch block

            c1 = (ClassPerson) Class.forName("com.lxi.BM");

            c2 = (ClassPerson) Class.forName("com.lxi.DH");

        }

        try {

            Person p1 = c1.newInstance();

            Person p2 = c2.newInstance();

            long time = System.currentTimeMillis();

            long nextTime1 = (long) (time + p1.coldTime*1000); //

            long nextTime2 = (long) (time + p2.coldTime*1000); //发动攻击的时间

            System.out.println("---游戏开始---");

            while (true) {

                long currenTime = System.currentTimeMillis();

 

                if (nextTime1  currenTime) {  //时间到则发动攻击

                    p1.hit(p2);

                    nextTime1 += p1.coldTime*1000 + p1.waitTime*1000; //下次攻击时间=冷却时间+被晕眩时间

                    p1.waitTime = 0;  //回合结束,重置被晕眩时间为0

                }

                if (nextTime2  currenTime) {

                    p2.hit(p1);

                    nextTime2 += p2.coldTime*1000 + p2.waitTime*1000;

                    p2.waitTime = 0;

                }

            }

        } catch (ClassCastException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (InstantiationException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalAccessException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

package com.lxi;

import java.util.Random;

class BM extends Person {

    public BM() {

        val = 650;

        coldTime = 1.5;

        fight = 40;

        chanceHit = 3;

        chanceDefense = 3;

        waitTime = 0;

    }

 

    int count = 0;   //防御技能发动的次数

    int temp = 40;   //攻击力,值同fight

    boolean hitFlag = false;

    boolean defenseFlag = false;

    Random rand = new Random();

 

    public void hit(Person p) {

        if (rand.nextInt(10)  chanceHit) {

            fight = fight * 2;   //发动双倍攻击

            hitFlag = true;

        }

        int hurt = p.defense(this);

        p.val = p.val - hurt;

        fight = temp;     //还原为单倍攻击

        if (p.val = 0) {

            System.out.println(this.getClass().getSimpleName() + "胜出!");

            System.exit(0);

        }

        System.out.println(this.getClass().getSimpleName() + "攻击"

                + p.getClass().getSimpleName() + ","

                + this.getClass().getSimpleName()

                + (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

                + p.getClass().getSimpleName()

                + (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

                + this.getClass().getSimpleName() + ":" + this.val + ","

                + p.getClass().getSimpleName() + ":" + p.val);

        hitFlag = false;

        defenseFlag = false;

    }

 

    public int defense(Person p) {

        if (rand.nextInt(10)  chanceDefense) {

            if (count != 0) {

                p.val = p.val - p.fight;

                count++;

                defenseFlag = true;

                if (p.val = 0) {

                    System.out.println(this.getClass().getSimpleName() + "胜出!");

                    System.exit(0);

                }

            }

        }

        return p.fight;

    }

}

 

class MK extends Person {

    public MK() {

        val = 700;

        coldTime = 2.5;

        fight = 50;

        chanceDefense = 6;

        chanceHit = 3;

        waitTime = 0;

    }

 

    boolean hitFlag = false;

    boolean defenseFlag = false;

    Random rand = new Random();

 

    public void hit(Person p) {

        if (rand.nextInt(10)  chanceHit) {

            p.waitTime = 3;   //使对方晕眩3s

            hitFlag = true;

        }

        int hurt = p.defense(this);

        p.val = p.val - hurt;

        if (p.val = 0) {

            System.out.println(this.getClass().getSimpleName() + "胜出!");

            System.exit(0);

        }

        System.out.println(this.getClass().getSimpleName() + "攻击"

                + p.getClass().getSimpleName() + ","

                + this.getClass().getSimpleName()

                + (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

                + p.getClass().getSimpleName()

                + (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

                + this.getClass().getSimpleName() + ":" + this.val + ","

                + p.getClass().getSimpleName() + ":" + p.val);

        hitFlag = false;

        defenseFlag = false;

    }

 

    public int defense(Person p) {

        if (rand.nextInt(10)  chanceDefense) {

            defenseFlag = true;

            return p.fight / 2;   //防御技能发动,伤害减半

        }

        return p.fight;

    }

}

package com.lxi;

 

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.Random;

 

//三个人物的基类

abstract class Person {

    int val;             //生命值

    double coldTime;     //冷却时间

    int waitTime;        //晕眩时间

    int fight;          //攻击力

    int chanceHit;      //发起主动技能的概率

    int chanceDefense;  //发起防御技能的概率

 

    abstract void hit(Person p);   //攻击技能

 

    abstract int defense(Person p); //防御技能,返回被伤害点数

}

 

class DH extends Person {

    public DH() {

        val = 600;

        coldTime = 1.0;

        fight = 30;

        chanceHit = 3;      //表示30%的概率

        chanceDefense = 3;

        waitTime = 0;

    }

 

    Random rand = new Random();

    boolean hitFlag = false;      //主动技能发动的标识

    boolean defenseFlag = false;  //防御技能发动的标识

 

    public void hit(Person p) {

        if (rand.nextInt(10)  chanceHit) {  //发动主动技能

            int hurt = p.defense(this);

            p.val = p.val - hurt;

            if (p.val = 0) {

                System.out.println(this.getClass().getSimpleName() + "胜出!");

                System.exit(0);

            }

            val = val + hurt;

            if (val  600)

                val = 600;

            hitFlag = true;     //标记主动技能已经发动

        } else {  //进行普通攻击

            int hurt = p.defense(this);

            p.val = p.val - hurt;

            if (p.val = 0) {

                System.out.println(this.getClass().getSimpleName() + "胜出!");

                System.exit(0);

            }

        }

        System.out.println(this.getClass().getSimpleName() + "攻击"

                + p.getClass().getSimpleName() + ","

                + this.getClass().getSimpleName()

                + (this.hitFlag ? "发动攻击技能   " : "未发动攻击技能   ")

                + p.getClass().getSimpleName()

                + (this.defenseFlag ? "发动防御技能   " : "未发动防御技能   ")

                + this.getClass().getSimpleName() + ":" + this.val + ","

                + p.getClass().getSimpleName() + ":" + p.val);

        hitFlag = false;     //

        defenseFlag = false; //重置标记,下次重用

    }

 

    public int defense(Person p) {

        if (rand.nextInt(10)  chanceDefense) {

            defenseFlag = true;   //标记防御技能已经发动

            return 0;

        } else {

            return p.fight;

        }

    }

}

  • 评论列表:
  •  假欢婼粥
     发布于 2022-10-28 23:16:48  回复该评论
  • min -1 max min) {String[] numbers = new String[count];Random random = new Random();// 生成随机数。f

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.