首先,我将解释我的代码将如何运行。
mainpythonfile.py
只有几行代码导入并调用另一个模块,在该模块完成后,将调用另一个模块,等等。
在我调用第一个模块后,它会按照UPDATE totalscore列的预期运行,并带有相关的ID。
代码:
#starships.py
import level1
level1.levelOne(map)
前往一级模块(此处一切都很好)
#level1.py
import RandomLocation
import sqlcreatetable
import InitMap
import level2
import time
def levelOne(map):
sqlcreatetable.create_table()
sqlcreatetable.user_entry()
if sel_row == stship_row and sel_col == stship_col:
InitMap.spawn_rows(map)
sqlcreatetable.update()
map[guess_row][guess_col] == "D"
print "Congratulations! You Destroyed the enemy's corvette!"
print "Name: ",
sqlcreatetable.read_name()
print "Score: ",
sqlcreatetable.read_score()
advanceLevel = raw_input("Advance to next level? ('y' or 'n') :")
if advanceLevel == "y" or advanceLevel == "Y":
level2.levelTwo(map)
地图生成和表现在在db
中更新#level2.py
import RandomLocation
import sqlcreatetable
from sqlcreatetable import tscore
import InitMap2
import level3
import time
def levelTwo(map):
sqlcreatetable.create_table()
sqlcreatetable.user_entry()
if sel_row == stship_row and sel_col == stship_col:
InitMap.spawn_rows(map)
sqlcreatetable.update()
map[guess_row][guess_col] == "D"
print "Congratulations! You Destroyed the enemy's corvette!"
print "Name: ",
sqlcreatetable.read_name()
print "Score: ",
sqlcreatetable.read_score()
advanceLevel = raw_input("Advance to next level? ('y' or 'n') :")
if advanceLevel == "y" or advanceLevel == "Y":
level3.levelThree(map)
这是一切都停止更新的地方
SQL
#sqlcreatetable.py
import sqlite3
conn = sqlite3.connect('playerscores.db')
c = conn.cursor()
Name = raw_input('Enter your name: ')
tscore = 0
def create_table():
c.execute(
"""CREATE TABLE IF NOT EXISTS scores (id INTEGER PRIMARY KEY, name TEXT UNIQUE, totalscore INTEGER);"""
)
def user_entry():
c.execute(
"""INSERT INTO scores VALUES (NULL,?,NULL)""", (Name,)
)
conn.commit()
def update():
c.execute(
"""SELECT totalscore FROM scores"""
)
c.execute(
"""UPDATE scores
SET totalscore = ? + 1
WHERE id = (SELECT max(id) FROM scores)""", (str(tscore))
)
conn.commit()
def read_score():
c.execute(
"""SELECT totalscore FROM scores WHERE id = (SELECT max(id) FROM scores);"""
)
get_score = c.fetchone()
print get_score
请注意,这些不是整个代码,只是部分代码。
对于如何改进我的数据库(收集这些名称的名称和分数)的任何建议都将不胜感激:)
答案 0 :(得分:0)
好吧基本上我所做的是在update_function()
中创建一个新的sqlcreatetable.py
,然后添加+1
到tscore
变量,我添加+2
,因为{每次score = score+1
为statement
True
但我不认为我想创建多个功能来实现相同的任务