放假前,写个飞行棋玩玩呀

当然是没有界面拉.....我也想写个界面,然后 ,用手机上和朋友在吃饭的时候一起玩,但是,,界面ui都木有呀,,只能写个逻辑,看文字玩了...

 

贴代码:


import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Aeroplane {
	static List list = new ArrayList();

	static Random r = new Random();
	static int[] wj = new int[2];
	static {
// 如果是数字,表示需要前进或者后退
		list.add("开始");
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("2");
		list.add("r");
		list.add("q");
		list.add("-1");
		list.add("终点");

	}

	public static boolean execute(int a) {
		int n = r.nextInt(6) + 1;
		System.out.println("当前骰子步数 :" + n);
		wj[a] += n;

		// 判断是否大于 地图长度
		if (wj[a] > list.size()-1) {
			int m = wj[a] - list.size()+1;
			wj[a] -= m;
			System.out.println(wj[a]+"超出长度:"+m);
		}
		
		// 判断是否需要前进或者后退
		int p = toInt(list.get(wj[a]), 0);
		System.out.print(wj[a]);
		wj[a] += p;
		System.out.println("前进 :" + p + "," + wj[a]);

		
		// 判断是否大于 地图长度
		if (wj[a] > list.size()) {
			int m = wj[a] - list.size();
			wj[a] -= m;
		}

		System.out.println("当前玩家所处位置 :" + wj[a]);
		// 判断是否到达种点
		if (wj[a] == list.size()-1) {
			// 玩家胜利游戏结束
			return true;
		}
		return false;
	}

	public static int toInt(String str, int defaultValue) {
		if (str == null) {
			return defaultValue;
		}
		try {
			return Integer.parseInt(str);
		} catch (NumberFormatException nfe) {
			return defaultValue;
		}
	}

	public static void main(String[] args) {
		int a = 1;
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("等待玩家" + a + "开始,请输入任意字符,按回车键");
			sc.next();
			boolean execute = execute(a);
			for (int i = 0; i < list.size(); i++) {
				String str = list.get(i);
				for (int j = 0; j < wj.length; j++) {
					if (wj[j] == i) {
						str = str + "\t" + "<-- 玩家" + j;
					}
				}
				System.out.println(str);
			}
			
			
			if (execute) {
				System.out.println("游戏结束 ,玩家" + a + "胜利!!!");
				break;
			}

			a = a == 0 ? 1 : 0;
		}

	}
}

 

你可能感兴趣的:(java)