「java编写元气骑士」编程元气骑士

博主:adminadmin 2022-11-30 07:04:05 105

今天给各位分享java编写元气骑士的知识,其中也会对编程元气骑士进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用JAVA语言编写一个程序,要求如下:

import java.util.Random;

import java.util.Scanner;

public class T {

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

Scanner in = new Scanner(System.in);

int difficulty;//难度

int mode;//运算类型

int answer;//答案

int amount;//挑战题目数量

int score = 0;//得分

System.out.println("请输入难度(1:一位数、2:两位数、3:三位数):");

difficulty = in.nextInt();

System.out.println("请输入运算类型(1:加、2:减、3:乘、4:除):");

mode = in.nextInt();

System.out.println("请输入想要挑战的题目数量:");

amount = in.nextInt();

Random random = new Random();

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

if (difficulty == 1) {

if (mode == 1) {

int x = random.nextInt(10);

int y = random.nextInt(10);

System.out.println("第" + i + "题:");

System.out.print(x + " + " + y + " = ");

answer = in.nextInt();

if (answer == (x + y)) {

System.out.println("答对了\n");

score++;

} else {

System.out.println("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

int x = random.nextInt(10);

int y = random.nextInt(10);

System.out.println("第" + i + "题:");

System.out.print(x + " - " + y + " = ");

answer = in.nextInt();

if (answer == (x - y)) {

System.out.println("答对了\n");

score++;

} else {

System.out.println("答错了,答案是:" + (x - y) + "\n");

}

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else if (difficulty == 2) {

if (mode == 1) {

int x = random.nextInt(100);

int y = random.nextInt(100);

System.out.println("第" + i + "题:");

System.out.print(x + " + " + y + " = ");

answer = in.nextInt();

if (answer == (x + y)) {

System.out.println("答对了\n");

score++;

} else {

System.out.println("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else if (difficulty == 3) {

if (mode == 1) {

int x = random.nextInt(1000);

int y = random.nextInt(1000);

System.out.println("第" + i + "题:");

System.out.print(x + " + " + y + " = ");

answer = in.nextInt();

if (answer == (x + y)) {

System.out.println("答对了\n");

score++;

} else {

System.out.println("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else {

throw new Exception("难度输入值不合法");

}

}

System.out.println("挑战结束,您的分数为:" + score);

}

}

我就只举了加法的例子,其他运算的写法都是类似的,你照葫芦画瓢即可

运行结果:

Java编写骑士飞行棋的程序段

楼上说的很对,switch首先不是循环,只是一个判断,i的值影响你地图上输出的到底是什么类型的图案,我把我写的源码给你,你看看,注释比较全,加油学吧,不懂多问问同学或老师

地图类:

package s1java.t70.qsfxq;

public class Map {

int[] map = new int[100]; //对战地图

int[] luckyTurn = ; //幸运轮盘

int[] landMine = ; //地雷位置

int[] pause = ; //暂停

int[] timeTunnel = ; //时空隧道

/**

* 生成地图:

* 关卡代号为:1:幸运轮盘 2:地雷 3: 暂停 4:时空隧道 0:普通

*/

public void createMap(){

int i = 0;

//在对战地图上设置幸运轮盘

for(i = 0; i luckyTurn.length; i++){

map[luckyTurn[i]] = 1;

}

//添加代码实现在对战地图上设置地雷

for(i = 0; i landMine.length; i++) {

map[landMine[i]] = 2;

}

//添加代码实现在对战地图上设置暂停

for(i = 0; i pause.length; i++) {

map[pause[i]] = 3;

}

//添加代码实现在对战地图上设置时空隧道

for(i = 0; i timeTunnel.length; i++) {

map[timeTunnel[i]] = 4;

}

}

/**

* 显示地图关卡对应的图形

* @param i 地图当前位置的关卡代号

* @param index 当前地图位置编号

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

* @return 地图当前位置的对应图片

*/

public String getGraph(int i, int index, int playerPos1, int playerPos2){

String graph = "";

// 添加代码

if(playerPos1 == index playerPos2 == index) {

graph = "@@";

}

else if(playerPos1 == index) {

graph = "A";

}

else if(playerPos2 == index) {

graph = "B";

}

else {

switch(i) {

case 0:

graph = "∷";

break;

case 1:

graph = "¤";

break;

case 2:

graph = "★";

break;

case 3:

graph = "■";

case 4:

graph = "〓";

}

}

return graph;

}

/**

* 输出地图的奇数行(第1、3行)

* @param start 输出的起始点在地图上的位置

* @param end 输出的结束点在地图上的位置

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

*/

public void showLine1(int start, int end, int playerPos1, int playerPos2){

//添加代码

for(int i = start; i = end; i++ ){

System.out.print(getGraph(map[i], i,playerPos1, playerPos2));

}

}

/**

* 输出地图的偶数行(第2行)

* @param start 输出的起始点在地图上的位置

* @param end 输出的结束点在地图上的位置

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

*/

public void showLine2(int start, int end, int playerPos1, int playerPos2){

for(int i = end-1; i = start; i-- ){

System.out.print(getGraph(map[i], i,playerPos1, playerPos2));

}

}

/**

* 输出地图的右竖列

* @param start 输出的起始点在地图上的位置

* @param end 输出的结束点在地图上的位置

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

*/

public void showRLine(int start, int end, int playerPos1, int playerPos2){

for(int i = start; i end; i++){

for(int j = 28; j 0; j--){ //输出29个空格

System.out.print(" ");

}

System.out.print(getGraph(map[i], i,playerPos1, playerPos2));

System.out.println();

}

}

/**

* 输出地图的左竖列

* @param start 输出的起始点在地图上的位置

* @param end 输出的结束点在地图上的位置

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

*/

public void showLLine(int start, int end, int playerPos1, int playerPos2){

//添加代码

for(int i = start; i end; i++){

System.out.print(getGraph(map[i], i,playerPos1, playerPos2));

System.out.println();

}

}

/**

* 显示对战地图

* @param playerPos1 玩家1的当前位置

* @param playerPos2 玩家2的当前位置

*/

public void showMap(int playerPos1, int playerPos2){

//显示地图第一行

showLine1(0, 30,playerPos1,playerPos2);

//换行

System.out.println();

//显示地图右竖行

showRLine(31,35,playerPos1,playerPos2);

//显示地图第二行

showLine2(35,66,playerPos1,playerPos2);

//换行

System.out.println();

//显示地图左竖行

showLLine(66,69,playerPos1,playerPos2);

//显示地图第3行

showLine1(69, 99,playerPos1,playerPos2);

}

}

GAME类:

package s1java.t70.qsfxq;

import java.util.*;

public class Game {

//声明地图

Map map =new Map();

//Map map;

//声明对战中玩家1的当前位置

int playerPos1;

//声明对战中玩家2的当前位置

int playerPos2;

//声明走或停标识设置

String[] goAndStop = new String[2];

//声明对战角色

String[] playerName = new String[2];

/**

* 初始化游戏的一局

*/

public void init(){

//创建Map对象

//生成地图

map.createMap();

//设置玩家1起始位置

playerPos1 = 0;

//设置玩家2起始位置

playerPos2 = 0;

//记录玩家1下一次走或停

goAndStop[0] = "on";

//设置玩家2下一次走或停

goAndStop[1] = "on";

}

/**

* 开始游戏

*/

public void start(){

//调用初始化方法

init();

//显示游戏界面

map.showMap(playerPos1, playerPos2);

System.out.println("\n");

System.out.println("1、戴高乐 2、艾森豪威尔 3、麦克阿瑟 4、巴顿\n");

//角色设置

Scanner input = new Scanner(System.in);

System.out.print("1P选择人物: ");

int role = input.nextInt();

setRole(1,role);

boolean judge = true;

do {

System.out.println();

System.out.print("2P选择人物: ");

int role2 = input.nextInt();

if(role2 == role) {

System.out.println("角色重复,请重新选择人物!");

}

else {

setRole(2,role2);

}

}while(judge == false);

//开始游戏

play();

}

/**

* 设置对战角色

* @param no 玩家次序 1:玩家1 2:玩家2

* @param role 角色代号

*/

public void setRole(int no, int role){

switch(role){

case 1:

playerName[no-1] = "戴高乐";

break;

case 2:

//设置玩家名称为"艾森豪威尔"

playerName[no-1] = "艾森豪威尔";

break;

case 3:

//设置玩家名称为"麦克阿瑟"

playerName[no-1] = "麦克阿瑟";

break;

case 4:

//设置玩家名称为"巴顿"

playerName[no-1] = "巴顿";

break;

default:

break;

}

}

/**

* 两人对战玩法

*/

public void play(){

System.out.println("\n\n\n\n");

System.out.print("\n\n****************************************************\n");

System.out.print(" Game Start \n");

System.out.print("****************************************************\n\n");

//显示对战双方士兵样式

System.out.println("^_^" + playerName[0] + "的士兵: A");

System.out.println("^_^" + playerName[1] + "的士兵: B\n");

//显示对战地图

System.out.println("\n图例: " + "■ 暂停 ¤ 幸运轮盘 ★ 地雷 〓 时空隧道 ∷ 普通\n");

map.showMap(playerPos1, playerPos2);

//游戏开始

int step; //存储骰子数目

while(playerPos1 99 playerPos2 99){ //有任何一方走到终点,跳出循环

//轮流掷骰子

if(goAndStop[0].equals("on")){

//玩家1掷骰子

step = throwShifter(1); //掷骰子

System.out.println("\n-----------------"); //显示结果信息

System.out.println("骰子数: "+ step);

playerPos1 = getCurPos(1, playerPos1, step); //计算这一次移动后的当前位置

System.out.println("\n您当前位置: "+ playerPos1);

System.out.println("对方当前位置:"+ playerPos2);

System.out.println("-----------------\n");

map.showMap(playerPos1, playerPos2); //显示当前地图

if(playerPos1 == 99){ //如果走到终点

break; //退出

}

}else{

System.out.println("\n" + playerName[0] +"停掷一次!\n"); //显示此次暂停信息

goAndStop[0] = "on"; //设置下次可掷状态

}

System.out.println("\n\n\n\n");

if(goAndStop[1].equals("on")){

//玩家2掷骰子

step = throwShifter(2); //掷骰子

System.out.println("\n-----------------"); //显示结果信息

System.out.println("骰子数: "+ step);

playerPos2 = getCurPos(2, playerPos2, step); //计算这一次移动后的当前位置

System.out.println("\n您当前位置: "+ playerPos2);

System.out.println("对方当前位置:"+ playerPos1);

System.out.println("-----------------\n");

map.showMap(playerPos1, playerPos2);

if(playerPos2 == 99){ //如果走到终点

break; //退出

}

}else{

System.out.println("\n" + playerName[1] + "停掷一次!\n"); //显示此次暂停信息

goAndStop[1] = "on"; //设置下次可掷状态

}

System.out.println("\n\n\n\n");

}

//游戏结束

System.out.println("\n\n\n\n");

System.out.print("****************************************************\n");

System.out.print(" Game Over \n");

System.out.print("****************************************************\n\n");

judge();

}

/**

* 掷骰子

* @param no 玩家次序

* @return step 掷出的骰子数目

*/

public int throwShifter(int no){

//定义变量存储骰子数目

int step = 0;

//提示玩家启动掷骰子

System.out.println("\n");

System.out.print("请输入任意键开掷骰子!");

Scanner input = new Scanner(System.in);

input.nextInt();

//模拟掷骰子:产生一个1~6的数字作为玩家掷的骰子数目

Random random = new Random();

step = random.nextInt(5) + 1;

return step;

}

/**

* 计算玩家此次移动后的当前位置

* @param no 玩家次序

* @param position 移动前位置

* @param step 掷的骰子数目

* @return position 移动后的位置

*/

public int getCurPos(int no, int position, int step){

position = position + step; //第一次移动后的位置

if(position = 99){

return 99;

}

Scanner input = new Scanner(System.in);

switch(map.map[position]){ //根据地图中的关卡代号进行判断

case 0: //走到普通格

if(position == playerPos2){ //添加条件:玩家1与对方骑兵相遇

//添加代码实现:踩到对方,对方回到起点

playerPos2 = 0;

System.out.println(":-D 哈哈哈哈...踩到了!");

}

if (position == playerPos1){ //添加条件:玩家2与对方骑兵相遇

//添加代码实现:踩到对方,对方回到起点

playerPos1 = 0;

System.out.println(":-D 哈哈哈哈...踩到了!");

}

break;

case 1: //幸运轮盘

System.out.println("\n◆◇◆◇◆欢迎进入幸运轮盘◆◇◆◇◆");

System.out.println(" 请选择一种运气:");

System.out.println(" 1. 交换位置 2. 轰炸");

System.out.println("=============================\n");

int choice = input.nextInt();

int temp; //交换时的临时变量

switch(choice){

case 1: //交换位置

if(no == 1){

//添加代码实现交换:position与playerPos2数值互换

temp = playerPos2;

playerPos2 = position;

position = temp;

}else if(no == 2){

//添加代码实现交换:position与playPos1数值互换

temp = playerPos1;

playerPos1 = position;

position = temp;

}

break;

case 2: //轰炸

if(no == 1){ //no为1并且玩家2位置小于6

//添加代码实现:计算玩家2当前位置

if(playerPos2 6) {

playerPos2 = 0;

}

else {

//添加代码实现:计算玩家2当前位置

playerPos2 -= 6;

}

}

if(no == 2){ //no为2并且玩家1位置小于6

//添加代码实现: 计算玩家1当前位置

if(playerPos1 6) {

playerPos1 = 0;

}

else{

//添加代码实现:计算玩家1当前位置

playerPos1 -= 6;

}

}

break;

}

break;

case 2: //踩到地雷

//添加代码实现:踩到地雷退6步

position -= 6;

System.out.println("~:-( " + "踩到地雷,气死了...");

break;

case 3: //下一次暂停一次

//添加代码实现:设置下次暂停掷骰子

goAndStop[no-1] = "off";

System.out.println("~~_~~ 要停战一局了。");

break;

case 4: //时空隧道

//添加代码实现:进入时空隧道,加走10步

position += 10;

System.out.println("|-P " + "进入时空隧道, 真爽!");

break;

}

//返回此次掷骰子后玩家的位置坐标

if(position 0){

return 0;

}else if(position 99){

return 99;

}else{

return position;

}

}

/**

* 显示对战结果

*/

public void judge(){

//添加代码

if(playerPos1 playerPos2) {

System.out.println(playerName[0] + "获得了胜利!");

}

else {

System.out.println(playerName[1] + "获得了胜利!");

}

}

}

程序入口:

package s1java.t70.qsfxq;

public class StartGane {

public static void main(String[] args) {

Game game = new Game();

game.start();

}

}

用JAVA编写一个小游戏

前天写的猜数字游戏,yong i控制猜测次数,有详细解析,用黑窗口可以直接运行,

我试验过了,没问题

import javax.swing.Icon;

import javax.swing.JOptionPane;

public class CaiShuZi4JOptionPane {

/**

* @param args

*/

public static void main(String[] args) {

Icon icon = null;

boolean bl = false;

int put = 0;

int c = (int) (((Math.random())*100)+1); //获取一个1-100的随机数

System.out.println("你获取的随机数是:"+c); //打印你的随机数字

String str1 = (String) JOptionPane.showInputDialog(null,"请输入你的猜测数字(1-100):\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入"); //第一次输入你的猜测数字

if(str1==null){

JOptionPane.showMessageDialog(null, "你已经取消了本次游戏"); //如果你点取消那么本次游戏结束

}else{

bl = num(str1); //判断是输入的是不是数字或者是整数

if(true==bl){ //如果是数字的话进入与随机数比较的程序

System.out.println("你输入的数字是:"+str1); //打印你输入的数字

put = Integer.valueOf(str1);

for(int i = 4;i 0;i--){ //i是你可以猜测的次数

if(put==c){

JOptionPane.showMessageDialog(null, "恭喜你猜对了,正确答案是:"+c+"。"); //如果你猜对了就直接结束循环

break;

}else if(putc){ //如果输大了就让你再次从新输入

str1 = (String) JOptionPane.showInputDialog(null,"你的输入过大。你还有"+i+"次机会,请重新输入:\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入");

if(str1==null){

JOptionPane.showMessageDialog(null, "你已经取消了本次输入");

break;

}else{

bl =num(str1);

if(true==bl){

put = Integer.valueOf(str1);

}else{

JOptionPane.showMessageDialog(null, "你的输入不正确,请重新输入");

}

}

}else if(putc){ //如果你输小了也让你从新输入

str1 = (String) JOptionPane.showInputDialog(null,"你的输入过小。你还有"+i+"次机会,请重新输入:\n","猜数字游戏",JOptionPane.PLAIN_MESSAGE,icon,null,"在这输入");

if(str1==null){

JOptionPane.showMessageDialog(null, "你已经取消了本次输入");

break;

}else{

bl =num(str1);

if(true==bl){

put = Integer.valueOf(str1);

}else{

JOptionPane.showMessageDialog(null, "你的输入不正确,请重新输入");

}

}

}

}

}else if(bl==false){ //这个 是你第一次如果填写的不是数字的话也会结束本次游戏

JOptionPane.showMessageDialog(null, "请您下次按要求填写。本次游戏结束");

}

if(true==bl c!=put){ //如果你i次都没猜对,那么就直接告诉你这个数十什么

JOptionPane.showMessageDialog(null, "很遗憾你没能猜对,这个数字是:"+c+".");

}

}

}

public static boolean num(String value){ //一个静态方法,判断你输入的是不是数字

try {

Integer.parseInt(value);

return true;

} catch (Exception e) {

return false;

}

}

}

跪求JAVA编写的小游戏源代码

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.*;

import java.util.*;

class Car{

Image img;

int x, y;

Dimension dim;

Car(Image img){

this.img=img;

}

Car(Image img, int x, int y){

this.img=img; this.x=x; this.y=y;

}

Car(Image img, int x, int y, Dimension dim){

this(img, x, y);

this.dim=dim;

}

void draw(Graphics g, ImageObserver observer){

g.drawImage(img, x, y, observer);

}

int getX(){ return x;}

int getY(){ return y;}

void setX(int x){this.x=x;}

void setY(int y){this.y=y;}

void setLocation(int x, int y){

this.x=x; this.y=y;

}

int getWidth(){ return img.getWidth(null);}

int getHeight(){ return img.getHeight(null);}

Rectangle2D getRectangle(){

return new Rectangle2D.Float(x, y, getWidth(), getHeight());

}

void move(int dx, int dy){

x+=dx;

y+=dy;

if(dim!=null){

if(x0)x=0;

if(x+getWidth()dim.getWidth())

x=(int)dim.getWidth()-getWidth();

}

}

boolean intersects(Car car){

return getRectangle().intersects(car.getRectangle());

}

boolean intersects(int x, int y){

return getRectangle().intersects(x, y, getWidth(), getHeight());

}

}

public class CarRace extends Applet implements KeyListener, Runnable{

Image buff;

Canvas screen;

Graphics2D gs, gb;

Car redCar;

Car[] enemy=new Car[20];

Button bStart;

Thread game;

boolean loop=true;

Dimension dim=new Dimension(200, 300);

int road;

Random rnd=new Random();

public void init(){

prepareResource();

setBackground(Color.blue);

initScreen();

add(screen);

bStart=new Button("霸烙 矫累");

add(bStart);

bStart.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

screen.requestFocus();

if(!game.isAlive())

game.start();

}

});

}

void prepareResource(){

Image imgRed=getImage(getCodeBase(),"images/red_car.gif");

Image imgBlue=getImage(getCodeBase(),"images/blue_car.gif");

Image imgGreen=getImage(getCodeBase(),"images/green_car.gif");

MediaTracker mt=new MediaTracker(this);

try{

mt.addImage(imgRed, 0);

mt.addImage(imgBlue, 1);

mt.addImage(imgGreen, 2);

mt.waitForAll();

}catch(Exception e){}

buff=createImage((int)dim.getWidth(), (int)dim.getHeight());

gb=(Graphics2D)buff.getGraphics();

redCar=new Car(imgRed, 80,250, dim);

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

enemy[i]=new Car(imgBlue, 0, 0);

}

for(int i=10;ienemy.length;i++){

enemy[i]=new Car(imgGreen, 0, 0);

}

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

setEnemy(i);

}

game=new Thread(this);

}

public void stop(){

loop=false;

}

public void run(){

while(loop){

drawScreen();

try{ Thread.sleep(50);}catch(Exception e){}

}

}

void initScreen(){

screen=new Canvas(){

public void paint(Graphics g){

if(gs==null){

gs=(Graphics2D)screen.getGraphics();

}

drawScreen();

}

};

screen.setSize(dim);

screen.addKeyListener(this);

}

void setEnemy(int en){

int x, y;

next:while(true){

x=rnd.nextInt((int)dim.getWidth()-enemy[en].getWidth());

y=-rnd.nextInt(5000)-200;

for(int j=0;jenemy.length;j++){

if(j!=en enemy[j].intersects(x, y))continue next;

}

enemy[en].setLocation(x, y);

break;

}

}

void check(Car en){

if(redCar.intersects(en)){

if(redCar.getX()en.getX()){

en.move(-20, 0);

redCar.move(20, 0);

}

else{

en.move(20,0);

redCar.move(-20, 0);

}

}

}

synchronized void drawScreen(){

gb.clearRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

gb.setPaint(new Color(100, 100, 100));

gb.fillRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

drawRoad();

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

enemy[i].move(0, 15);

enemy[i].draw(gb, screen);

if(enemy[i].getY()dim.getHeight())

setEnemy(i);

check(enemy[i]);

}

redCar.draw(gb, screen);

gs.drawImage(buff, 0,0, screen);

}

void drawRoad(){

road+=80;

gb.setPaint(Color.yellow);

gb.fillRect((int)dim.getWidth()/2, road,10,150);

if(road=dim.getHeight())road=-150;

}

public void keyPressed(KeyEvent ke){

if(ke.getKeyCode()==KeyEvent.VK_LEFT){

redCar.move(-10,0);

}

else if(ke.getKeyCode()==KeyEvent.VK_RIGHT){

redCar.move(10,0);

}

}

public void keyReleased(KeyEvent ke){}

public void keyTyped(KeyEvent ke){}

}

这个是一个典型的Applet,文件名应该是CarRace.java,需要图片作为车子等等,本人也是别人给的,但是还要个.html文件来运行它,代码为:

Applet code="CarRace.class" width=250 height=350

/Applet

请楼主采纳

java编写元气骑士的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于编程元气骑士、java编写元气骑士的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。