Udemy üzerinden Python kursu alıyorum. Daha önce yazılım geçmişim olmadı, bu projeye kadar pratikleri çatır çatır yapıyodum ve bir anda takılıp kaldım.Merak ettiğim bu proje cidden zorlayıcı mı yoksa çalıştığım konuları tekrar gözden mi geçirmeliyim? Kursun şuan %50'nini bitirmişim. Duruma göre bir süre (en azından 7-10 gün) kursa ara vererek ciddi manada tekrar yapmaya döneceğim.Kurs =2020 Complete Python Bootcamp: From Zero to Hero in PythonNot: CodingBat sitesindeki soruları yapabiliyorum (yarısı bitti şimdiye kadar)Not 2: Eğer zorsa bana pratik için bir site önerir misiniz?SoruMilestone Project 1Your assignment: Create a Tic Tac Toe game. You are free to use any IDE you like.Here are the requirements:
2 players should be able to play the game (both sitting at the same computer)
The board should be printed out every time a player makes a move
You should be able to accept input of the player position and then place a symbol on the board
Tamamen bağımsız bir şekilde çözemeyenler için adım adım neler yapmamız gerektiğini de başka bir dosyada göstermiş. Örnek olarak = https://ibb.co/Vxc4xqJFakat ben bu adımları söylemesine rağmen yine yapamadım. Neden bilmiyorum çook fazla kafam karıştı. Ha en son kodları inceleyince tamam bu bu işe yarıyor vs diyebiliyorum; fakat ilk başta 0 dan kendi aklımdan yazamıyorum.Kod Yığını
def player_input(): marker = '' while not (marker=="X" or marker=="O"): marker = input('Player 1: Do you want to be X or O? ').upper() if marker == 'X': return ("X","O") else: return ("O","X")
def win_check(board,mark): return ((board[7] == mark and board[8] == mark and board[9] == mark) or # across the top (board[4] == mark and board[5] == mark and board[6] == mark) or # across the middle (board[1] == mark and board[2] == mark and board[3] == mark) or # across the bottom (board[7] == mark and board[4] == mark and board[1] == mark) or # down the middle (board[8] == mark and board[5] == mark and board[2] == mark) or # down the middle (board[9] == mark and board[6] == mark and board[3] == mark) or # down the right side (board[7] == mark and board[5] == mark and board[3] == mark) or # diagonal (board[9] == mark and board[5] == mark and board[1] == mark)) # diagonal
while game_on: if turn == 'Player 1': # Player1's turn.
display_board(theBoard) position = player_choice(theBoard) place_marker(theBoard, player1_marker, position)
if win_check(theBoard, player1_marker): display_board(theBoard) print('Congratulations! You have won the game!') game_on = False else: if full_board_check(theBoard): display_board(theBoard) print('The game is a draw!') break else: turn = 'Player 2'
else: # Player2's turn.
display_board(theBoard) position = player_choice(theBoard) place_marker(theBoard, player2_marker, position)
if win_check(theBoard, player2_marker): display_board(theBoard) print('Player 2 has won!') game_on = False else: if full_board_check(theBoard): display_board(theBoard) print('The game is a draw!') break else: turn = 'Player 1'
if not replay(): break
< Bu mesaj bu kişi tarafından değiştirildi The Management -- 23 Eylül 2020; 17:31:5 >
Aslında çok zor bir proje değil ama yeni başlıyorsanız kafanız karışmış olabilir. Akış olarak düşünürseniz aslında sırayla devam eden bir while loopunun içinde olması gerekiyor oyun mantığınının. Tic tac toe olduğu için de 9 haneyi bir yerde depolamanız lazım. Bence en zor kısım winCheck kısmı olabilir, ama onu da birçok if koşuluyla çözebilirsiniz. Çözüme bakmış dahi olsanız bence sıfırdan yazmaya çalışın, nerede takılıyorsanız ona kafa yorun daha verimli olur. Sadece çözüme bakıp anladım diyip geçerseniz önünüze yeniden böyle bir problem çıktığında hatırlamama ihtimaliniz olur.
zaten çoğu kişi direkt kafadan yazamaz tek seferde. sorunlar çıkacak her seferinde, çözeceksin teker teker. C++ resmi sitesinde bile çoğu zaman sistem istenildiği gibi çalışıyorsa optimize etmeyin / kodu değiştirmeyin yazıyor düşün yani.
mesela şimdi o kodu çalıştır ve vereceği hatayı anlayıp çözmeye çalış. program açılır hale geldiğinde eksik kısımları da o zaman doldur. en son program tamamen sıkıntısız çalışır hale geldiğinde de optimizasyonu yaparsın(gereksiz kodları kaldırırsın, daha işlevli kodlar kullanırsın)..
- 2 players should be able to play the game (both sitting at the same computer)
- The board should be printed out every time a player makes a move
- You should be able to accept input of the player position and then place a symbol on the board
Tamamen bağımsız bir şekilde çözemeyenler için adım adım neler yapmamız gerektiğini de başka bir dosyada göstermiş. Örnek olarak = https://ibb.co/Vxc4xqJFakat ben bu adımları söylemesine rağmen yine yapamadım. Neden bilmiyorum çook fazla kafam karıştı. Ha en son kodları inceleyince tamam bu bu işe yarıyor vs diyebiliyorum; fakat ilk başta 0 dan kendi aklımdan yazamıyorum.Kod Yığını< Bu mesaj bu kişi tarafından değiştirildi The Management -- 23 Eylül 2020; 17:31:5 >