Şimdi Ara

Bu proje yeni başlayanlar için zor mu? Yoksa ben mi beceremedim?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
482
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 Python


    Not: CodingBat sitesindeki soruları yapabiliyorum (yarısı bitti şimdiye kadar)


    Not 2: Eğer zorsa bana pratik için bir site önerir misiniz?



    Soru

    Milestone Project 1

    Your 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/Vxc4xqJ


    Fakat 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ı

    Kod

    Yığını:
     def display_board(board):     print('   |   |   ')     print(' ' + board[7] + ' | ' + board[8] + ' | ' + board[9])     print('   |   |   ')     print('-----------')     print('   |   |   ')     print(' ' + board[4] + ' | ' + board[5] + ' | ' + board[6])     print('   |   |   ')     print('-----------')     print('   |   |   ')     print(' ' + board[1] + ' | ' + board[2] + ' | ' + board[3])     print('   |   |') 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 place_marker(board, marker, position):     board[position] = marker 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 import random def choose_first():     if random.randint(0, 1) == 0:         return 'Player 2'     else:         return 'Player 1' def space_check(board, position):          return board[position] == ' ' def full_board_check(board):     for i in range(1,10):         if space_check(board, i):             return False     return True def player_choice(board):     position = 0          while position not in [1,2,3,4,5,6,7,8,9] or not space_check(board, position):         position = int(input('Choose your next position: (1-9) '))              return position def replay():     return input('Do you want to play again? Enter Yes or No: ').lower().startswith('y') print('Welcome to Tic Tac Toe!') while True:     # Reset the board     theBoard = [' '] * 10     player1_marker, player2_marker = player_input()     turn = choose_first()     print(turn + ' will go first.')          play_game = input('Are you ready to play? Enter Yes or No.')          if play_game.lower()[0] == 'y':         game_on = True     else:         game_on = False     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 >







  • yapana kadar hersey zordurö

  • quote:

    Orijinalden alıntı: mahoni_38

    yapana kadar hersey zordurö

    Bu kodları ben kendi başıma yapamadım hocam. Cevap anahtarına göz atmak zorunda kaldım

  • 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.

  • ilk başta zordur sonra çözdükçe kolaylaşır

  • 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)..

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.