2014-01-21 71 views
0

我正在python中运行3分钟的小型电脑游戏。这是一个控制台游戏。屏幕不会每隔几毫秒更新一次,但每隔几秒就会打印出新的信息,玩家必须在不同的选项中进行选择。在固定时间执行python程序

所以我需要的是,

  1. 能力3分钟计时之前运行的脚本
  2. 能够运行一个脚本整整3分钟。
  3. 在遍历定时部分时,能够准确知道剩余时间和剩余时间。
  4. 能够将控制权转移到另一个脚本,以等待3分钟后运行。
+0

听起来像一个项目,让我们知道它是如何去。 – jramirez

+0

不是。真诚的不。在早期的比赛中进行了固定数量的更新,但这并没有给出最终比赛的前卫感。必须做一个基于时间的事情。 – tMJ

+0

你是否真的需要单独的Python程序(“脚本”,你似乎指的是一个)?或者,整个系统可以是一个Python程序,用Python函数,模块等细分功能?如果你可以在一个Python程序中完成所有工作,它肯定会比试图管理多个Python程序的运行时更加简单和容易。 –

回答

0

那么我最终使用线程和锁定了它。

from datetime import datetime,timedelta 
from threading import Thread, Lock 

locker = Lock() 

def printsomething(string): 
    if string.seconds: 
     print string.seconds,"seconds left" 
    else: 
     print "less than a second left" 

def func(): 
    start_time = datetime.now() 
    while True: 
     if locker.acquire(False): 
      printsomething(timedelta(seconds=180) - (datetime.now()-start_time)) 
      raw_input("Continue? y/n") 
      locker.release() 
     else: 
      print "Thread ending" 
      return 

t = Thread(target=func) 
t.daemon = True 

t.start() 
t.join(180) 
locker.acquire() 
print "program ending" 

不能被解决的唯一的事情是,这应该是3分钟运行脚本/ FUNC不只要3分钟结束退出。如果我知道答案,会更新答案。