ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 219|ตอบกลับ: 0

[VB.NET] โค้ดโปรแกรมเกมส์เล่นกับคอม Rock Paper Scissors หรือที่เราเรียกว่าเป่ายิ้งฉุบ

[คัดลอกลิงก์]

213

กระทู้

301

โพสต์

2403

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
2403



หลายคนก็คงได้เล่นกันมาตั้งแต่สมัยวัยเด็กแล้วแหละ ที่แอดมินนำโค้ดมาลงก็เพื่อให้บรรดามือใหม่ได้ฝึกคิด ไล่กระบวนการทำงานจากไหนไปไหน การทำก่อนทำหลัง โดยมีเงื่อนไขเป็นตัวกำหนดทิศทางไปครับ สำหรับเกมส์นี้จะประกอบไปด้วย กำปั้น กระดาษ และกรรไกร ซึ่งมีวิธีคิดแต่ละตัวจะเหมือนกันคือ สามารถชนะ 1 และแพ้ได้ 1 สำหรับโค้ดนี้จะเป็นการเล่นกับคอมพิวเตอร์ ดังนั้นเราจึงเอาแต่ละตัวมาตั้งค่าเป็นตัวเลข ดังนี้คือ ...
แทนค่าตัวเลข: 1 = กำปั้น, กระดาษ = 2 และ กรรไกร = 3
เกณฑ์การชนะ: 1 ชนะ 3, 2 ชนะ 1 และ 3 ชนะ 2
ลำดับขั้นตอนการทำงาน ... เปรียบเทียบค่าว่าเหมือนกันหรือไม่ หากใช่คือ เสมอกัน จากนั้นเอาเกณฑ์ที่เราเลือกมาเป็นเงื่อนไขในการชนะ หากเข้าเงื่อนไขตามด้านบน เราชนะ แต่หากไม่ใช่นั่นคือคอมพิวเตอร์ชนะ ...

มาดูโค้ดกันเถอะ ...
  1. Public Class frmPaoYingChup
  2.     Private strPath As String = MyPath(Application.StartupPath) & "pic"

  3.     Private Sub frmPaoYingChup_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  4.         PictureBox1.Image = Image.FromFile(strPath & "0.jpg")
  5.         PictureBox2.Image = Image.FromFile(strPath & "1.jpg")
  6.     End Sub

  7.     ' / ------------------------------------------------------------------
  8.     ' / Get my project path
  9.     ' / AppPath = C:\My Project\bin\debug
  10.     ' / Replace "\bin\debug" with ""
  11.     ' / Return : C:\My Project\
  12.     Function MyPath(AppPath As String) As String
  13.         AppPath = AppPath.ToLower()
  14.         MyPath = AppPath.Replace("\bin\debug", "").Replace("bin\Release", "")
  15.         '// Check the backslash symbol (ASCII Code = 92) on the far right. If not, add one at the end.
  16.         If Microsoft.VisualBasic.Right(MyPath, 1) <> Chr(92) Then MyPath = MyPath & Chr(92)
  17.     End Function

  18.     Private Sub RadioButton1_Click(sender As Object, e As System.EventArgs) Handles RadioButton1.Click
  19.         PictureBox1.Image = Image.FromFile(strPath & "0.jpg")
  20.         PictureBox2.Image = Image.FromFile(strPath & "1.jpg")
  21.         Label3.Text = ""
  22.     End Sub

  23.     Private Sub RadioButton2_Click(sender As Object, e As System.EventArgs) Handles RadioButton2.Click
  24.         PictureBox1.Image = Image.FromFile(strPath & "0.jpg")
  25.         PictureBox2.Image = Image.FromFile(strPath & "2.jpg")
  26.         Label3.Text = ""
  27.     End Sub

  28.     Private Sub RadioButton3_Click(sender As Object, e As System.EventArgs) Handles RadioButton3.Click
  29.         PictureBox1.Image = Image.FromFile(strPath & "0.jpg")
  30.         PictureBox2.Image = Image.FromFile(strPath & "3.jpg")
  31.         Label3.Text = ""
  32.     End Sub

  33.     Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles btnStart.Click
  34.         Dim Pic1 As Byte
  35.         Dim Pic2 As Byte
  36.         '// Random
  37.         Dim RandomClass As New Random()
  38.         Randomize()
  39.         '// สุ่ม 1000 ค่า แล้ว Mod หรือหารเอาเศษด้วย 3 จะทำให้ได้คำตอบ คือ 0, 1, 2 แล้วก็บวกขึ้น 1
  40.         Pic1 = RandomClass.Next(1, 1000) Mod 3 + 1
  41.         PictureBox1.Image = Image.FromFile(strPath & "" & Pic1 & ".jpg")
  42.         '// หาค่าของ Pic2 ที่เราเลือก
  43.         If RadioButton1.Checked Then
  44.             Pic2 = 1
  45.         ElseIf RadioButton2.Checked Then
  46.             Pic2 = 2
  47.         Else
  48.             Pic2 = 3
  49.         End If

  50.         '// วิธีคิดคือการแทนค่าด้วยตัวเลขดังนี้ ...
  51.         '// 1 = กำปั้น, 2 = กระดาษ, 3 = กรรไกร
  52.         '// อันดับแรกตรวจสอบว่าออกเหมือนกันหรือไม่
  53.         If (Pic2 = Pic1) Then
  54.             Label3.Text = "เสมอกันจ๊ะ"
  55.             '// เมื่อ Pic2 คือตัวเราเลือก เอาเกณฑ์ชนะมาเป็นเงื่อนไข
  56.             '// 1 ชนะ 3, 2 ชนะ 1 และ 3 ชนะ 2
  57.         ElseIf (Pic2 = 1 And Pic1 = 3) Or (Pic2 = 2 And Pic1 = 1) Or (Pic2 = 3 And Pic1 = 2) Then
  58.             Label3.Text = "คุณคือผู้ชนะ"
  59.             '// นอกเหนือจากนั้นคอมชนะ
  60.         Else
  61.             Label3.Text = "คอมพิวเตอร์ชนะ"
  62.         End If

  63.     End Sub
  64. End Class
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดฉบับเต็ม VB.NET (2010) ได้ที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2020-1-19 22:49 , Processed in 0.637461 second(s), 4 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้