Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
1 2 3 4 5 6 7 8 9 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++) { digitalWrite(1, Steps == 0 || Steps == 7); digitalWrite(2, Steps == 3 || Steps == 4); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 7); digitalWrite(4, Steps == 0 || Steps == 5 || Steps == 6); Steps = (Steps + 1) % 8; } } |
I extracted the following code from that output:
1 2 3 4 5 6 7 8 9 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++) { digitalWrite(1, Steps == 0 || Steps == 7); digitalWrite(2, Steps == 3 || Steps == 4); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 7); digitalWrite(4, Steps == 0 || Steps == 5 || Steps == 6); Steps = (Steps + 1) % 8; } } |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++) { digitalWrite(1, Steps == 0 || Steps == 7); digitalWrite(2, Steps == 3 || Steps == 4); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 7); digitalWrite(4, Steps == 0 || Steps == 5 || Steps == 6); Steps = (Steps + 1) % 8; } } #include<stdio.h> #include<stdlib.h> #include <stdio.h> int out = 0; int digitalWrite(int pin, int value) { out *= 101; out += pin; out *= 97; out += value; return out; } int main() { int answer = (stepper(100),out); int expected = -1475775710; if (answer != expected) { printf("Wrong answer; got %d instead of %d.\n", answer, expected); exit(1); } printf("All tests passed\n"); } |
Wrong answer; got -729885183 instead of -1475775710.
main.c: In function 'stepper':
main.c:4:5: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
4 | digitalWrite(1, Steps == 0 || Steps == 7);
| ^~~~~~~~~~~~
Testing if the previous output contains the string All tests passed
: False
Resulting in output: True
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
1 | void stepper(int xw){int S=0;for(int x=0;x<xw;x++){switch(S){case 0:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;case 1:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,1);break;case 2:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,0);break;case 3:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,1);digitalWrite(4,0);break;case 4:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 5:digitalWrite(1,1);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 6:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;case 7:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;default:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;}S=(S+1)%8;}} |
I extracted the following code from that output:
1 | void stepper(int xw){int S=0;for(int x=0;x<xw;x++){switch(S){case 0:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;case 1:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,1);break;case 2:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,0);break;case 3:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,1);digitalWrite(4,0);break;case 4:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 5:digitalWrite(1,1);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 6:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;case 7:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;default:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;}S=(S+1)%8;}} |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | void stepper(int xw){int S=0;for(int x=0;x<xw;x++){switch(S){case 0:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;case 1:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,1);break;case 2:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,0);break;case 3:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,1);digitalWrite(4,0);break;case 4:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 5:digitalWrite(1,1);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 6:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;case 7:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;default:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;}S=(S+1)%8;}} #include<stdio.h> #include<stdlib.h> #include <stdio.h> int out = 0; int digitalWrite(int pin, int value) { out *= 101; out += pin; out *= 97; out += value; return out; } int main() { int answer = (stepper(100),out); int expected = -1475775710; if (answer != expected) { printf("Wrong answer; got %d instead of %d.\n", answer, expected); exit(1); } printf("All tests passed\n"); } |
All tests passed
main.c: In function 'stepper':
main.c:2:69: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
2 | void stepper(int xw){int S=0;for(int x=0;x<xw;x++){switch(S){case 0:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;case 1:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,1);break;case 2:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,1);digitalWrite(4,0);break;case 3:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,1);digitalWrite(4,0);break;case 4:digitalWrite(1,0);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 5:digitalWrite(1,1);digitalWrite(2,1);digitalWrite(3,0);digitalWrite(4,0);break;case 6:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;case 7:digitalWrite(1,1);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,1);break;default:digitalWrite(1,0);digitalWrite(2,0);digitalWrite(3,0);digitalWrite(4,0);break;}S=(S+1)%8;}}
| ^~~~~~~~~~~~
Testing if the previous output contains the string All tests passed
: True
Resulting in output: False
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Here's the shorter version of the `stepper` function:
1 2 3 4 5 6 7 8 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++, Steps = (Steps + 1) % 8) { digitalWrite(1, Steps == 7 || Steps == 0 || Steps == 1); digitalWrite(2, Steps == 3 || Steps == 4 || Steps == 5); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 3); digitalWrite(4, Steps == 5 || Steps == 6 || Steps == 7); } } |
I extracted the following code from that output:
1 2 3 4 5 6 7 8 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++, Steps = (Steps + 1) % 8) { digitalWrite(1, Steps == 7 || Steps == 0 || Steps == 1); digitalWrite(2, Steps == 3 || Steps == 4 || Steps == 5); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 3); digitalWrite(4, Steps == 5 || Steps == 6 || Steps == 7); } } |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | void stepper(int xw) { for (int x = 0, Steps = 0; x < xw; x++, Steps = (Steps + 1) % 8) { digitalWrite(1, Steps == 7 || Steps == 0 || Steps == 1); digitalWrite(2, Steps == 3 || Steps == 4 || Steps == 5); digitalWrite(3, Steps == 1 || Steps == 2 || Steps == 3); digitalWrite(4, Steps == 5 || Steps == 6 || Steps == 7); } } #include<stdio.h> #include<stdlib.h> #include <stdio.h> int out = 0; int digitalWrite(int pin, int value) { out *= 101; out += pin; out *= 97; out += value; return out; } int main() { int answer = (stepper(100),out); int expected = -1475775710; if (answer != expected) { printf("Wrong answer; got %d instead of %d.\n", answer, expected); exit(1); } printf("All tests passed\n"); } |
Wrong answer; got 1747940058 instead of -1475775710.
main.c: In function 'stepper':
main.c:4:5: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
4 | digitalWrite(1, Steps == 7 || Steps == 0 || Steps == 1);
| ^~~~~~~~~~~~
Testing if the previous output contains the string All tests passed
: False
Resulting in output: True
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
1 | void stepper(int xw){for(int x=0,Steps=0;x<xw;x++){digitalWrite(1,Steps%8>6);digitalWrite(2,Steps%8>4);digitalWrite(3,Steps%8>1);digitalWrite(4,Steps%8%2);Steps++;}} |
I extracted the following code from that output:
1 | void stepper(int xw){for(int x=0,Steps=0;x<xw;x++){digitalWrite(1,Steps%8>6);digitalWrite(2,Steps%8>4);digitalWrite(3,Steps%8>1);digitalWrite(4,Steps%8%2);Steps++;}} |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | void stepper(int xw){for(int x=0,Steps=0;x<xw;x++){digitalWrite(1,Steps%8>6);digitalWrite(2,Steps%8>4);digitalWrite(3,Steps%8>1);digitalWrite(4,Steps%8%2);Steps++;}} #include<stdio.h> #include<stdlib.h> #include <stdio.h> int out = 0; int digitalWrite(int pin, int value) { out *= 101; out += pin; out *= 97; out += value; return out; } int main() { int answer = (stepper(100),out); int expected = -1475775710; if (answer != expected) { printf("Wrong answer; got %d instead of %d.\n", answer, expected); exit(1); } printf("All tests passed\n"); } |
Wrong answer; got 1163416604 instead of -1475775710.
main.c: In function 'stepper':
main.c:2:52: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
2 | void stepper(int xw){for(int x=0,Steps=0;x<xw;x++){digitalWrite(1,Steps%8>6);digitalWrite(2,Steps%8>4);digitalWrite(3,Steps%8>1);digitalWrite(4,Steps%8%2);Steps++;}}
| ^~~~~~~~~~~~
Testing if the previous output contains the string All tests passed
: False
Resulting in output: True
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
Code golf this function to be a lot shorter. You only get points if it's <300 bytes (not counting whitespace). Keep the name `stepper`.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | void stepper(int xw) { int Steps = 0; for (int x = 0; x < xw; x++) { switch (Steps) { case 0: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; case 1: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 1); break; case 2: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 1); digitalWrite(4, 0); break; case 3: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 1); digitalWrite(4, 0); break; case 4: digitalWrite(1, 0); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 5: digitalWrite(1, 1); digitalWrite(2, 1); digitalWrite(3, 0); digitalWrite(4, 0); break; case 6: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; case 7: digitalWrite(1, 1); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); break; default: digitalWrite(1, 0); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); break; } Steps = (Steps + 1) % 8; } } |
1 2 3 | void stepper(int xw) { int S=0;for(int x=0;x<xw;x++,S=(S+1)%8){digitalWrite(1,S&1<<2);digitalWrite(2,S&1<<1);digitalWrite(3,S&1);digitalWrite(4,S&1<<3);} } |
I extracted the following code from that output:
1 2 3 | void stepper(int xw) { int S=0;for(int x=0;x<xw;x++,S=(S+1)%8){digitalWrite(1,S&1<<2);digitalWrite(2,S&1<<1);digitalWrite(3,S&1);digitalWrite(4,S&1<<3);} } |
Running the following program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | void stepper(int xw) { int S=0;for(int x=0;x<xw;x++,S=(S+1)%8){digitalWrite(1,S&1<<2);digitalWrite(2,S&1<<1);digitalWrite(3,S&1);digitalWrite(4,S&1<<3);} } #include<stdio.h> #include<stdlib.h> #include <stdio.h> int out = 0; int digitalWrite(int pin, int value) { out *= 101; out += pin; out *= 97; out += value; return out; } int main() { int answer = (stepper(100),out); int expected = -1475775710; if (answer != expected) { printf("Wrong answer; got %d instead of %d.\n", answer, expected); exit(1); } printf("All tests passed\n"); } |
Wrong answer; got 785707078 instead of -1475775710.
main.c: In function 'stepper':
main.c:3:43: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
3 | int S=0;for(int x=0;x<xw;x++,S=(S+1)%8){digitalWrite(1,S&1<<2);digitalWrite(2,S&1<<1);digitalWrite(3,S&1);digitalWrite(4,S&1<<3);}
| ^~~~~~~~~~~~
Testing if the previous output contains the string All tests passed
: False
Resulting in output: True