当前位置: 首页 > 知识库问答 >
问题:

刽子手pyplay游戏机制问题

齐锐进
2023-03-14

在我的游戏中出现的问题是,当我试图在游戏中插入单词时,它不显示字母,它应该在正确的时候显示字母,如果它是错误的,它应该通过增加刽子手的一部分来惩罚我。

我创建了惩罚函数和函数,当它正确时显示用户输入的字母,请帮助!!

这是我的代码:http://pastebin.com/du98i88G

我认为在pygame中的game()函数`
中可能存在问题,而不是gameQuit:for event。事件get():if事件。type==pygame。退出:pygame。quit()退出

        if event.type == pygame.KEYDOWN:

            if guess in secret:
                correct_letters = correct_letters + guess
                found = True

                for i in range(len(secret)):
                    if secret[i] not in correct_letters:
                        found = False
                        break

            if found == True:

                screen.fill(black)

                msgSize = pygame.font.Font("Hangman/ITCBLKAD.TTF", 80)
                msgText, msgText_Size = text_objects('Congratz!! You won!', msgSize)
                msgText_Size.center = ((display_width/2),(display_height/2)-70) 
                screen.blit(msgText, msgText_Size)

                msgSize1 = pygame.font.Font("Hangman/ITCBLKAD.TTF", 50)
                msgText1, msgText1_Size = text_objects('Play again?', msgSize1)
                msgText1_Size.center = ((display_width/2),(display_height/2)+30) 
                screen.blit(msgText1, msgText1_Size)

                buttonYes("Yes",350,295,80,40,black,grey)   
                buttonNo("No",550,295,80,40,black,grey) 

                pygame.display.flip()

            else:
                incorrect_letters = incorrect_letters + guess

                if len(incorrect_letters) == 7:

                    screen.fill(black)

                    display(incorrect_letters,correct_letters,secret)
                    msgSize = pygame.font.Font("Hangman/ITCBLKAD.TTF", 80)
                    msgText, msgText_Size = text_objects('You Lose! the word was: ' + secret, msgSize)
                    msgText_Size.center = ((display_width/2),(display_height/2)-70) 
                    screen.blit(msgText, msgText_Size)

                    msgSize1 = pygame.font.Font("Hangman/ITCBLKAD.TTF", 50)
                    msgText1, msgText1_Size = text_objects('Play again?', msgSize1)
                    msgText1_Size.center = ((display_width/2),(display_height/2)+30) 
                    screen.blit(msgText1, msgText1_Size)

                    buttonYes("Yes",350,295,80,40,black,grey)   
                    buttonNo("No",550,295,80,40,black,grey) 

                    pygame.display.flip()

'

共有1个答案

宦高岑
2023-03-14

您没有更新您的显示后,一个错误的猜测。试着移动线

display(incorrect_letters,correct_letters,secret)

if块上方。

另一个问题可能是使用变量found。检查if guess in secret,在下一个块中检查found的值,该值仅在上一个if块中定义。在第一个if块上方添加found=False,以防止出现这种情况。

 类似资料:
  • 我是java新手,我正在尝试创建一个基本的刽子手游戏,我已经为这一轮创建了方法,但我一直在创建一个布尔值,该值将使游戏进入下一轮(如果玩家输入了错误的字母,他将失去一次猜测字母的尝试;他可能只会出错10次;如果猜测,他将继续游戏)。我的代码到目前为止,我甚至尝试通过if/else语句排除布尔值,但对我来说它似乎非常愚蠢。任何帮助都是有用的。非常感谢。

  • 我已经被这段代码困扰了一段时间,非常感谢您的帮助。因此,基本上我的刽子手代码运行良好,但控制台中的显示,破折号应该反映哪些字母猜对了,哪些字母仍然需要猜对,这是完全错误的。我将在这里发布我的代码。由于时间很长,我将只发布相关的方法。我觉得问题似乎出在显示数组列表上,我无法持续更新它。

  • 我正在做一个刽子手游戏。我几乎完成了,但我编写的代码,无论何时,只要隐藏的单词中有两个或两个以上的点需要用猜测的字母替换,都只适用于第一个。例如,如果要查找的单词是“ball”,用户输入“b”和“l”,而不是“b_ll”,那么他将返回的隐藏单词是“b_l_”。这是一种奇怪的练习,因为用户首先键入字母,每次猜测后都没有得到反馈。这是密码。 先谢谢你。

  • 这是一个运行在 gPhone 手机的简易空战游戏,如下图所示:

  • 嗨,我是编程新手,我们的任务是制作一个刽子手游戏。现在我面临的问题是猜测。程序猜对了一切,并且工作正常。虽然它不会打印出中的字母,或者它会打印出1个字母,但当我猜正确时,上一个字母会被覆盖。 那么,有谁能伸出援助之手呢? 这是我的检查代码: }

  • 代码的目的是让两个玩家掷一对骰子。第一个掷出20分的玩家赢得比赛。我很难弄清楚如何正确地跟踪滚动的总和;它只给我当前回合的总和,然后当每个玩家滚动10次时游戏就结束了。 我如何正确地计算每个玩家游戏的总和,然后当其中一个玩家的总和等于20时停止循环?