Penjelasan Scoring Poker: Membuat Game Poker Sederhana

Penjelasan Scoring Poker: Membuat Game Poker Sederhana

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.