Prepare node system and start connecting together constraints for the nodes
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
06ce92a7a7
commit
b1c0e75bc5
1901
constraints.txt
1901
constraints.txt
File diff suppressed because it is too large
Load Diff
@ -5,73 +5,95 @@ import java.util.List;
|
||||
|
||||
public class MultiRando {
|
||||
private static int bitwiseCounter=0;
|
||||
final static long NULL = 0;
|
||||
final static long INTERMEDIATE_HARD = DefineBitwiseConstant();
|
||||
final static long INTERMEDIATE = DefineBitwiseConstant();
|
||||
final static long SPEED1 = DefineBitwiseConstant();
|
||||
final static long AIR_DASH = DefineBitwiseConstant();
|
||||
final static long AIR_JUMP = DefineBitwiseConstant();
|
||||
final static long EXPLOSIVES_ENEMY = DefineBitwiseConstant();
|
||||
final static long SLIDING_POWDER = DefineBitwiseConstant();
|
||||
final static long PROLOGUE_TRIGGER = DefineBitwiseConstant();
|
||||
final static long EXPLOSIVES = DefineBitwiseConstant();
|
||||
final static long HAMMER_ROLL_ZIP = DefineBitwiseConstant();
|
||||
final static long ADVANCED_VHARD = DefineBitwiseConstant();
|
||||
final static long SLIDE_ZIP = DefineBitwiseConstant();
|
||||
final static long AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static long WHIRL_BONK = DefineBitwiseConstant();
|
||||
final static long RABI_SLIPPERS = DefineBitwiseConstant();
|
||||
final static long BUNNY_STRIKE = DefineBitwiseConstant();
|
||||
final static long DARKNESS = DefineBitwiseConstant();
|
||||
final static long WALL_JUMP_LV2 = DefineBitwiseConstant();
|
||||
final static long WHIRL_BONK_CANCEL = DefineBitwiseConstant();
|
||||
final static long HAMMER_ROLL = DefineBitwiseConstant();
|
||||
final static long ADVANCED_STUPID = DefineBitwiseConstant();
|
||||
final static long DOWNDRILL_SEMISOLID_CLIP = DefineBitwiseConstant();
|
||||
final static long HARD = DefineBitwiseConstant();
|
||||
final static long SLIDE_JUMP_BUNSTRIKE_CANCEL = DefineBitwiseConstant();
|
||||
final static long BUNNY_AMULET = DefineBitwiseConstant();
|
||||
final static long IMPOSSIBLE = DefineBitwiseConstant();
|
||||
final static long CARROT_SHOOTER = DefineBitwiseConstant();
|
||||
final static long CARROT_BOMB = DefineBitwiseConstant();
|
||||
final static long BACKTRACK_1 = DefineBitwiseConstant();
|
||||
final static long ADVANCED_HARD = DefineBitwiseConstant();
|
||||
final static long SPEED5 = DefineBitwiseConstant();
|
||||
final static long KOTRI_1 = DefineBitwiseConstant();
|
||||
final static long COCOA_1 = DefineBitwiseConstant();
|
||||
final static long CHAPTER_1 = DefineBitwiseConstant();
|
||||
final static long WALL_JUMP = DefineBitwiseConstant();
|
||||
final static long AIR_DASH_LV3 = DefineBitwiseConstant();
|
||||
final static long SLIDE_JUMP_BUNSTRIKE = DefineBitwiseConstant();
|
||||
final static long INTERMEDIATE_VERYHARD = DefineBitwiseConstant();
|
||||
final static long TM_PANDORA = DefineBitwiseConstant();
|
||||
final static long HALLOWEEN = DefineBitwiseConstant();
|
||||
final static long BOOST = DefineBitwiseConstant();
|
||||
final static long BOOST_MANY = DefineBitwiseConstant();
|
||||
final static long EIGHT_TILE_WALLJUMP = DefineBitwiseConstant();
|
||||
final static long TM_CHOCOLATE = DefineBitwiseConstant();
|
||||
final static long WATER_ORB = DefineBitwiseConstant();
|
||||
final static long ADVANCED = DefineBitwiseConstant();
|
||||
final static long BUNNY_AMULET_LV2 = DefineBitwiseConstant();
|
||||
final static long TWO_AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static long UNDERWATER = DefineBitwiseConstant();
|
||||
final static long SPEED3 = DefineBitwiseConstant();
|
||||
final static long PIKO_HAMMER_LEVELED = DefineBitwiseConstant();
|
||||
final static long BACKTRACK_3 = DefineBitwiseConstant();
|
||||
final static Long NULL = 0l;
|
||||
final static Long INTERMEDIATE_HARD = DefineBitwiseConstant();
|
||||
final static Long INTERMEDIATE = DefineBitwiseConstant();
|
||||
final static Long SPEED1 = DefineBitwiseConstant();
|
||||
final static Long AIR_DASH = DefineBitwiseConstant();
|
||||
final static Long AIR_JUMP = DefineBitwiseConstant();
|
||||
final static Long EXPLOSIVES_ENEMY = DefineBitwiseConstant();
|
||||
final static Long SLIDING_POWDER = DefineBitwiseConstant();
|
||||
final static Long PROLOGUE_TRIGGER = DefineBitwiseConstant();
|
||||
final static Long EXPLOSIVES = DefineBitwiseConstant();
|
||||
final static Long HAMMER_ROLL_ZIP = DefineBitwiseConstant();
|
||||
final static Long ADVANCED_VERYHARD = DefineBitwiseConstant();
|
||||
final static Long SLIDE_ZIP = DefineBitwiseConstant();
|
||||
final static Long AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static Long WHIRL_BONK = DefineBitwiseConstant();
|
||||
final static Long RABI_SLIPPERS = DefineBitwiseConstant();
|
||||
final static Long BUNNY_STRIKE = DefineBitwiseConstant();
|
||||
final static Long DARKNESS = DefineBitwiseConstant();
|
||||
final static Long WALL_JUMP_LV2 = DefineBitwiseConstant();
|
||||
final static Long WHIRL_BONK_CANCEL = DefineBitwiseConstant();
|
||||
final static Long HAMMER_ROLL = DefineBitwiseConstant();
|
||||
final static Long ADVANCED_STUPID = DefineBitwiseConstant();
|
||||
final static Long DOWNDRILL_SEMISOLID_CLIP = DefineBitwiseConstant();
|
||||
final static Long HARD = DefineBitwiseConstant();
|
||||
final static Long SLIDE_JUMP_BUNSTRIKE_CANCEL = DefineBitwiseConstant();
|
||||
final static Long BUNNY_AMULET = DefineBitwiseConstant();
|
||||
final static Long IMPOSSIBLE = DefineBitwiseConstant();
|
||||
final static Long CARROT_SHOOTER = DefineBitwiseConstant();
|
||||
final static Long CARROT_BOMB = DefineBitwiseConstant();
|
||||
final static Long BACKTRACK_1 = DefineBitwiseConstant();
|
||||
final static Long ADVANCED_HARD = DefineBitwiseConstant();
|
||||
final static Long SPEED5 = DefineBitwiseConstant();
|
||||
final static Long KOTRI_1 = DefineBitwiseConstant();
|
||||
final static Long COCOA_1 = DefineBitwiseConstant();
|
||||
final static Long CHAPTER_1 = DefineBitwiseConstant();
|
||||
final static Long WALL_JUMP = DefineBitwiseConstant();
|
||||
final static Long AIR_DASH_LV3 = DefineBitwiseConstant();
|
||||
final static Long SLIDE_JUMP_BUNSTRIKE = DefineBitwiseConstant();
|
||||
final static Long INTERMEDIATE_VERYHARD = DefineBitwiseConstant();
|
||||
final static Long TM_PANDORA = DefineBitwiseConstant();
|
||||
final static Long HALLOWEEN = DefineBitwiseConstant();
|
||||
final static Long BOOST = DefineBitwiseConstant();
|
||||
final static Long BOOST_MANY = DefineBitwiseConstant();
|
||||
final static Long EIGHT_TILE_WALLJUMP = DefineBitwiseConstant();
|
||||
final static Long TM_CHOCOLATE = DefineBitwiseConstant();
|
||||
final static Long WATER_ORB = DefineBitwiseConstant();
|
||||
final static Long ADVANCED = DefineBitwiseConstant();
|
||||
final static Long BUNNY_AMULET_LV2 = DefineBitwiseConstant();
|
||||
final static Long TWO_AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static Long UNDERWATER = DefineBitwiseConstant();
|
||||
final static Long SPEED3 = DefineBitwiseConstant();
|
||||
final static Long PIKO_HAMMER_LEVELED = DefineBitwiseConstant();
|
||||
final static Long BACKTRACK_3 = DefineBitwiseConstant();
|
||||
|
||||
private static long DefineBitwiseConstant() {/*System.out.println("Restrictions reach a bit-wise value of "+Long.toBinaryString((long)Math.pow(2,i)));*/return (long)Math.pow(2,bitwiseCounter++);}
|
||||
public static List<Node> STARTING_FOREST = new ArrayList<Node>();
|
||||
|
||||
private static void createStartingForest() {
|
||||
Node nn = null;
|
||||
Node EF = new Node(null,NULL,null,NULL,null,NULL,null,NULL);
|
||||
List<Node> n = STARTING_FOREST = List.of(
|
||||
nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,
|
||||
EF,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn,nn
|
||||
);
|
||||
|
||||
private static void createNodes() {
|
||||
Node[] SW = new Node[22];
|
||||
Node[] WC = new Node[23];
|
||||
Node[] IC = new Node[20];
|
||||
Node[] NT = new Node[23];
|
||||
Node[] EH = new Node[25];
|
||||
Node[] RRT = new Node[1];
|
||||
Node[] P = new Node[1];
|
||||
Node[] SA = new Node[2];
|
||||
Node[] SI = new Node[1];
|
||||
InitializeNodes(SW,WC,IC,NT,EH,RRT,P,SA,SI);
|
||||
SW[0].add(SW[1],NULL);
|
||||
SW[0].add(SW[7],NULL);
|
||||
SW[1].add(SW[2],
|
||||
new Long[]{INTERMEDIATE_HARD,SPEED1|INTERMEDIATE,AIR_DASH,AIR_JUMP},
|
||||
NULL);
|
||||
SW[2].add(SW[5],
|
||||
new Long[]{EXPLOSIVES_ENEMY|SLIDING_POWDER|PROLOGUE_TRIGGER},
|
||||
new Long[]{
|
||||
DARKNESS|EXPLOSIVES|SLIDING_POWDER|PROLOGUE_TRIGGER,
|
||||
DARKNESS|EXPLOSIVES|HAMMER_ROLL_ZIP|PROLOGUE_TRIGGER,
|
||||
DARKNESS|ADVANCED_VERYHARD|EXPLOSIVES_ENEMY|SLIDE_ZIP});
|
||||
}
|
||||
private static void InitializeNodes(Node[]...sF) {
|
||||
for (int i=0;i<sF.length;i++) {
|
||||
for (int j=0;j<sF[i].length;j++) {
|
||||
sF[i][j]=new Node();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
createNodes();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,15 +1,25 @@
|
||||
package sig;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class Node{
|
||||
Node north;
|
||||
long northR;
|
||||
Node east;
|
||||
long eastR;
|
||||
Node west;
|
||||
long westR;
|
||||
Node south;
|
||||
long southR;
|
||||
public Node(Node n,long nr,Node e,long er,Node s,long sr,Node w,long wr) {
|
||||
north=n;northR=nr;east=e;eastR=er;south=s;southR=sr;west=w;westR=wr;
|
||||
};
|
||||
HashMap<Node,Long[]> connections = new HashMap<>();
|
||||
public Node() {};
|
||||
public void add(Node n,Long...requirements) {
|
||||
if (!connections.containsKey(n)) {
|
||||
connections.put(n,requirements);
|
||||
n.add(this,requirements);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @param n The node to add.
|
||||
* @param inrequirements The requirements to get to the node.
|
||||
* @param outrequirements The requirements to get from that node back to the current node.
|
||||
*/
|
||||
public void add(Node n,Long[]inrequirements,Long...outrequirements) {
|
||||
if (!connections.containsKey(n)) {
|
||||
connections.put(n,inrequirements);
|
||||
n.add(this,outrequirements);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package sig;
|
||||
|
||||
public class Restriction {
|
||||
private static int i=0;
|
||||
final static long NULL = 0;
|
||||
final static long INTERMEDIATE_HARD = DefineBitwiseConstant();
|
||||
final static long INTERMEDIATE = DefineBitwiseConstant();
|
||||
final static long SPEED1 = DefineBitwiseConstant();
|
||||
final static long AIR_DASH = DefineBitwiseConstant();
|
||||
final static long AIR_JUMP = DefineBitwiseConstant();
|
||||
final static long EXPLOSIVES_ENEMY = DefineBitwiseConstant();
|
||||
final static long SLIDING_POWDER = DefineBitwiseConstant();
|
||||
final static long PROLOGUE_TRIGGER = DefineBitwiseConstant();
|
||||
final static long EXPLOSIVES = DefineBitwiseConstant();
|
||||
final static long HAMMER_ROLL_ZIP = DefineBitwiseConstant();
|
||||
final static long ADVANCED_VHARD = DefineBitwiseConstant();
|
||||
final static long SLIDE_ZIP = DefineBitwiseConstant();
|
||||
final static long AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static long WHIRL_BONK = DefineBitwiseConstant();
|
||||
final static long RABI_SLIPPERS = DefineBitwiseConstant();
|
||||
final static long BUNNY_STRIKE = DefineBitwiseConstant();
|
||||
final static long DARKNESS = DefineBitwiseConstant();
|
||||
final static long WALL_JUMP_LV2 = DefineBitwiseConstant();
|
||||
final static long WHIRL_BONK_CANCEL = DefineBitwiseConstant();
|
||||
final static long HAMMER_ROLL = DefineBitwiseConstant();
|
||||
final static long ADVANCED_STUPID = DefineBitwiseConstant();
|
||||
final static long DOWNDRILL_SEMISOLID_CLIP = DefineBitwiseConstant();
|
||||
final static long HARD = DefineBitwiseConstant();
|
||||
final static long SLIDE_JUMP_BUNSTRIKE_CANCEL = DefineBitwiseConstant();
|
||||
final static long BUNNY_AMULET = DefineBitwiseConstant();
|
||||
final static long IMPOSSIBLE = DefineBitwiseConstant();
|
||||
final static long CARROT_SHOOTER = DefineBitwiseConstant();
|
||||
final static long CARROT_BOMB = DefineBitwiseConstant();
|
||||
final static long BACKTRACK_1 = DefineBitwiseConstant();
|
||||
final static long ADVANCED_HARD = DefineBitwiseConstant();
|
||||
final static long SPEED5 = DefineBitwiseConstant();
|
||||
final static long KOTRI_1 = DefineBitwiseConstant();
|
||||
final static long COCOA_1 = DefineBitwiseConstant();
|
||||
final static long CHAPTER_1 = DefineBitwiseConstant();
|
||||
final static long WALL_JUMP = DefineBitwiseConstant();
|
||||
final static long AIR_DASH_LV3 = DefineBitwiseConstant();
|
||||
final static long SLIDE_JUMP_BUNSTRIKE = DefineBitwiseConstant();
|
||||
final static long INTERMEDIATE_VERYHARD = DefineBitwiseConstant();
|
||||
final static long TM_PANDORA = DefineBitwiseConstant();
|
||||
final static long HALLOWEEN = DefineBitwiseConstant();
|
||||
final static long BOOST = DefineBitwiseConstant();
|
||||
final static long BOOST_MANY = DefineBitwiseConstant();
|
||||
final static long EIGHT_TILE_WALLJUMP = DefineBitwiseConstant();
|
||||
final static long TM_CHOCOLATE = DefineBitwiseConstant();
|
||||
final static long WATER_ORB = DefineBitwiseConstant();
|
||||
final static long ADVANCED = DefineBitwiseConstant();
|
||||
final static long BUNNY_AMULET_LV2 = DefineBitwiseConstant();
|
||||
final static long TWO_AMULET_FOOD = DefineBitwiseConstant();
|
||||
final static long UNDERWATER = DefineBitwiseConstant();
|
||||
final static long SPEED3 = DefineBitwiseConstant();
|
||||
final static long PIKO_HAMMER_LEVELED = DefineBitwiseConstant();
|
||||
final static long BACKTRACK_3 = DefineBitwiseConstant();
|
||||
|
||||
private static long DefineBitwiseConstant() {/*System.out.println("Restrictions reach a bit-wise value of "+Long.toBinaryString((long)Math.pow(2,i)));*/return (long)Math.pow(2,i++);}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user