2023W-EFFPROG

Magic Hexagon.
Log | Files | Refs | README

commit 74c704da5109b440ac4b1079107c1abbb2d45c2a
parent 018e6f4f232846a6292f4c7aec4e44545e5e03b6
Author: Luka Kalezic <kaleza98@gmail.com>
Date:   Wed,  3 Jan 2024 16:39:29 +0100

Reduce goto statements

Diffstat:
Mmagichex/src/magichex.c | 9++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/magichex/src/magichex.c b/magichex/src/magichex.c @@ -212,15 +212,18 @@ bool solve(HexagonEntry hexagon[]) /* line */ f = sum(hexagon+r*i+max(0,i+1-n), min(i+n,r+n-i-1), 1, hexagon, hexagon+number_hex_entries); if (f==NOSOLUTION) return false; - if (f==CHANGED) goto restart; + if (f==CHANGED) k = true; /* column (diagonal down-left in the hexagon) */ f = sum(hexagon+i+max(0,i+1-n)*r, min(i+n,r+n-i-1), r, hexagon, hexagon+number_hex_entries); if (f==NOSOLUTION) return false; - if (f==CHANGED) goto restart; + if (f==CHANGED) k = true; /* diagonal (down-right) */ f = sum(hexagon-n+1+i+max(0,n-i-1)*(r+1), min(i+n,r+n-i-1), r+1, hexagon, hexagon+number_hex_entries); if (f==NOSOLUTION) return false; - if (f==CHANGED) goto restart; + if (f==CHANGED) k = true; + } + if(k){ + goto restart; } return true; // all done }