ข้ามไปที่เนื้อหาหลัก

ออกแบบระบบให้คะแนนการแข่งขันบาสเกตบอล

basketball


หลังจากเริ่มแข่งขันบาสเกตบอล ฟรีสไตล์ 3 ต่อ 3 ก็ได้พบว่าการนับคะแนนนั้น ไม่ว่าจะจดกระดาษ หรือพลิกสกอร์บอร์ดก็ตาม ไม่สามารถเก็บสถิติของผู้เล่นแต่ละคนในการแข่งขันแต่ละครั้งได้

ทำไมผมถึงคิดถึงเรื่องไร้สาระนี้ขึ้นมา (ผมเรียกว่าไร้สาระเพราะโปรแกรมเมอร์ส่วนใหญ่ใช้เวลาในการเขียนโค้ดเพื่อให้ได้เงินมา เรื่องที่ต้องเสียเวลาแต่ไม่ได้อะไรเลยเขาคงไม่ทำกัน ^^") ก็เพราะว่า ผมอยากสร้างแรงจูงใจให้กับน้องๆที่มาเล่นบาสเกตบอลด้วยกันทุกเย็น ให้เกิดความกระตือรือร้นที่จะพัฒนาตัวเอง (เพราะช่วงหลังๆคนเริ่มเล่นน้อยลงไป ส่วนหนึ่งอาจจะเพราะติดสอบช่วงกลางภาค)



แล้วมันเกี่ยวอะไรกับระบบให้คะแนน?

เป็นคำถามที่ดีครับ (ฮ่าๆๆ ถามเองตอบเอง) เพราะการจะสร้างแรงจูงใจได้นั้น เราต้องทำให้เกิดเป้าหมายขึ้นให้ได้เสียก่อน ผมเคยเล่นเกมออนไลน์แนวเก็บเลเวลมาก่อน ถ้าใครเคยเล่นจะเห็นว่าตัวละครในเกม จะต้องพัฒนาทักษะ(skill) ด้านต่างๆของตัวเอง เพื่อเอาชนะศัตรูให้ได้

ก็เลยคิดว่า น่าจะสร้างเว็บไซต์เพื่อแสดงความสามารถของแต่ละคนออกมา กำหนดกฏพื้นฐานของท่าต่างๆ หากใครทำได้ก็เลื่อนสกิลให้ และการให้คะแนนก็คือการอัดคลิปของตัวเองมาให้แอดมินและผู้เล่นระดับหัวหน้าทีม และสมาชิกคนอื่นๆโหวตให้ ถ้าเกินที่กำหนดไว้ สกิลก็จะอัพทันที

แล้วเราจะได้อะไร?

อย่างแรกเลยได้ความสนุกสนานครับ ต่อมาก็คือถ้านำแสดงบนเว็บไซต์แบบสาธารณะ ก็มีโอกาสที่แมวมองอาจจะมาเจอเข้าโดยบังเอิญก็ได้ ก็จะเป็นการเพิ่มโอกาสให้น้องๆได้แข่งในระดับต่างๆที่มีคนสนใจชักชวนไปเล่นด้วย (ถ้ารูปร่างไม่ผ่านมาตรฐานคงไม่ได้ไปไกลระดับลีกประเทศหรอกนะ - -" #เศร้าแป๊บ)

มาดูกันเลยครับ หลักๆของระบบให้คะแนนมีอะไรบ้าง?

ส่วนที่ 1 นาฬิกาจับเวลา
ประกอบด้วย

  • ตัวเลขระบุ Quarter
  • นาฬิกาแสดงเวลาคงเหลือของแต่ละ Quarter
  • นาฬิกาแสดงเวลา ครองบอลของฝ่ายบุก (Short Clock)
  • นาฬิกาแสดงเวลา คงเหลือของการขอเวลานอก (Time Out)

clock


ส่วนที่ 2 การให้คะแนน และแสดงผล


  • ช่องแสดงผลคะแนนรวมของทีม
  • ช่องแสดงผลการทำฟาล์วรวมของทีม
  • รายชื่อผู้เล่นในสนามและปุ่มให้คะแนน (+1=ลูกโทษ, +2=ลูกทำคะแนนในกรอบ, +3=ลูกชู้ท นอกกรอบ 3 คะแนน)
  • ช่องแสดงจำนวนครั้งที่ฟาล์วของแต่ละคน เพื่อนับการ Fouls Out
change


ส่วนที่ 3 การเปลี่ยนตัว ขอเวลานอก และผู้เล่นสำรอง
  • ปุ่มสำหรับหยุดเวลาเพื่อเปลี่ยนตัว
  • ปุ่มหยุดเวลาเพื่อนับเวลาคงเหลือของการขอเวลานอก
  • ส่วนของรายชื่อผู้เล่นสำรองนั้นจะแสดงผลคะแนนและการฟาล์วเช่นเดียวกับผู้เล่นในสนาม เพียงแต่จะแยกออกมาเพื่อความง่ายในการให้คะแนน

score


หลังจากเคลียร์ภาระกิจหลักเสร็จเรียบร้อย งานอดิเรกชิ้นแรกที่จะทำคงจะเป็นระบบนี้อย่างแน่นอน ส่วนใครที่รอบทความเกี่ยวกับ PHP Builder คงต้องรอไปก่อนนะครับ ช่วงนี้กำลังสนุกอยู่กับบาสเกตบอล ^^




PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

สนใจสั่งซื้อเพียง 4,500 บาท
http://fastcoding.phpcodemania.com/

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สอนเขียน PHP แสดงการจองห้องประชุมแบบไฮไลท์ตามช่วงเวลา (แบบเชื่อมต่อฐานข้อมูล MySQL)

ตัวอย่าง ผลลัพธ์ที่ได้จากการจองในฐานข้อมูล ตาราง tb_room สร้างตารางรายชื่อห้องประชุม สำหรับ id นั้นเป็น Primarykey จะกำหนดให้สร้างอัตโนมัติ ทุกครั้งที่เราเพิ่มชื่อห้องประชุมใหม่ -- -- Database: `tobedev_example` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_room` -- CREATE TABLE IF NOT EXISTS `tb_room` (   `id` int(11) NOT NULL,   `name` varchar(30) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Dumping data for table `tb_room` -- INSERT INTO `tb_room` (`id`, `name`) VALUES (1, 'ห้องประชุม 1'), (2, 'ห้องประชุม 2'), (3, 'ห้องประชุม 3'), (4, 'ห้องประชุม 4'), (5, 'ห้องประชุม 5'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_room` -- ALTER TABLE `tb_room`   ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_room` -- ALTER TABLE `tb_room`   MODIFY `i...

PHP กับการคิดส่วนลดเป็นเปอร์เซ็น 5%, 10%, 20% ตามช่วงราคาที่กำหนด

<?php     $total_price = 1000;     $discount = 0;         if($total_price >= 500 && $total_price < 1001){         $discount = 5;     }elseif($total_price >= 1001 && $total_price <= 5000){         $discount = 10;     }elseif($total_price >= 5001){         $discount = 20;     }         $discount_bath = ($total_price*$discount)/100; ?> <pre> ซื้อสินค้าครบ 0 ถึง 499 บาท ไม่ได้ส่วนลด ซื้อสินค้าครบ 500 ถึง 1000 บาท ได้ส่วนลด 5% ซื้อสินค้าครบ 1001 ถึง 5000บาท ได้ส่วนลด 10% ซื้อสินค้าครบ 5001 บาทขึ้นไป ได้ส่วนลด 20% </pre> <h3>รวมราคาสินค้า = <?php echo number_format($total_price,2);?></h3> <h5>ส่วนลด = <?php echo $discount;?>%  (<?php echo $discount_bath;?...