Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import java.util.Random;
- import character.Player;
- public class RandDun {
- private static int worldbounds = 256;
- private static boolean[][] world = new boolean [worldbounds][worldbounds];
- private static int[][] material = new int [worldbounds][worldbounds];
- private static Random randInt = new Random();
- private static int ysight = 11;
- private static int xsight = 20;
- private static int sandstone;
- private static int granite;
- private static int iron;
- private static int gold;
- // private static int x;
- // private static int y;
- public static void main(String[] args) {
- generate();
- validate();
- place();
- while (true) {
- display();
- }
- }
- public static void generate() {
- int tile;
- for (int v = 0; v < worldbounds; v++) {
- for (int h = 0; h < worldbounds; h++) {
- /*Materials:
- * 0:20:Empty
- * 1:40:Granite
- * 2:20:Sandstone
- * 3:15:Iron
- * 4: 5:Gold
- */
- tile = randInt.nextInt(100);
- if (tile < 20)
- material[h][v]=0;
- else if (tile < 60)
- material[h][v]=1;
- else if (tile < 90)
- material[h][v]=2;
- else
- material[h][v]=3;
- // material[h][v]=4;
- if (randInt.nextInt(2) == 1)
- world[h][v]=true;
- else
- world[h][v]=false;
- }
- }
- }
- public static void bake() {
- for (int i = 0; i < 3; i++) {
- for (int v = 0; v < worldbounds; v++) {
- for (int h = 0; h < worldbounds; h++) {
- if (material[h][v]==3) {
- if (randInt.nextInt(3)==0) {
- material[h][v+1]=4;
- } if (randInt.nextInt(3)==0) {
- material[h][v-1]=4;
- } if (randInt.nextInt(3)==0) {
- material[h+1][v]=4;
- } if (randInt.nextInt(3)==0) {
- material[h-1][v]=4;
- }
- } else if (material[h][v]==1) {
- if (
- (
- material[h][v-1]==1 ||
- material[h][v-1]==1
- )&&(
- material[h][v+1]==1 ||
- material[h][v+1]==1
- )&&(
- material[h-1][v]==1 ||
- material[h-1][v]==1
- )||(
- material[h+1][v]==1 ||
- material[h+1][v]==1 //&&
- )//randInt.nextInt(4)==0)
- )
- material[h][v]=4;
- }
- }
- }
- }
- }
- public static void validate() {
- for (int v = 1; v < worldbounds-1; v++) {
- for (int h = 1; h < worldbounds-1; h++) {
- int adj = 0;
- for (int i = 0; i < 4; i++) {
- if (material[h+1][v]==0)
- adj++;
- if (material[h-1][v]==0)
- adj++;
- if (material[h][v+1]==0)
- adj++;
- if (material[h][v-1]==0)
- adj++;
- }
- if (adj <3)
- material[h][v]=1;
- }
- }
- }
- public static void place() {
- Player.setX(worldbounds/2);
- Player.setY(worldbounds/2);
- material[Player.getX()][Player.getY()]=0;
- material[Player.getX()+1][Player.getY()]=0;
- material[Player.getX()+1][Player.getY()+1]=0;
- material[Player.getX()][Player.getY()+1]=0;
- material[Player.getX()-1][Player.getY()+1]=0;
- material[Player.getX()-1][Player.getY()]=0;
- material[Player.getX()-1][Player.getY()-1]=0;
- material[Player.getX()][Player.getY()-1]=0;
- material[Player.getX()+1][Player.getY()-1]=0;
- }
- public static void display() {
- System.out.println();
- System.out.print(
- " Granite:" + Format.BIFormat(granite, 4) +
- " Sandstone:" + Format.BIFormat(sandstone, 4) +
- " Iron:" + Format.BIFormat(iron, 4) +
- " Gold:" + Format.BIFormat(gold, 4)
- );
- System.out.println();
- for (int v = 0; v < worldbounds; v++) {
- for (int h = 0; h < worldbounds; h++) {
- if (
- v > Player.getY() - ysight &&
- v < Player.getY() + ysight &&
- h > Player.getX() - xsight &&
- h < Player.getX() + xsight) {
- if (v == Player.getY() && h == Player.getX())
- System.out.print("[]");
- else if (material[h][v]==0)
- System.out.print(".`");
- else if (material[h][v]==1)
- System.out.print("%%");
- else if (material[h][v]==2)
- System.out.print("##");
- else if (material[h][v]==3)
- System.out.print("&&");
- else if (material[h][v]==4)
- System.out.print("**");
- }
- }
- if (v < Player.getY() + ysight && v > Player.getY() - ysight)
- System.out.println("");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment