]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - dab/algor.cc
s/saftey/safety/
[bsdgames-darwin.git] / dab / algor.cc
index 1dbf7337eb1d73a14e467015b222b505dda9922e..86fc6e1c1232431d4d1bc899d792dfa2f5543918 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: algor.cc,v 1.2 2005/08/09 02:38:32 christos Exp $      */
+/*     $NetBSD: algor.cc,v 1.5 2012/02/29 23:39:53 joerg Exp $ */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
@@ -40,7 +33,7 @@
  * algor.C: Computer algorithm
  */
 #include "defs.h"
-RCSID("$NetBSD: algor.cc,v 1.2 2005/08/09 02:38:32 christos Exp $")
+RCSID("$NetBSD: algor.cc,v 1.5 2012/02/29 23:39:53 joerg Exp $")
 
 #include "algor.h"
 #include "board.h"
@@ -72,7 +65,7 @@ int ALGOR::find_closure(size_t& y, size_t& x, int& dir, BOARD& b)
                for (dir = BOX::first; dir < BOX::last; dir++)
                    if (!box.isset(dir))
                        return 1;
-               b.abort("find_closure: 3 sided box[%d,%d] has no free sides",
+               b.abort("find_closure: 3 sided box[%zu,%zu] has no free sides",
                        y, x);
            }
        }
@@ -119,7 +112,7 @@ size_t ALGOR::count_closure(size_t& y, size_t& x, int& dir, BOARD& b)
            dir = tdir;
        }
        if ((mv = b.domove(ty, tx, tdir, getWho())) == -1)
-           b.abort("count_closure: Invalid move (%d, %d, %d)", y, x, dir);
+           b.abort("count_closure: Invalid move (%zu, %zu, %d)", y, x, dir);
        else
            i += mv;
     }
@@ -135,9 +128,11 @@ size_t ALGOR::count_closure(size_t& y, size_t& x, int& dir, BOARD& b)
 size_t ALGOR::find_max_closure(size_t& y, size_t& x, int& dir, const BOARD& b)
 {
     BOARD nb(b);
-    int tdir, maxdir = -1;
+    int maxdir = -1;
     size_t nbox, maxbox = 0;
-    size_t tx, ty, maxx = ~0, maxy = ~0;
+    size_t maxx = ~0, maxy = ~0;
+    size_t tx = 0, ty = 0;     /* XXX: GCC */
+    int tdir = 0;              /* XXX: GCC */
 
     while ((nbox = count_closure(ty, tx, tdir, nb)) != 0)
        if (nbox > maxbox) {
@@ -162,7 +157,7 @@ int ALGOR::try_good_turn(BOX& box, size_t y, size_t x, int& dir, BOARD& b)
 {
     // Sanity check; we must have a good box
     if (box.count() >= 2)
-       b.abort("try_good_turn: box[%d,%d] has more than 2 sides occupied",
+       b.abort("try_good_turn: box[%zu,%zu] has more than 2 sides occupied",
                y, x);
 
     // Make sure we don't make a closure in an adjacent box.
@@ -208,7 +203,7 @@ int ALGOR::try_bad_turn(BOX& box, size_t& y, size_t& x, int& dir, BOARD& b,
                        int last)
 {
     if (4 - box.count() <= last)
-       b.abort("try_bad_turn: Called at [%d,%d] for %d with %d",
+       b.abort("try_bad_turn: Called at [%zu,%zu] for %d with %d",
                y, x, last, box.count());
     for (dir = BOX::first; dir < BOX::last; dir++)
        if (!box.isset(dir)) {
@@ -241,16 +236,17 @@ size_t ALGOR::find_min_closure1(size_t& y, size_t& x, int& dir, const BOARD& b,
     int last)
 {
     BOARD nb(b);
-    int tdir, mindir = -1, xdir, mv;
+    int tdir, mindir = -1, mv;
     // number of boxes per closure
     size_t nbox, minbox = nb.nx() * nb.ny() + 1;
     size_t tx, ty, minx = ~0, miny = ~0;
+    int xdir = 0;      /* XXX: GCC */
 
     while (find_bad_turn(ty, tx, tdir, nb, last)) {
 
         // Play a bad move that would cause the opponent's closure
        if ((mv = nb.domove(ty, tx, tdir, getWho())) != 0)
-           b.abort("find_min_closure1: Invalid move %d (%d, %d, %d)", mv,
+           b.abort("find_min_closure1: Invalid move %d (%zu, %zu, %d)", mv,
                    ty, tx, tdir);
 
         // Count the opponent's closure