コード例 #1
0
ファイル: all_games.py プロジェクト: jimsize/PySolFC
def get_text():
    # get_games_func = GAME_DB.getGamesIdSortedById
    get_games_func = GAME_DB.getGamesIdSortedByName

    games_list = {}  # for unique
    for id in get_games_func():
        gi = GAME_DB.get(id)
        games_list[gi.name] = ''
        if gi.name != gi.short_name:
            games_list[gi.short_name] = ''
        for n in gi.altnames:
            games_list[n] = ''
    games_list = list(games_list.keys())
    games_list.sort()
    print('''\
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PySol 0.0.1\\n"
"POT-Creation-Date: %s\\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
"Language-Team: LANGUAGE <*****@*****.**>\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=CHARSET\\n"
"Content-Transfer-Encoding: ENCODING\\n"
"Generated-By: %s 0.1\\n"

''' % (time.asctime(), sys.argv[0]))
    for g in games_list:
        print('msgid "%s"\nmsgstr ""\n' % g)
コード例 #2
0
ファイル: all_games.py プロジェクト: jimsize/PySolFC
def all_games(sort_by='id'):
    # rules_dir = 'rules'
    print('''<table border="2">
<tr><th>ID</th><th>Name</th><th>Alternate names</th><th>Type</th></tr>
''')

    if sort_by == 'id':
        get_games_func = GAME_DB.getGamesIdSortedById
    else:
        get_games_func = GAME_DB.getGamesIdSortedByName

    for id in get_games_func():
        gi = GAME_DB.get(id)
        if not gi.rules_filename:
            rules_fn = getGameRulesFilename(gi.name)
        else:
            rules_fn = gi.rules_filename
        gt = CSI.TYPE_NAME[gi.category]
        if gt == 'French':
            gt = 'French (%s)' % GAME_BY_TYPE[gi.si.game_type]
        name = gi.name
        altnames = '<br>'.join(gi.altnames)
        fn = os.path.join(rules_dir, rules_fn)
        if 1 and os.path.exists(fn):
            print('''<tr><td>%s</td><td>
<a href="%s" title="Rules for this game">%s</a>
</td><td>%s</td><td>%s</td></tr>
''' % (id, fn, name, altnames, gt))
        else:
            print('''<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>
''' % (id, name, altnames, gt))
    print('</table>')
コード例 #3
0
def all_games(sort_by='id'):
    # rules_dir = 'rules'
    print('''<table border="2">
<tr><th>ID</th><th>Name</th><th>Alternate names</th><th>Type</th></tr>
''')

    if sort_by == 'id':
        get_games_func = GAME_DB.getGamesIdSortedById
    else:
        get_games_func = GAME_DB.getGamesIdSortedByName

    for id in get_games_func():
        gi = GAME_DB.get(id)
        if not gi.rules_filename:
            rules_fn = getGameRulesFilename(gi.name)
        else:
            rules_fn = gi.rules_filename
        gt = CSI.TYPE_NAME[gi.category]
        if gt == 'French':
            gt = 'French (%s)' % GAME_BY_TYPE[gi.si.game_type]
        name = gi.name.encode('utf-8')
        altnames = '<br>'.join(gi.altnames).encode('utf-8')
        fn = os.path.join(rules_dir, rules_fn)
        if 1 and os.path.exists(fn):
            print('''<tr><td>%s</td><td>
<a href="%s" title="Rules for this game">%s</a>
</td><td>%s</td><td>%s</td></tr>
''' % (id, fn, name, altnames, gt))
        else:
            print('''<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>
''' % (id, name, altnames, gt))
    print('</table>')
コード例 #4
0
def get_text():
    # get_games_func = GAME_DB.getGamesIdSortedById
    get_games_func = GAME_DB.getGamesIdSortedByName

    games_list = {}  # for unique
    for id in get_games_func():
        gi = GAME_DB.get(id)
        games_list[gi.name] = ''
        if gi.name != gi.short_name:
            games_list[gi.short_name] = ''
        for n in gi.altnames:
            games_list[n] = ''
    games_list = list(games_list.keys())
    games_list.sort()
    print('''\
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PySol 0.0.1\\n"
"POT-Creation-Date: %s\\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
"Language-Team: LANGUAGE <*****@*****.**>\\n"
"MIME-Version: 1.0\\n"
"Content-Type: text/plain; charset=CHARSET\\n"
"Content-Transfer-Encoding: ENCODING\\n"
"Generated-By: %s 0.1\\n"

''' % (time.asctime(), sys.argv[0]))
    for g in games_list:
        print('msgid "%s"\nmsgstr ""\n' % g)
コード例 #5
0
ファイル: all_games.py プロジェクト: TrevorLowing/PyGames
def plain_text():
    get_games_func = GAME_DB.getGamesIdSortedByName
    for id in get_games_func():
        gi = GAME_DB.get(id)
        if gi.category == GI.GC_FRENCH:
            ##print str(gi.gameclass)
            ##gc = gi.gameclass
            ##h = gc.Hint_Class is None and 'None' or gc.Hint_Class.__name__
            ##print gi.name.encode('utf-8'), h
            print gi.name.encode("utf-8")
            for n in gi.altnames:
                print n.encode("utf-8")
コード例 #6
0
def plain_text():
    get_games_func = GAME_DB.getGamesIdSortedByName
    for id in get_games_func():
        gi = GAME_DB.get(id)
        if gi.category == GI.GC_FRENCH:
            # print str(gi.gameclass)
            # gc = gi.gameclass
            # h = gc.Hint_Class is None and 'None' or gc.Hint_Class.__name__
            # print gi.name.encode('utf-8'), h
            print(gi.name)
            for n in gi.altnames:
                print(n)
コード例 #7
0
ファイル: all_games.py プロジェクト: TrevorLowing/PyGames
def old_plain_text():
    # get_games_func = GAME_DB.getGamesIdSortedById
    get_games_func = GAME_DB.getGamesIdSortedByName
    games_list = {}  # for unique
    for id in get_games_func():
        gi = GAME_DB.get(id)
        games_list[gi.name] = ""
        # if gi.name != gi.short_name:
        #    games_list[gi.short_name] = ''
        for n in gi.altnames:
            games_list[n] = ""
    games_list = games_list.keys()
    games_list.sort()
    for g in games_list:
        print g.encode("utf-8")
コード例 #8
0
def old_plain_text():
    # get_games_func = GAME_DB.getGamesIdSortedById
    get_games_func = GAME_DB.getGamesIdSortedByName
    games_list = {}  # for unique
    for id in get_games_func():
        gi = GAME_DB.get(id)
        games_list[gi.name] = ''
        # if gi.name != gi.short_name:
        #    games_list[gi.short_name] = ''
        for n in gi.altnames:
            games_list[n] = ''
    games_list = games_list.keys()
    games_list.sort()
    for g in games_list:
        print(g)
コード例 #9
0
ファイル: all_games.py プロジェクト: TrevorLowing/PyGames
def all_games(sort_by="id"):
    # rules_dir = 'rules'
    print """<table border="2">
<tr><th>ID</th><th>Name</th><th>Alternate names</th><th>Type</th></tr>
"""

    if sort_by == "id":
        get_games_func = GAME_DB.getGamesIdSortedById
    else:
        get_games_func = GAME_DB.getGamesIdSortedByName

    for id in get_games_func():
        gi = GAME_DB.get(id)
        if not gi.rules_filename:
            rules_fn = getGameRulesFilename(gi.name)
        else:
            rules_fn = gi.rules_filename
        gt = CSI.TYPE_NAME[gi.category]
        if gt == "French":
            gt = "French (%s)" % GAME_BY_TYPE[gi.si.game_type]
        name = gi.name.encode("utf-8")
        altnames = "<br>".join(gi.altnames).encode("utf-8")
        fn = os.path.join(rules_dir, rules_fn)
        if 1 and os.path.exists(fn):
            print """<tr><td>%s</td><td>
<a href="%s" title="Rules for this game">%s</a>
</td><td>%s</td><td>%s</td></tr>
""" % (
                id,
                fn,
                name,
                altnames,
                gt,
            )
        else:
            print """<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>
""" % (
                id,
                name,
                altnames,
                gt,
            )
    print "</table>"
コード例 #10
0
def by_category():
    games = GAME_DB.getGamesIdSortedById()
    games_by_cat = {}
    for id in games:
        gi = GAME_DB.get(id)
        gt = CSI.TYPE_NAME[gi.category]
        if games_by_cat.has_key(gt):
            games_by_cat[gt] += 1
        else:
            games_by_cat[gt] = 1
    games_by_cat_list = [(i, j) for i, j in games_by_cat.items()]
    games_by_cat_list.sort(lambda i, j: cmp(j[1], i[1]))
##     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
##     for i in games_by_cat_list:
##         print '<tr><td>%s</td><td>%s</td></tr>' % i
##     print '</table>'
    print '<ul>'
    for i in games_by_cat_list:
        print '<li>%s (%s games)</li>' % i
    print '</ul>'
    return
コード例 #11
0
ファイル: all_games.py プロジェクト: TrevorLowing/PyGames
def by_category():
    games = GAME_DB.getGamesIdSortedById()
    games_by_cat = {}
    for id in games:
        gi = GAME_DB.get(id)
        gt = CSI.TYPE_NAME[gi.category]
        if games_by_cat.has_key(gt):
            games_by_cat[gt] += 1
        else:
            games_by_cat[gt] = 1
    games_by_cat_list = [(i, j) for i, j in games_by_cat.items()]
    games_by_cat_list.sort(lambda i, j: cmp(j[1], i[1]))
    ##     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
    ##     for i in games_by_cat_list:
    ##         print '<tr><td>%s</td><td>%s</td></tr>' % i
    ##     print '</table>'
    print "<ul>"
    for i in games_by_cat_list:
        print "<li>%s (%s games)</li>" % i
    print "</ul>"
    return
コード例 #12
0
ファイル: all_games.py プロジェクト: jimsize/PySolFC
def by_category():
    games = GAME_DB.getGamesIdSortedById()
    games_by_cat = {}
    for id in games:
        gi = GAME_DB.get(id)
        gt = CSI.TYPE_NAME[gi.category]
        if gt in games_by_cat:
            games_by_cat[gt] += 1
        else:
            games_by_cat[gt] = 1
    games_by_cat_list = [(i, j) for i, j in games_by_cat.items()]
    games_by_cat_list.sort(key=lambda x: x[1])
    games_by_cat_list = games_by_cat_list[::-1]
#     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
#     for i in games_by_cat_list:
#         print '<tr><td>%s</td><td>%s</td></tr>' % i
#     print '</table>'
    print('<ul>')
    for i in games_by_cat_list:
        print('<li>%s (%s games)</li>' % i)
    print('</ul>')
    return
コード例 #13
0
def by_category():
    games = GAME_DB.getGamesIdSortedById()
    games_by_cat = {}
    for id in games:
        gi = GAME_DB.get(id)
        gt = CSI.TYPE_NAME[gi.category]
        if gt in games_by_cat:
            games_by_cat[gt] += 1
        else:
            games_by_cat[gt] = 1
    games_by_cat_list = [(i, j) for i, j in games_by_cat.items()]
    games_by_cat_list.sort(key=lambda x: x[1])
    games_by_cat_list = games_by_cat_list[::-1]
#     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
#     for i in games_by_cat_list:
#         print '<tr><td>%s</td><td>%s</td></tr>' % i
#     print '</table>'
    print('<ul>')
    for i in games_by_cat_list:
        print('<li>%s (%s games)</li>' % i)
    print('</ul>')
    return
コード例 #14
0
def by_type():
    games = GAME_DB.getGamesIdSortedById()
    games_by_type = {}
    for id in games:
        gi = GAME_DB.get(id)
        if not GAME_BY_TYPE.has_key(gi.si.game_type):
            print gi.si.game_type
            continue
        gt = GAME_BY_TYPE[gi.si.game_type]
        if games_by_type.has_key(gt):
            games_by_type[gt] += 1
        else:
            games_by_type[gt] = 1
    games_by_type_list = games_by_type.items()
    games_by_type_list.sort(lambda i, j: cmp(i[0], j[0]))
##     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
##     for i in games_by_type_list:
##         print '<tr><td>%s</td><td>%s</td></tr>' % i
##     print '</table>'
    print '<ul>'
    for i in games_by_type_list:
        print '<li>%s (%s games)</li>' % i
    print '</ul>'
    return
コード例 #15
0
def by_type():
    games = GAME_DB.getGamesIdSortedById()
    games_by_type = {}
    for id in games:
        gi = GAME_DB.get(id)
        if gi.si.game_type not in GAME_BY_TYPE:
            print(gi.si.game_type)
            continue
        gt = GAME_BY_TYPE[gi.si.game_type]
        if gt in games_by_type:
            games_by_type[gt] += 1
        else:
            games_by_type[gt] = 1
    games_by_type_list = list(games_by_type.items())
    games_by_type_list.sort(key=lambda x: x[0])
    #  print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
    #  for i in games_by_type_list:
    #      print '<tr><td>%s</td><td>%s</td></tr>' % i
    #  print '</table>'
    print('<ul>')
    for i in games_by_type_list:
        print('<li>%s (%s games)</li>' % i)
    print('</ul>')
    return
コード例 #16
0
ファイル: all_games.py プロジェクト: jimsize/PySolFC
def by_type():
    games = GAME_DB.getGamesIdSortedById()
    games_by_type = {}
    for id in games:
        gi = GAME_DB.get(id)
        if gi.si.game_type not in GAME_BY_TYPE:
            print(gi.si.game_type)
            continue
        gt = GAME_BY_TYPE[gi.si.game_type]
        if gt in games_by_type:
            games_by_type[gt] += 1
        else:
            games_by_type[gt] = 1
    games_by_type_list = list(games_by_type.items())
    games_by_type_list.sort(key=lambda x: x[0])
    #  print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
    #  for i in games_by_type_list:
    #      print '<tr><td>%s</td><td>%s</td></tr>' % i
    #  print '</table>'
    print('<ul>')
    for i in games_by_type_list:
        print('<li>%s (%s games)</li>' % i)
    print('</ul>')
    return
コード例 #17
0
ファイル: all_games.py プロジェクト: TrevorLowing/PyGames
def by_type():
    games = GAME_DB.getGamesIdSortedById()
    games_by_type = {}
    for id in games:
        gi = GAME_DB.get(id)
        if not GAME_BY_TYPE.has_key(gi.si.game_type):
            print gi.si.game_type
            continue
        gt = GAME_BY_TYPE[gi.si.game_type]
        if games_by_type.has_key(gt):
            games_by_type[gt] += 1
        else:
            games_by_type[gt] = 1
    games_by_type_list = games_by_type.items()
    games_by_type_list.sort(lambda i, j: cmp(i[0], j[0]))
    ##     print '<table border="2"><tr><th>Name</th><th>Number</th></tr>'
    ##     for i in games_by_type_list:
    ##         print '<tr><td>%s</td><td>%s</td></tr>' % i
    ##     print '</table>'
    print "<ul>"
    for i in games_by_type_list:
        print "<li>%s (%s games)</li>" % i
    print "</ul>"
    return
コード例 #18
0
def gen_rules_html():
    # ls = glob(os.path.join('rules', '*.html'))
    rules_ls = os.listdir('rules')
    rules_ls.sort()
    wikipedia_ls = os.listdir('wikipedia')
    wikipedia_ls.sort()

    games = GAME_DB.getGamesIdSortedByName()
    rules_list = []
    files_list = []
    for fn, tt in rules_files:
        rules_list.append(('rules', fn, tt, ''))
        files_list.append(fn)
    for fn, tt in wikipedia_files:
        rules_list.append(('wikipedia', fn, tt, ''))
        files_list.append(fn)
    altnames = []

    # open file of list of all rules
    out_rules = open(os.path.join('html', 'rules.html'), 'w')
    print >> out_rules, main_header % 'PySol - a Solitaire Game Collection'
    print >> out_rules, open('rules.html').read()

    for id in games:
        # create list of rules

        gi = GAME_DB.get(id)

        rules_fn = gi.rules_filename
        if not rules_fn:
            rules_fn = getGameRulesFilename(gi.name)

        if rules_fn in files_list:
            continue

        if rules_fn in rules_ls:
            rules_dir = 'rules'
        elif rules_fn in wikipedia_ls:
            rules_dir = 'wikipedia'
        else:
            print('missing rules for %s (file: %s)' %
                  (gi.name.encode('utf-8'), rules_fn))
            continue

        # print '>>>', rules_fn

        title = 'PySol - Rules for ' + gi.name
        s = ''
        if gi.si.game_type == GI.GT_HANAFUDA:
            s = '<a href="../hanafuda.html">General Flower Card rules</a>'
        elif gi.si.game_type == GI.GT_DASHAVATARA_GANJIFA:
            s = '<a href="../ganjifa.html">About Ganjifa</a>'
        elif gi.si.game_type == GI.GT_HEXADECK:
            s = '<a href="../hexadeck.html">General Hex A Deck rules</a>'
        elif gi.si.game_type == GI.GT_MUGHAL_GANJIFA:
            s = '<a href="../ganjifa.html">About Ganjifa</a>'
            # print '***', gi.name, '***'

        rules_list.append((rules_dir, rules_fn, title, s))
        files_list.append(rules_fn)
        # rules_list.append((rules_fn, gi.name))
        print >> out_rules, '<li><a href="rules/%s">%s</a>' \
            % (rules_fn, gi.name.encode('utf-8'))
        for n in gi.altnames:
            altnames.append((n, rules_fn))

    print >> out_rules, '</ul>\n' + \
        main_footer % '<a href="index.html">Back to the index</a>'

    # create file of altnames
    out_rules_alt = open(os.path.join('html', 'rules_alternate.html'), 'w')
    print >> out_rules_alt, main_header % 'PySol - a Solitaire Game Collection'
    print >> out_rules_alt, open('rules_alternate.html').read()
    altnames.sort()
    for name, fn in altnames:
        print >> out_rules_alt, '<li> <a href="rules/%s">%s</a>' \
              % (fn, name.encode('utf-8'))
    print >> out_rules_alt, '</ul>\n' + \
        main_footer % '<a href="index.html">Back to the index</a>'

    # create rules
    for dir, filename, title, footer in rules_list:
        outfile = open(os.path.join('html', 'rules', filename), 'w')
        if dir == 'rules':
            print >> outfile, (rules_header % title).encode('utf-8')
        else:  # d == 'wikipedia'
            print >> outfile, (wikipedia_header % title).encode('utf-8')
        print >> outfile, open(os.path.join(dir, filename)).read()
        print >> outfile, rules_footer % footer
コード例 #19
0
ファイル: gen-html.py プロジェクト: voyageur/PySolFC
def gen_rules_html():
    # ls = glob(os.path.join('rules', '*.html'))
    rules_ls = os.listdir('rules')
    rules_ls.sort()
    wikipedia_ls = os.listdir('wikipedia')
    wikipedia_ls.sort()

    games = GAME_DB.getGamesIdSortedByName()
    rules_list = []
    files_list = []
    for fn, tt in rules_files:
        rules_list.append(('rules', fn, tt, ''))
        files_list.append(fn)
    for fn, tt in wikipedia_files:
        rules_list.append(('wikipedia', fn, tt, ''))
        files_list.append(fn)
    altnames = []

    # open file of list of all rules
    out_rules = open(os.path.join('html', 'rules.html'), 'w')
    print >> out_rules, main_header % 'PySol - a Solitaire Game Collection'
    print >> out_rules, open('rules.html').read()

    for id in games:
        # create list of rules

        gi = GAME_DB.get(id)

        rules_fn = gi.rules_filename
        if not rules_fn:
            rules_fn = getGameRulesFilename(gi.name)

        if rules_fn in files_list:
            continue

        if rules_fn in rules_ls:
            rules_dir = 'rules'
        elif rules_fn in wikipedia_ls:
            rules_dir = 'wikipedia'
        else:
            print('missing rules for %s (file: %s)'
                  % (gi.name.encode('utf-8'), rules_fn))
            continue

        # print '>>>', rules_fn

        title = 'PySol - Rules for ' + gi.name
        s = ''
        if gi.si.game_type == GI.GT_HANAFUDA:
            s = '<a href="../hanafuda.html">General Flower Card rules</a>'
        elif gi.si.game_type == GI.GT_DASHAVATARA_GANJIFA:
            s = '<a href="../ganjifa.html">About Ganjifa</a>'
        elif gi.si.game_type == GI.GT_HEXADECK:
            s = '<a href="../hexadeck.html">General Hex A Deck rules</a>'
        elif gi.si.game_type == GI.GT_MUGHAL_GANJIFA:
            s = '<a href="../ganjifa.html">About Ganjifa</a>'
            # print '***', gi.name, '***'

        rules_list.append((rules_dir, rules_fn, title, s))
        files_list.append(rules_fn)
        # rules_list.append((rules_fn, gi.name))
        print >> out_rules, '<li><a href="rules/%s">%s</a>' \
            % (rules_fn, gi.name.encode('utf-8'))
        for n in gi.altnames:
            altnames.append((n, rules_fn))

    print >> out_rules, '</ul>\n' + \
        main_footer % '<a href="index.html">Back to the index</a>'

    # create file of altnames
    out_rules_alt = open(os.path.join('html', 'rules_alternate.html'), 'w')
    print >> out_rules_alt, main_header % 'PySol - a Solitaire Game Collection'
    print >> out_rules_alt, open('rules_alternate.html').read()
    altnames.sort()
    for name, fn in altnames:
        print >> out_rules_alt, '<li> <a href="rules/%s">%s</a>' \
              % (fn, name.encode('utf-8'))
    print >> out_rules_alt, '</ul>\n' + \
        main_footer % '<a href="index.html">Back to the index</a>'

    # create rules
    for dir, filename, title, footer in rules_list:
        outfile = open(os.path.join('html', 'rules', filename), 'w')
        if dir == 'rules':
            print >> outfile, (rules_header % title).encode('utf-8')
        else:  # d == 'wikipedia'
            print >> outfile, (wikipedia_header % title).encode('utf-8')
        print >> outfile, open(os.path.join(dir, filename)).read()
        print >> outfile, rules_footer % footer
コード例 #20
0
 def constructGame(self, id):
     gi = GAME_DB.get(id)
     if gi is None:
         raise Exception("Unknown game (id %d)" % id)
     return gi.gameclass(gi)
コード例 #21
0
ファイル: gen-html.py プロジェクト: joeraz/PySolFC
def gen_rules_html():
    # ls = glob(os.path.join('rules', '*.html'))
    rules_ls = os.listdir('rules')
    rules_ls.sort()
    wikipedia_ls = os.listdir('wikipedia')
    wikipedia_ls.sort()

    games = GAME_DB.getGamesIdSortedByName()
    rules_list = []
    files_list = []
    for fn, tt in rules_files:
        rules_list.append(('rules', fn, tt, ''))
        files_list.append(fn)
    for fn, tt in wikipedia_files:
        rules_list.append(('wikipedia', fn, tt, ''))
        files_list.append(fn)
    altnames = []

    # open file of list of all rules
    out_rules = open(os.path.join('html', 'rules.html'), 'w')
    print(_fmt(main_header, {'title': 'PySol - a Solitaire Game Collection'}),
          file=out_rules)
    with open('rules.html', 'r') as file:
        print(file.read(), file=out_rules)

    for id in games:
        # create list of rules

        gi = GAME_DB.get(id)

        rules_fn = gi.rules_filename
        if not rules_fn:
            rules_fn = _get_game_rules_filename(gi.name)

        if rules_fn in rules_ls:
            rules_dir = 'rules'
        elif rules_fn in wikipedia_ls:
            rules_dir = 'wikipedia'
        else:
            print('missing rules for %s (file: %s)' % (gi.name, rules_fn))
            continue

        # print '>>>', rules_fn
        if rules_fn not in files_list:
            title = 'PySol - Rules for ' + gi.name
            s = ''
            if gi.si.game_type == GI.GT_HANAFUDA:
                s = '<a href="../hanafuda.html">General Flower Card rules</a>'
            elif gi.si.game_type == GI.GT_DASHAVATARA_GANJIFA or \
                    gi.si.game_type == GI.GT_MUGHAL_GANJIFA:
                s = '<a href="../ganjifa.html">About Ganjifa</a>'
            elif gi.si.game_type == GI.GT_HEXADECK:
                s = '<a href="../hexadeck.html">General Hex A Deck rules</a>'

            rules_list.append((rules_dir, rules_fn, title, s))
        files_list.append(rules_fn)
        # rules_list.append((rules_fn, gi.name))
        print('<li><a href="rules/%s">%s</a>' % (rules_fn, gi.name),
              file=out_rules)
        for n in gi.altnames:
            altnames.append((n, rules_fn))

    print('</ul>\n' + _fmt(
        main_footer,
        {'back_to_index_link': '<a href="index.html">Back to the index</a>'}),
          file=out_rules)

    out_rules.close()

    # create file of altnames
    out_rules_alt = open(os.path.join('html', 'rules_alternate.html'), 'w')
    print(_fmt(main_header, {'title': 'PySol - a Solitaire Game Collection'}),
          file=out_rules_alt)
    with open('rules_alternate.html', 'r') as file:
        print(file.read(), file=out_rules_alt)
    altnames.sort()
    for name, fn in altnames:
        print('<li> <a href="rules/%s">%s</a>' % (fn, name),
              file=out_rules_alt)
    print('</ul>\n' + _fmt(
        main_footer,
        {'back_to_index_link': '<a href="index.html">Back to the index</a>'}),
          file=out_rules_alt)
    out_rules_alt.close()

    # create rules
    for dir, filename, title, footer in rules_list:
        outfile = open(os.path.join('html', 'rules', filename),
                       'w',
                       encoding='utf-8')
        if dir == 'rules':
            print(_fmt(rules_header, {'title': title}), file=outfile)
        else:  # d == 'wikipedia'
            print(_fmt(wikipedia_header, {'title': title}), file=outfile)
        with open(os.path.join(dir, filename), 'r', encoding='utf-8') as file:
            print(file.read(), file=outfile)
        print(_fmt(rules_footer, {'footer': footer}), file=outfile)
        outfile.close()
コード例 #22
0
 def constructGame(self, id):
     gi = GAME_DB.get(id)
     if gi is None:
         raise Exception("Unknown game (id %d)" % id)
     return gi.gameclass(gi)