File: pat2inc.c

package info (click to toggle)
gnushogi 1.5~git20140725-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,900 kB
  • sloc: ansic: 12,731; sh: 4,104; makefile: 128
file content (98 lines) | stat: -rw-r--r-- 2,562 bytes parent folder | download
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
 * FILE: pat2inc.c
 *
 *     Convert GNU Shogi pattern textfile to an include file.
 *
 * ----------------------------------------------------------------------
 * Copyright (c) 1993, 1994, 1995 Matthias Mutz
 * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
 * Copyright (c) 2008, 2013, 2014 Yann Dirson and the Free Software Foundation
 *
 * GNU SHOGI is based on GNU CHESS
 *
 * Copyright (c) 1988, 1989, 1990 John Stanback
 * Copyright (c) 1992 Free Software Foundation
 *
 * This file is part of GNU SHOGI.
 *
 * GNU Shogi is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 3 of the License,
 * or (at your option) any later version.
 *
 * GNU Shogi is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with GNU Shogi; see the file COPYING. If not, see
 * <http://www.gnu.org/licenses/>.
 * ----------------------------------------------------------------------
 *
 */

#include "gnushogi.h"
#include "pattern.h"


extern void ReadOpeningSequences(short *pindex, const char* patternfile);
extern void WriteOpeningSequences(short pindex, const char* patternincfile);

small_short board[NO_SQUARES];
small_short color[NO_SQUARES];

int
main(int argc, char **argv)
{
    short sq, side, max_pattern_data;

    if (argc != 3) {
        fprintf(stderr, "Usage: %s gnushogi.pat pattern.inc\n", argv[0]);
        exit(1);
    }
    char* patternfile = argv[1];
    char* patternincfile = argv[2];

#ifdef TEST_DISTANCE
    short d;
    char  s[80];
#endif

    Initialize_data();

    for (sq = 0; sq < NO_SQUARES; sq++)
    {
        board[sq] = no_piece;
        color[sq] = neutral;
    }

    ClearCaptured();

    for (side = 0; side <= 1; side++)
        PieceCnt[side] = -1;

#ifdef TEST_DISTANCE
    strcpy(s, "g6i k5i g4i p9g p8g r* s3h p7g b8h B* S5f");

    if (string_to_board_color(s))
    {
        printf("ERROR IN string_to_board_color");
        exit(1);
    }
    else
    {
        UpdateDisplay(0, 0, 1, 0);
    }

    d = pattern_distance(black, &pattern);

    printf("distance = %d\n", d);

#endif

    ReadOpeningSequences(&max_pattern_data, patternfile);
    WriteOpeningSequences(max_pattern_data, patternincfile);

    return 0;
}