Skip to content

Commit 91edb65

Browse files
committed
temporary commit
1 parent 4a27d89 commit 91edb65

File tree

2 files changed

+31
-67
lines changed

2 files changed

+31
-67
lines changed

.idea/dbnavigator.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Editor.java

Lines changed: 25 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -19,78 +19,15 @@ public Editor()
1919
{
2020
chipList = new LinkedList<>();
2121

22-
/*createChip("XOR", Chip.Defaults.NONE);
23-
Chip x = getChip("XOR");
24-
x.addChip(new Chip("AND1", Chip.Defaults.AND)).addChip(new Chip("AND2", Chip.Defaults.AND)).addChip(new Chip("OR", Chip.Defaults.OR)).addChip(new Chip("NOT", Chip.Defaults.NOT));
25-
x.addInput("A");
26-
x.addInput("B");
27-
x.getInput("A").activated = true;
28-
//x.getInput("B").activated = true;
29-
x.addOutput("C");
30-
31-
x.connectIn("A", "OR", "A");
32-
x.connectIn("B", "OR", "B");
33-
x.connectIn("A", "AND1", "A");
34-
x.connectIn("B", "AND1", "B");
35-
x.interconnect("AND1", "C", "NOT", "A");
36-
x.interconnect("OR", "C", "AND2", "A");
37-
x.interconnect("NOT", "B", "AND2", "B");
38-
x.connectOut("AND2", "C", "C");
39-
40-
runSimulation(x);
41-
pinOut(x);
42-
System.out.println(x.getOutput("C").activated);
43-
44-
createChip("2AND", Chip.Defaults.NONE);
45-
Chip c = getChip("2AND");
46-
c.addChip(new Chip("AND1", Chip.Defaults.AND)).addChip(new Chip("AND2",Chip.Defaults.AND)).addChip(new Chip("AND3",Chip.Defaults.AND));
47-
c.addOutput("Out");
48-
for(int i = 0; i < 4; i++) {
49-
c.addInput("In" + (i + 1));
50-
//c.getInput("In" + (i + 1)).activated = true;
51-
}
52-
c.connectIn("In1", "AND1", "A");
53-
c.connectIn("In2", "AND1", "B");
54-
c.connectIn("In3", "AND2", "A");
55-
c.connectIn("In4", "AND2", "B");
56-
c.interconnect("AND1", "C", "AND3", "A");
57-
c.interconnect("AND2", "C", "AND3", "B");
58-
c.connectOut("AND3", "C", "Out");
59-
60-
runSimulation(c);
61-
pinOut(c);
62-
System.out.println(c.getOutput("Out").activated); */
63-
64-
/*loadFromJson("2AND");
65-
66-
createChip("Test", Chip.Defaults.NONE);
67-
Chip d = getChip("Test");
68-
d.addChip(getChip("2AND")).addChip(new Chip("AND1", Chip.Defaults.AND));
69-
d.addOutput("Out");
70-
for(int i = 0; i < 5; i++) {
71-
d.addInput("In" + (i + 1));
72-
d.getInput("In" + (i + 1)).activated = true;
73-
}
74-
d.connectIn("In1", "2AND", "In1");
75-
d.connectIn("In2", "2AND", "In2");
76-
d.connectIn("In3", "2AND", "In3");
77-
d.connectIn("In4", "2AND", "In4");
78-
d.connectIn("In5", "AND1", "B");
79-
d.interconnect("2AND", "Out", "AND1", "A");
80-
d.connectOut("AND1", "C", "Out");
81-
82-
runSimulation(d);
83-
pinOut(d);
84-
System.out.println(d.getOutput("Out").activated);
85-
86-
saveChipToFile(d); */
22+
//saveChipToFile(d);
8723
Chip e = loadFromJson("Test");
8824
for(int i = 0; i < 5; i++) {
8925
e.getInput("In" + (i + 1)).activated = true;
9026
}
91-
runSimulation(e);
27+
//runSimulation(e);
9228
pinOut(e);
93-
System.out.println(e.getOutput("Out").activated);
29+
//System.out.println(e.getOutput("Out").activated);
30+
printTruthTable(e);
9431
}
9532

9633
public void saveChipToFile(Chip c) {
@@ -375,6 +312,27 @@ public void pinOutOld(Chip c)
375312
}
376313
}
377314

315+
public void printTruthTable(Chip c) {
316+
int totalCombinations = 1 << c.iPins.size(); // 2^n combinations
317+
boolean[][] truthTable = new boolean[totalCombinations][c.iPins.size() + c.oPins.size()];
318+
319+
for (int i = 0; i < totalCombinations; i++) {
320+
for (int j = 0; j < c.iPins.size(); j++) {
321+
truthTable[i][j] = (i & (1 << j)) != 0; // Extract bit as boolean
322+
}
323+
}
324+
325+
for(int i = 0; i < truthTable.length; i++) {
326+
for(int j = 0; j < c.iPins.size(); j++) {
327+
c.iPins.get(j).activated = truthTable[i][j];
328+
}
329+
runSimulation(c);
330+
for(int j = 0; j < c.oPins.size(); j++) {
331+
truthTable[i][c.iPins.size() + j] = c.oPins.get(j).activated;
332+
}
333+
}
334+
}
335+
378336
public void pinOut(Chip c) {
379337
System.out.println(c.name + ":");
380338
int longestPinNameL = 0;

0 commit comments

Comments
 (0)