Prepare node system and start connecting together constraints for the nodes

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago committed by GitHub
parent 06ce92a7a7
commit b1c0e75bc5
  1. 1847
      constraints.txt
  2. 146
      src/sig/MultiRando.java
  3. 32
      src/sig/Node.java
  4. 60
      src/sig/Restriction.java

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…
Cancel
Save