Dalam artikel ini, kita akan membahas tentang scoring poker dan bagaimana membuat game poker sederhana menggunakan bahasa pemrograman C#. Scoring poker adalah proses memberikan nilai pada tangan taruhan, yang digunakan untuk menentukan pemenang permainan. Dalam game poker, terdapat beberapa jenis tangan yang dapat dibuat, seperti Royal Flush, Straight Flush, Four of a Kind, dan lain-lain.
Membuat Class Game Poker
Kita akan membuat class Game
sebagai bagian dari game poker sederhana. Class ini berisi method-method untuk menentukan skor tangan taruhan. Berikut adalah kode class Game
:
Public Class Game
Public Shared Function score(ByVal h As Hand) As Score
If RoyalFlush(h) Then
Return Score.RoyalFlush
ElseIf StraightFlush(h) Then
Return Score.StraightFlush
ElseIf FourOfAKind(h) Then
Return Score.FourOfAKind
ElseIf FullHouse(h) Then
Return Score.FullHouse
ElseIf Flush(h) Then
Return Score.Flush
ElseIf Straight(h) Then
Return Score.Straight
ElseIf ThreeOfAKind(h) Then
Return Score.ThreeOfAKind
ElseIf TwoPair(h) Then
Return Score.TwoPair
ElseIf JacksOrBetter(h) Then
Return Score.JacksOrBetter
Else
Return Score.None
End If
End Function
End Class
Membuat Class Stats
Kita juga akan membuat class Stats
untuk menampilkan hasil permainan. Class ini berisi method-method untuk menampilkan jumlah tangan taruhan dan persentase setiap jenis tangan. Berikut adalah kode class Stats
:
Class Stats
Private intCount As Integer
Private Rounds As Integer() = New Integer([Enum].GetValues _
(GetType(Score)).Length - 1) {}
Public Sub Results()
Console.WriteLine("{0,10}" & vbTab & "{1,10}" & _
vbTab & "{2,10}", "Hand", "Count", "Percent")
Dim i As Integer
While i < Rounds.Length
Console.WriteLine("{0,-10}" & vbTab & "{1,10}" & _
vbTab & "{2,10:p4}", [Enum].GetName(GetType _
(Score), i), Rounds(i), Rounds(i) / CDbl(intCount))
System.Threading.Interlocked.Increment(i)
End While
Console.WriteLine("{0,10}" & vbTab & "{1,10}", _
"Total Hands", intCount)
End Sub
Public Sub Append(ByVal sScore As Score)
Rounds(CInt(sScore)) += 1
End Sub
Public Sub Clear()
Dim i As Integer
While i < Rounds.Length
Rounds(i) = 0
System.Threading.Interlocked.Increment(i)
End While
End Sub
Public Sub New()
Clear()
End Sub
Public Property Count As Integer
Set(ByVal value As Integer)
intCount = value
End Set
Get
Return intCount
End Get
End Property
End Class
Membuat Module
Kita juga akan membuat module untuk menjalankan game poker sederhana. Module ini berisi method Main
yang memanggil class Game
dan class Stats
. Berikut adalah kode module:
Module Module1
Public Sub Main(ByVal args As String())
Dim intCount As Integer = 2500
If args.Length = 1 Then intCount = Integer.Parse(args(0))
Dim dDeck As Deck = New Deck()
Dim hHand As Hand = New Hand(dDeck)
Dim sStats As Stats = New Stats()
sStats.Count = intCount
For i As Integer = 0 To intCount - 1
dDeck.Shuffle()
hHand.DrawCards()
Dim Score As Score = Game.score(hHand)
sStats.Append(Score)
Next
Console.WriteLine()
sStats.Results()
Console.ReadLine()
End Sub
End Module
Hasil
Jika Anda jalankan aplikasi, maka output akan seperti gambar di bawah ini:
Gambar 1: Hasil Permainan
Tabel Hasil menunjukkan jumlah tangan taruhan untuk setiap jenis tangan.
Dengan demikian, kita telah membuat game poker sederhana menggunakan bahasa pemrograman C#. Game ini dapat membantu Anda memahami konsep scoring poker dan bagaimana membuat game poker sederhana.