Flipping bits game: Difference between revisions

Add FOCAL
(Add FOCAL)
Line 1,659:
You solved the game in 3 moves
</pre>
 
=={{header|FOCAL}}==
 
<lang FOCAL>01.10 T "FLIP THE BITS"!"-------------"!!;S M=0
01.20 A "SIZE",N;I (N-2)1.2;I (8-N)1.2
01.30 F I=0,N*N-1;D 3.2;S G(I)=A;S B(I)=A
01.35 D 3.3;S L=FITR(A*5)*2+6;F K=0,L;D 3.1;S Z=A;D 3.2;D 4.4
01.40 S A=0;F I=0,N*N-1;S A=A+FABS(G(I)-B(I))
01.42 T "MOVES",%3,M,!;S M=M+1
01.45 I (0-A)1.5;T !"YOU WIN!"!;Q
01.50 D 2
01.55 A "FLIP ROW (A) OR COLUMN (B)",A;S A=A-1;I (1-A)1.5
01.60 A "WHICH",Z;S Z=Z-1;I (N-A)1.6
01.65 D 4.4;G 1.4
 
02.10 T "--BOARD--";F A=1,N*2-5;T " "
02.14 T "--GOAL--"!" ";F A=0,N-1;T " ";D 5
02.15 T " ";F A=0,N-1;T " ";D 5
02.20 F R=0,N-1;S A=R;T !;D 2.4;T " ";D 2.5
02.30 T !!;R
02.40 D 5;F C=0,N-1;D 2.6
02.50 D 5;F C=0,N-1;D 2.7
02.60 I (B(R*N+C)-1)2.8;T " 1"
02.70 I (G(R*N+C)-1)2.8;T " 1"
02.80 T " 0"
 
03.10 D 3.3;S A=FITR(A*N)
03.20 D 3.3;S A=FITR(A+0.5)
03.30 S A=FABS(FRAN())*10;S A=A-FITR(A)
 
04.40 I (A-1)4.5,4.6
04.50 F I=0,N-1;S B(Z*N+I)=1-B(Z*N+I)
04.60 F I=0,N-1;S B(I*N+Z)=1-B(I*N+Z)
 
05.10 I (A-7)5.2;T "H";R
05.20 I (A-6)5.3;T "G";R
05.30 I (A-5)5.4;T "F";R
05.40 I (A-4)5.5;T "E";R
05.50 I (A-3)5.6;T "D";R
05.60 I (A-2)5.7;T "C";R
05.70 I (A-1)5.8;T "B";R
05.80 T "A"</lang>
 
{{out}}
 
<pre>FLIP THE BITS
-------------
 
SIZE:3
MOVES= 0
--BOARD-- --GOAL--
A B C A B C
A 1 0 1 A 0 1 1
B 1 1 0 B 0 0 0
C 0 0 1 C 0 0 0
 
FLIP ROW (A) OR COLUMN (B):A
WHICH:A
MOVES= 1
--BOARD-- --GOAL--
A B C A B C
A 0 1 0 A 0 1 1
B 1 1 0 B 0 0 0
C 0 0 1 C 0 0 0
 
FLIP ROW (A) OR COLUMN (B):A
WHICH:B
MOVES= 2
--BOARD-- --GOAL--
A B C A B C
A 0 1 0 A 0 1 1
B 0 0 1 B 0 0 0
C 0 0 1 C 0 0 0
 
FLIP ROW (A) OR COLUMN (B):B
WHICH:C
MOVES= 3
 
YOU WIN!</pre>
 
=={{header|Fortran}}==
2,121

edits