for tup in winners:
win=True
for ix in tup:
if brd[ix] != player:
win=False
break
if win == True:
break
return win
def make_move(brd, player, move, undo=False):
if can_move(brd, player, move):
brd[move-1] = player
win=can_win(brd, player, move)
if undo:
brd[move-1] = move-1
return (True, win)
return (False, False)
# AI goes here
def computer_move():
move=-1
# If I can win, others do not matter.
for i in range(1,10):
if make_move(board, computer, i, True)[1]:
move=i
break
if move == -1:
# If player can win, block him.
for i in range(1,10):
if make_move(board, player, i, True)[1]:
move=i
break
if move == -1:
# Otherwise, try to take one of desired places.
for tup in moves:
for mv in tup:
if move == -1 and can_move(board, computer, mv):
move=mv
break
return make_move(board, computer, move)
def space_exist():
return board.count('X') + board.count('O') != 9
player, computer = select_char()
print('Player is [%s] and computer is [%s]' % (player, computer))
result='%%% Deuce ! %%%'
while space_exist():
print_board()
print('#Make your move ! [1-9] : ', end='')
move = int(input())
moved, won = make_move(board, player, move)
if not moved:
print(' >> Invalid number ! Try again !')
continue
if won:
result='*** Congratulations ! You won ! ***'
break
elif computer_move()[1]:
result='=== You lose ! =='
break;
print_board()
print(result)
9. Таймер обратного отсчета
Эта программа таймера обратного отсчета принимает количество секунд в качестве входных данных и отсчитывает секунду за секундой, пока не отобразится сообщение. Он реализует модуль time, о котором стоит знать, и довольно простой модуль для создания.
Пример кода:
import time
# The countdown function is defined below
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print(timer, end="\r")
time.sleep(1)
t -= 1
print('Lift off!')
# Ask the user to enter the countdown period in seconds
t = input("Enter the time in seconds: ")
# function call
countdown(int(t))
10. Сортировка слиянием
Сортировка - важная концепция в арсенале любого программиста, и сортировка слиянием особенно важна. Хотя существуют такие функции сортировки, как сортировка вставкой, сортировка пузырьками и сортировка по выбору, сортировку слиянием стоит знать, потому что она эффективна для сортировки больших объемов данных.
Пример кода:
def merge_sort(unsorted_list):
если len(unsorted_list) <= 1:
вернуть unsorted_list
# Найдите середину и разделите список на два
middle = len(unsorted_list) // 2
left_list = несортированный список[: средний]
right_list = несортированный список [средний:]
left_list = merge_sort(left_list)
right_list = merge_sort(список правых)
возвращаемый список (слияние (left_list, right_list))
# Объединить отсортированные половинки
def слияние (left_half,right_half):
res = []
в то время как len(left_half) != 0 и len(right_half) != 0:
если left_half[0] res.append(left_half[0])
left_half.remove(left_half[0])
ещё:
res.append(right_half[0])
right_half.remove(right_half[0])
если len(left_half) == 0:
res = res + right_half
ещё:
res = res + left_half
возврат res
unsorted_list = [64, 34, 25, 12, 22, 11, 90]
print(merge_sort(unsorted_list))
Заключение
Вот и все — десять проектов на Python для начинающих, которые могут быть очень забавными одновременно. Эти проекты проверяют ваше теоретическое знание Python и помогают лучше применять знания Python на практике.
Если вам нужен хороший курс по созданию приложений на Python, мега-курс Python: Build 10 Real World Applications - это высоко оцененный и рекомендуемый курс. Вам также следует ознакомиться с вопросами для собеседования на Python для дальнейшей подготовки.
Dostları ilə paylaş: |