-
Notifications
You must be signed in to change notification settings - Fork 8
The ACC chip takes two numbers and combines them. That means, it swallows the first attacker, waits for a second one, and then performs its action. You will notice that the chip changes to an "activated" state. It doesn't matter whether the two numbers come in on the same path or through two different links.
Unlike other chips, the accumulator can only be upgraded twice. The operation performed depends on the upgrade.
In its basic state, the ACC adds the two numbers, yielding the sum of the two input values. This is denoted by the symbol + in the ACC chip.
graph LR;
none1( )
none2( )
acc(ACC +)
none3( )
none1--1101-->acc--10011-->none3
none2--0110-->acc
classDef acc stroke:#FFEB3B,stroke-width:4px;
class acc acc
classDef none stroke:#07DD00,stroke-width:0px;
class none1,none2,none3 none
After the first upgrade, the ACC performs a bitwise OR operation. The digits of the two numbers are compared bit-to-bit (starting from the right); if one of them is 1, then the resulting bit is 1.
The result is never greater than the sum of the two numbers. In the best case, it is equal to the greater of the two.
The ACC chip shows the symbol v (from Latin vel, "or").
graph LR;
none1( )
none2( )
acc(ACC v)
none3( )
none1--1101-->acc--1111-->none3
none2--0110-->acc
classDef acc stroke:#FFEB3B,stroke-width:4px;
class acc acc
classDef none stroke:#07DD00,stroke-width:0px;
class none1,none2,none3 none
The second upgrade changes the ACC operation into bitwise AND operation. The resulting digit is 0 if any of the two input bits are 0.
In the worst case, the result is equal to the lesser of the two numbers. In the best case, it is zero.
The ACC chip shows the symbol &.
graph LR;
none1( )
none2( )
acc(ACC &)
none3( )
none1--1101-->acc--0100-->none3
none2--0110-->acc
classDef acc stroke:#FFEB3B,stroke-width:4px;
class acc acc
classDef none stroke:#07DD00,stroke-width:0px;
class none1,none2,none3 none
Hex | Binary | Decimal | |
---|---|---|---|
x0E | 1110 | 14 | |
x06 | 0110 | 6 | |
x0E + x06 | x14 | 0001 0100 | 20 |
x0E v x06 | x0E | 1110 | 14 |
x0E & x06 | x06 | 0110 | 6 |
Hex | Binary | Decimal | |
---|---|---|---|
x3A | 0011 1010 | 58 | |
x43 | 0100 0011 | 67 | |
x3A + x43 | x7D | 0111 1101 | 125 |
x3A v x43 | x7B | 0111 1011 | 123 |
x3A & x43 | x02 | 0000 0010 | 2 |
The main purpose of ACC is to reduce the attacker's frequency; in fact, it takes out one out of two attackers. On the downside, the resulting number may be stronger than before. At least in the basic variant.
After the 2nd upgrade, in the & version, ACC massively reduces the strength of the attackers, making it a very strong chip. It has two drawbacks:
- The base price of ACC goes up if there are already other chips of the same type, and
- Cryptocoins are completey unaffected by ACC.
Note that the operation is executed in the moment when the second attacker enters the chip. That means, if you upgrade the ACC chip while it is in activated state, the operation will already benefit from the upgrade.