- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我现在头晕目眩,这可能是因为我错过了一些基本逻辑。
我在 VB.NET 中有一个“剪刀石头布”程序,它可以为每个单独的游戏/回合给出正确的结果。我遇到的问题是在尝试确定 MATCH 的结果时,它也可以是“赢、输、平”。比赛是三局两胜制(前两局)和五局两局(前三局)。由于比赛的结果可能是平局,因此有多种组合/排列,例如:
到目前为止,我有以下代码:
Public Class GameForm
Private humanScore As Integer = 0
Private compScore As Integer = 0
Private drawScore As Integer = 0
Private totalGames As Integer = 0
Private totalGamesForWin As Integer = 0
Private totalGamesPlayed As Integer = 0
Private player1 = New PlayerHumanPlayer()
Private player2 = New PlayerComputerRandom()
Private Sub GameForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If GameTypeForm.cmboMatchDuration.SelectedItem = 0 Then
totalGames = 3
totalGamesForWin = 2
lblMatchInfor.Text = GlobalVariables.MatchTypeBestOf3Message
ElseIf (GameTypeForm.cmboMatchDuration.SelectedItem = 1) Then
totalGames = 5
totalGamesForWin = 3
lblMatchInfor.Text = GlobalVariables.MatchTypeBestOf5Message
End If
End Sub
Private Sub btnRock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRock.Click
findGameWinner("HumanPlayer", "Rock", "RandomComputer")
End Sub
Private Sub btnPaper_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPaper.Click
findGameWinner("HumanPlayer", "Paper", "RandomComputer")
End Sub
Private Sub btnScissors_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnScissors.Click
findGameWinner("HumanPlayer", "Scissors", "RandomComputer")
End Sub
Public Sub findGameWinner(ByVal p1name As String, ByVal p1WeaponSelected As String, ByVal p2Name As String)
player1.Name = p1name
player1.pickWeapon(p1WeaponSelected) ' Should I be using the Rock Class???
player2.Name = p2Name
player2.pickWeapon()
Dim winner As Integer = player1.getWeapon().compareTo(player2.getWeapon())
Select Case winner
Case 1
updateScores(True, False)
findMatchWinner()
Case -1
updateScores(False, True)
findMatchWinner()
Case 0
updateScores(False, False)
findMatchWinner()
End Select
End Sub
Public Function updateScores(ByVal humanWon As Boolean, ByVal compWon As Boolean) As Integer
If humanWon = True Then
humanScore = humanScore + 1
'Update Human labels
lblPlayerScore.Text = humanScore.ToString()
'txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + Type.GetType(player2.pWeapon.ToString()).ToString()
txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + player2.pWeapon.ToString()
txtGameStatus.Text = txtGameStatus.Text + Environment.NewLine + player1.Name() + " wins!"
ElseIf compWon = True Then
compScore = compScore + 1
'Update Computer labels
lblCompScore.Text = compScore.ToString()
'txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + Type.GetType(player2.pWeapon.ToString()).ToString()
txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + player2.pWeapon.ToString()
txtGameStatus.Text = txtGameStatus.Text + Environment.NewLine + player2.Name() + " wins!"
Else
drawScore = drawScore + 1
'Update Draw labels
lblDrawGame.Text = drawScore.ToString()
'txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + Type.GetType(player2.pWeapon.ToString()).ToString()
txtCompChoice.Text = txtCompChoice.Text + Environment.NewLine + player2.pWeapon.ToString()
txtGameStatus.Text = txtGameStatus.Text + Environment.NewLine + "Draw!"
End If
totalGamesPlayed = totalGamesPlayed + 1
Return totalGamesPlayed
End Function
Public Function findMatchWinner() As String
If totalGamesPlayed <> totalGames Then
If humanScore = totalGamesForWin Then
lblMatchInfor.Text = GlobalVariables.HumanMacthWinMessage
clearForm()
ElseIf compScore = totalGamesForWin Then
lblMatchInfor.Text = GlobalVariables.CompMacthWinMessage
clearForm()
ElseIf totalGamesPlayed = totalGames - 1 Then
lblMatchInfor.Text = GlobalVariables.DeciderGameMessage
End If
ElseIf humanScore = totalGamesForWin Then
lblMatchInfor.Text = GlobalVariables.HumanMacthWinMessage
clearForm()
ElseIf compScore = totalGamesForWin Then
lblMatchInfor.Text = GlobalVariables.CompMacthWinMessage
clearForm()
ElseIf (drawScore = totalGamesPlayed) Then
lblMatchInfor.Text = GlobalVariables.DrawMacthWinMessage
clearForm()
End If
Return "Human OR Computer"
End Function
Public Sub clearForm()
End Sub
End Class
我以为我做得很好,直到我想起我完全忘记了平局/领带。从那时起我的脑袋就一直在打转,请问有人能解释一下如何让 findMatchWinner() 函数正常工作吗?
如有任何帮助,我们将不胜感激。
提前致谢
最佳答案
我建议,与其检查一名玩家赢得了多少场胜利并查看这是否是所玩回合数的预期金额,不如记录两个付款人的胜利并在最后进行比较。
如果玩家 A > 玩家 B,则玩家 A 获胜,如果他们相同,则平局。另外,请记住,一场 3 轮比赛并不需要赢 2 场才能获胜,因为玩家 A 可以赢一次,然后所有其他比赛都可能是平局。
关于vb.net - 使用循环或 If 语句在 vb.net 中获得结果 'Win, Lose, Draw' 的“剪刀石头布”逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983907/
所以,我正在用 Python 制作这款游戏。问题是,在剪刀、布和石头中可以有不同的组合,例如..石头和布、石头和剪刀等等。那么,如果不执行大量 elif 语句,我将如何做到这一点。 import
我是 javascript 新手,正在开发一个简单的石头、剪刀、布、蜥蜴、斯波克游戏。我想让用户从 5 张图像中进行选择,而不是在提示中填写。有谁知道我该怎么做?警报和确认消息最终也应该是 或类似的内
我正在制作一个小剪刀石头布游戏,我以为我已经完美地计划了一切,但由于某种原因,当你尝试玩时什么也没有发生。 基本上,有三张图像,一 block 石头、一张纸和一些剪刀,然后你单击一个。使用我输入的代码
我试图学习python并以此开始,当我尝试运行它时,我一直收到语法错误。光标跳到def start部分的close结束处。我不确定语法错误来自哪里,因为我用语音标记了所有打印件 #! python3
我有点困惑如何创建一个字段,其中将显示您获胜或平局的次数。喜欢: | Wins: | 234 | | Looses:| 234 | | Draws: | 434 | 意思是,如果我和新闻报纸赢得了答
如何让玩家玩随机数量的比赛,然后以全部分数结束游戏? 我正在尝试做一个循环,让玩家玩多场比赛,并在最后询问是否还想玩。 public class RockPaperScissors { pub
每当我运行它时,似乎继续玩的循环都有效,但是每当 computerChoose 执行 randomGenerator 时,游戏结果都不会正确输出。请帮忙。我是java新手,我们只打算使用3种方法——指
我的石头剪刀布游戏遇到问题。当我玩游戏时,它会将胜利或失败记录为胜利和失败。我试图让它记录一场胜利和一场失败,并且不会为胜利和失败添加分数。有什么建议吗? import java.io.*; publ
我正在制作石头剪刀布游戏。 下面的代码可以工作,但是缺少两个关键的东西,我真的很想知道如何实现它: 如果出现平局,玩家必须能够重新选择。所以必须执行break语句,但是需要什么才能返回到while循环
显然是在学习java。我能够让游戏正常运行。但我需要这样做,以便如果用户放置 R/P/S 以外的东西,那么它默认为 Rock。我不需要循环。如果我放石头的话,游戏就完美了。如果我放置 RPS 以外的任
#RoShamBo import random count=0 while count -2: compnum=random.randint(0,2) usernum=int(inpu
我用Python做了一个石头、剪刀、布的游戏。如果用户输入"is",我如何让游戏重复进行?当用户输入除了石头、布或剪刀之外的任何内容时,我的代码似乎进入永无休止的循环 此外,我正在尝试了解何时何地应该
我还在和我叔叔一起学习 C,我在尝试编译我们一起编写的玩剪刀石头布的程序时遇到了另一个麻烦。我在该程序上还有更多工作要做,但我什至无法让大部分内容正常工作。 我使用 Make 命令从编译器收到的错误
这是我的石头剪刀布游戏。 http://jsfiddle.net/Renay/hL3j5hm6/6/ 如何添加动画,在给出结果之前,图像上下弹跳时有 3,2,1 倒计时。我尝试过添加各种功
我的类(class)本周将举行机器人竞赛,我们应该让我们的机器人战胜其他人的机器人。比赛项目为石头、布、剪刀、炸药、水气球。炸药胜过一切,除了水气球,而水气球只胜过炸药。老师写了竞技场,还有其他一些机
我正在使用 Python 创建一个非常简单的石头剪刀布游戏,但无法解决这个问题。每次我在命令提示符中输入答案时,它都会输出消息“无效输入,请重试!”,这就是我告诉它在存在无效输入时执行的操作。但是,我
我遇到了一个问题,选择根本没有更新。我已经列出了每次选择后应显示最后结果和当前分数的位置。分数运行良好,但选择根本没有更新。谢谢。 Dynamic Web Squirtle,
我的图片和消息正在更改为显示获胜、失败、平局,但我的 javascript 增量似乎不起作用,因为我的分数没有改变。请帮忙:) Rock, Paper, Scissors Rock
我正在用 C# 制作石头、剪刀、布游戏,目前在有人输入非 R、S 或 P 的输入时尝试显示消息时遇到问题。例如,我正在尝试获取默认值在 switch 语句中工作,但我没有运气。这就是我目前所拥有的。如
我希望代码获取用户在输入字段中输入的值并将其传递给变量 userChoice。我不知道为什么这段代码不起作用,唯一的学习方法就是问你们。 HTML: Choose your destiny !
我是一名优秀的程序员,十分优秀!