Lines Matching refs:mm
44 movallow(struct move *mm)
48 if (mm->d0)
49 mswap(mm);
50 m = (mm->D0 == mm->D1 ? 4 : 2);
52 mm->p[i] = bar;
57 mm->h[i] = 0;
60 mm->g[i] = bar + cturn * mm->D1;
62 mm->g[i] = bar + cturn * mm->D0;
63 if (makmove(mm, i) != 0) {
64 if (mm->d0 || m == 4)
66 mswap(mm);
67 movback(mm, i);
71 mm->p[i] = bar;
77 if ((mm->p[i] += cturn) == home) {
81 movback(mm, i);
82 mm->p[i--] = bar;
83 if (mm->p[i] != bar)
88 if (mm->d0 || m == 4)
90 mswap(mm);
91 movback(mm, i);
93 mm->p[i] = bar;
98 mm->g[i] = mm->p[i] + cturn * mm->D1;
100 mm->g[i] = mm->p[i] + cturn * mm->D0;
101 if (mm->g[i] * cturn > home) {
103 mm->g[i] = home;
107 if (board[mm->p[i]] * cturn > 0 && makmove(mm, i) == 0)
110 movback(mm, i);