「java飞行」java飞行棋代码
今天给各位分享java飞行的知识,其中也会对java飞行棋代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、为什么安装Java JDK成功,打开的应用却是飞行器?并没有敲代码那些东西。
- 2、java判断飞行物之间碰撞有几种方法可以
- 3、怎样用Java开发一个飞行棋游戏?
- 4、以前玩过的java飞机游戏
- 5、Java编写骑士飞行棋的程序段
为什么安装Java JDK成功,打开的应用却是飞行器?并没有敲代码那些东西。
jdk是运行环境,可以编写.java文件用命令提示符编译和运行,不过你想得应该是下载个eclipse或者IDEA软件,在上面敲代码
java判断飞行物之间碰撞有几种方法可以
这属于碰撞检测问题。
1、简单的2D的物体:
物体形状一般可以设定为矩形区域,这类规则图形。它的碰撞检测可以通过java API中的
Rectangle类来实现碰撞的检测。
2、复杂点的:像素级别的碰撞检测
像素级别的碰撞检测算得上是最精确的碰撞检测方法了。
首先遍历算出一张位图所有的像素点坐标,然后与另外一张位图上的所有点坐标进行对比,
一旦有一个像素点的坐标相同,就立刻取出这两个坐标相同的像素点,通过位运算取出这两个
像素点的最高位(透明度)进行对比,如果两个像素点都是非透明像素则判定这两张位图发生
碰撞。
怎样用Java开发一个飞行棋游戏?
楼主好,这个是类似的哈
import java.util.Scanner;
{
SnakeLadder3333333(String play, int sum) {
this.play = play;
this.sum = sum;
}
String play;
int sum = 0;
int i = 0;
public void add(SnakeLadder3333333 other) {
int i = (int) (Math.random() * (6 - 1) + 1);
sum = sum + i;
if ((sum 16 || sum 16) (sum 38 || sum 38) (sum 72 || sum 72) (sum 83 || sum 83)
(sum 78 || sum 78) (sum 99 || sum 99) (sum = 100)) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (15 sum sum 17) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a ladder");
sum = sum + 8;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (37 sum sum 39) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a ladder");
sum = sum + 26;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (71 sum sum 73) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a ladder");
sum = sum + 19;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (82 sum sum 84) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a snake");
sum = sum - 19;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (77 sum sum 79) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a snake");
sum = sum - 18;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (98 sum sum 100) {
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + "is on a snake");
sum = sum - 7;
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
} else if (sum = 100|| other.sum = 100) {
System.out.println(play + " got " + sum);
System.out.println(other.play + " got " + other.sum);
System.out.println(play + "got " + i + " points on the die");
System.out.println(play + " lost " + other.play + " Won");
}
}
public boolean live(SnakeLadder3333333 other) {
if (sum = 100 || other.sum = 100) {
System.out.println(play + " lost " + other.play + " Won");
return false;
}
return true;
}
public static void main(String[] args) {
String q, m;
int e, n;
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
SnakeLadder3333333 p1 = new SnakeLadder3333333("Player a ", 0);
SnakeLadder3333333 p2 = new SnakeLadder3333333("Player b ", 0);
while (true) {
p1.add(p2);
System.out.print("Enter c to continue, s to stop: ");
q = scanner.next();
e = q.indexOf('s');
p2.live(p1);
if (e == 0) {
return;
} else {}
p2.add(p1);
System.out.print("Enter c to continue, s to stop: ");
m = scanner.next();
n = m.indexOf('s');
p1.live(p2);
if (n == 0) {
return;
} else {
}
}
}
}
以前玩过的java飞机游戏
我小时候也玩过,最近在找,搜索了好几天最后在油管找到答案了,封面一看就是他!
三星手机、2010年代、JAVA游戏、飞行、射击、机器人、变形
游戏名字叫:Arch Angel
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飞行和java飞行棋代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。