我的第一个玩具程序,留做记号,代表了从学习 Python 到现在的高度,希望有一天能自己回过头来嘲讽现在的自己。
# coding: utf-8
__author__ = "Deng"
import random, time, threading, os
class SearchDiffer(object):
def __init__(self,grade):
# 初始化方法:生产两个随机数,决定 + 出现的位置 根据用户选择,初始化游戏难度
self.grade = grade
self.count = 0
def draw(self):
# 绘制不同难度的游戏矩形大小
self.random_x = random.randint(1, self.grade * 5)
self.random_y = random.randint(1, self.grade * 5)
for x in range(1, (self.grade * 5 + 1)):
for y in range(1, (self.grade * 5 + 1)):
if x == self.random_x and y == self.random_y:
print("+", end= " ")
else:
print("*", end= " ")
print()
def user_sech(self):
# 根据用户输入,判断是否正确,并累计猜对的次数。
get_x = input("找出 + 在第几行(按0退出游戏):")
if int(get_x) == 0:
print("**GAME OVER**")
exit()
get_y = input("找出 + 在第几列(按0退出游戏):")
if int(get_y) == 0:
print("**GAME OVER**")
exit()
if int(get_x) == self.random_x and int(get_y) == self.random_y:
self.count += 1
print("找对了。。。")
return self.count
else:
print("找错了。。。")
def user_count(self):
# 实现游戏循环进行,除非用户选择退出
while True:
self.draw()
self.user_sech()
print("找对了{}次".format(self.count))
def timeout(t):
time.sleep(t)
print("\n**时间到**")
os._exit(0)
def main():
grade = input("简单:1 中等:2 困难:3\n请选择游戏难度(任意键退出):")
if grade not in ["1", "2", "3"]:
exit()
else:
user_game = SearchDiffer(int(grade))
t1 = threading.Thread(target= user_game.user_count)
t2 = threading.Thread(target= timeout, args= (30,))
t1.start()
t2.start()
if __name__ == "__main__":
main()