Hãy bắt đầu từ đầu:
Nếu người dùng nhập bất cứ thứ gì khác ngoại trừ "sẵn sàng" cho đầu vào đầu tiên được lưu trữ trong "Hãy nghĩ" thì nếu điều kiện sẽ sai và chương trình của bạn ngay lập tức sẽ chuyển sang phần khác để trong phần thứ hai:
Nó sẽ làm hỏng chương trình của bạn vì không có biến nào được gọi là lông và bạn muốn so sánh nó với một cái gì đó. Đối với tình huống như thế này (chờ đợi cho đến khi người dùng nhập vào đầu vào dự kiến của bạn), tốt hơn là sử dụng một vòng lặp vô hạn và khi người dùng nhập đầu vào mong đợi của bạn thoát ra khỏi đó bằng cách sử dụng Break. Vì vậy, bạn phải thay đổi phần đầu tiên thành:
Đối với các phần khác, điều chính xác như trên có thể xảy ra một lần nữa (ví dụ như bạn đã đề cập nếu người dùng nói "có" để "nó đi trên bốn chân?" Một lần nữa bạn không có bất kỳ biến nào được gọi là Reptile mà bạn muốn so sánh nó với một cái gì đó khác trong các dòng tiếp theo) Tôi đề nghị sử dụng các điều kiện lồng nhau:
Cũng đừng quên: 1-X quang: Trong phần này của mã của bạn
2-nếu bạn muốn nhận một dòng mới sau khi hỏi một cái gì đó từ người dùng như trong dòng đầu tiên, \ n phải hữu ích
Hoặc thậm chí có thể sử dụng in cho chuỗi (Nguyên nhân In tự động sẽ thêm một dòng mới sau mỗi lần bạn sử dụng): Xin chào! Tôi đã viết Tetris trong Python bằng cách sử dụng pygame vào một ngày khác và đang gặp vấn đề kỳ lạ. Có một phần của mã dường như không chạy. Đây là chức năng có liên quan def update(): #time.time() global level, currTimeSD, currTimeBI, currTimeFD, currTimeSAC, timeShiftDown, timeFastDrop, timeBetweenInput, timeShiftAfterClear, kLeft, kRight, kDown, xCursor, yCursor, currMinoRot, currMino, swapMino, currMinoShape, swapMinoShape, alreadySwapped, minoActive, shiftAfterClear if time.time() < currTimeSD: currTimeSD = 0 if time.time() < currTimeBI: currTimeBI = 0 if time.time() < currTimeFD: currTimeFD = 0 if time.time() < currTimeSAC: currTimeSAC = 0 if shiftAfterClear == True: if time.time() - currTimeSAC >= timeShiftAfterClear: print("in shift after clear") currTimeSAC = time.time() shiftAfterClear = False shiftDownBoard() currMinoShape = 0 currMino = generateRandomMino() minoActive = True return if time.time() - currTimeBI >= timeBetweenInput and anyKeyTrue(): currTimeBI = time.time() if kLeft == True and xCursor != 0: if checkSafeShiftX(-1) == True: xCursor -= 1 if kRight == True and xCursor != 9: if checkSafeShiftX(1) == True: xCursor += 1 if kQ == True: if currMinoRot == 0: safe, newX = checkSafeRot(3) if safe: xCursor = newX currMinoRot = 3 else: safe, newX = checkSafeRot(currMinoRot - 1) if safe: xCursor = newX currMinoRot -= 1 if kW == True: if currMinoRot == 3: safe, newX = checkSafeRot(0) if safe: xCursor = newX currMinoRot = 0 else: safe, newX = checkSafeRot(currMinoRot + 1) if safe: xCursor = newX currMinoRot += 1 if kE == True and alreadySwapped == False: alreadySwapped = True if swapMinoShape == 0: swapMinoShape = currMinoShape swapMino = currMino currMino = generateRandomMino() else: swpms = swapMinoShape swpm = swapMino swapMinoShape = currMinoShape swapMino = currMino currMinoShape = swpms currMino = swpm xCursor, yCursor = generateStartCoord() if kUp == True: dropDownAndAdd() alreadySwapped = False checkCleared = clearBoard() if checkCleared == True: minoActive = False shiftAfterClear = True currTimeSAC = time.time() else: currMinoShape = 0 currMino = generateRandomMino() if kEsc == True: print("Goodbye!") exit() if (time.time() - currTimeSD >= timeShiftDown) or (time.time() - currTimeFD >= timeFastDrop and kDown == True): currTimeFD = time.time() currTimeSD = time.time() if checkSafeShiftY() == True: yCursor += 1 else: print("hi there", flush = True) addToBoard() for a in range(10): if board[a][0] == 1: print("Sorry, you lose!") exit() alreadySwapped = False checkCleared = clearBoard() print("whatup", flush = True) if checkCleared == True: print("genius", flush=True) print("whatup1", flush = True) tmpLevel = level level = 5 #int(linesCleared / 10) if tmpLevel != level: if timeShiftDown - 0.08 < 0.03: timeShiftDown = 0.03 else: timeShiftDown -= 0.08 minoActive = False shiftAfterClear = True currTimeSAC = time.time() else: currMinoShape = 0 currMino = generateRandomMino() return Xuống gần cuối mã Khối này: print("genius", flush=True) print("whatup1", flush = True) tmpLevel = level level = 5 #int(linesCleared / 10) if tmpLevel != level: if timeShiftDown - 0.08 < 0.03: timeShiftDown = 0.03 else: timeShiftDown -= 0.08 không chạy. Khi tôi chuyển nó lên đến if shiftAfterClear == True: Chặn gần đỉnh của chức năng mọi thứ đều chạy tốt. Bất kỳ ý tưởng những gì đang xảy ra? cảm ơn! Bài viết: 11.43811,438 Chủ đề: 435435 Tham gia: Tháng 9 năm 2016Sep 2016 Danh tiếng: 441 441 0Đây không phải là vấn đề của bạn, mà là dòng mã thứ hai ở đây ghi đè lên dòng xóa trước đó 105 Trước 1 Thêm: 2add: 2Hiển thị kết quả |