Fungsi shuffle PHP shuffle array di PHP. Artikel menggunakan fungsi ini untuk membuat game berbasis konsol minimalis, "The Quiz Game"
Array Objek di PHP Learning Path
- Array Objek di PHP. Buat, Urutkan, Filter, Gabungkan, Cari, Dll
- Buat Array Objek di PHP
- Cara Menyortir Array Objek berdasarkan Properti di PHP
- Cara mengocok array objek di PHP
- Cara memfilter array objek berdasarkan nilai dalam PHP
- Cara memfilter array objek dengan kunci di PHP
Perkenalan
Array PHP fleksibel dalam hal tipe data elemen. Array dapat memiliki tipe campuran, termasuk objek. Indeks elemen menunjukkan posisinya dalam array, di mana elemen paling kiri memiliki indeks nol. Satu hal keren adalah pengocokan acak dalam sebuah array. Pengacakan acak sangat penting jika Anda mencoba mengembangkan permainan peluang, misalnya, Poker
Artikel ini mencakup berbagai objek. Objek-objek ini adalah turunan dari Kuis kelas. Kelas mewakili pertanyaan kuis tipikal dengan banyak jawaban. Artikel ini menunjukkan cara mengocok array di PHP dan membuat program berbasis konsol yang menampilkan pertanyaan kuis acak. Jadi mari kita mulai tanpa basa-basi lagi
Kelas Kuis
Inilah kelas "Kuis". Array akan menyimpan instance dari kelas ini
class Quiz { private $questionText; private $answersArray; function __construct($questionText, $answersArray) { $this->questionText = $questionText; $this->answersArray = $answersArray; } function getQuestion() { return $this->questionText; } function getAnswersArray() { return $this->getAnswersArray; } function setQuestion($questionText) { $this->questionText = $questionText; } function setAnswersArray($answersArray) { $this->answersArray = $answersArray; } }Objek Kuis
Berikut adalah beberapa contoh kelas "Kuis".
$question1 = new Quiz("What is the capital of USA?", [ ["Washington, D.C", "Correct"], ["California", "Incorrect"], ["Texas", "Incorrect"] ]); $question2 = new Quiz("Where is the Great Wall located?", [ ["Canada", "Incorrect"], ["China", "Correct"], ["India", "Incorrect"] ]); $question3 = new Quiz("Who was the first man on the moon?", [ ["Joseph Swan", "Incorrect"], ["Nicola Tesla", "Incorrect"], ["Neil Armstrong", "Correct"] ]); _Setiap objek diinisialisasi dengan pertanyaan berbasis teks dan larik yang memiliki larik bersarang, masing-masing dengan jawaban dan status, "Benar" atau "Salah".
Game Kuis – Acak susunan dalam PHP
Game kuis yang dibayangkan perlu memilih secara acak dari berbagai objek "Kuis". Untungnya, PHP menampilkan fungsi shuffle(). Jadi, mari kita lihat cara kerjanya
pengacakan PHP
shuffle(array &$array): bool_
Fungsi shuffle di PHP mengambil array dengan referensi, mengocok elemen pada tempatnya. Mari kita lihat contohnya
$arr = ["First", "Second", "Third", "Fourth", "Fifth"]; print_r($arr); /* OUTPUT BEFORE SHUFFLING Array ( [0] => First [1] => Second [2] => Third [3] => Fourth [4] => Fifth ) */Inilah hasilnya setelah diacak
shuffle($arr); print_r($arr); /* OUTPUT AFTER SHUFFLING Array ( [0] => Fourth [1] => Third [2] => First [3] => Fifth [4] => Second ) */Voila. Itulah cara mengocok array di PHP
Game Kuis – Acak susunan dalam PHP
Sekarang kita tahu cara mengocok array di PHP, mari kita buat "The Quiz Game".
Fungsi pembantu
Gim ini membutuhkan beberapa fungsi untuk fungsi inti. Mari kita lihat ini
function randomize(&$quizArray) { //If array is exhausted return null. if(empty($quizArray)) return null; //Select a random index. $randomIndex = rand(0, count($quizArray) - 1); //Shuffle array. shuffle($quizArray); //Pick the question at random index. $question = array_splice($quizArray, $randomIndex, 1); return $question[0]; } _
Fungsi randomize() mengambil pertanyaan secara acak dan meneruskannya ke kontrol pusat
Sesuai dengan namanya, fungsi displayQuestion() memiliki logika untuk menampilkan pilihan soal dan jawaban
function verifyAnswer($question, $answer) { if(!in_array($answer, [1, 2, 3, -1])) { throw new Exception('Input not supported'); } if($answer == "-1") { return -1; } foreach($question->getAnswersArray() as $k => $v) { //If the user picks the right answer. if(($answer - 1)== intval($k) && $v[1] == "Correct") { return 1; } } return 0; } _Fungsi verifikasiAnswer() memeriksa input pengguna dan bereaksi sesuai itu
Kode Utama
Berikut kode utama atau entry point dari “The Quiz Game”
//Array of Quiz Objects $quizQuestions = [$question1, $question2, $question3]; echo "Welcome to the Quiz Game".PHP_EOL.PHP_EOL; $name = readline("Please enter your name: "); $score = 0; $questionCount = 1; echo "Rules\n10 Points for a correct answer\n0 Points for an incorrect answer".PHP_EOL.PHP_EOL; $question = randomize($quizQuestions); while(isset($question)) { displayQuestion($questionCount + 1, $question); $answer = readline("Enter 1, 2, 3. Press -1 to quit: "); $status = verifyAnswer($question,$answer); //If the answer is correct if($status == 1) { $score += 10; $questionCount++; } elseif($status == 0) { $score -=5; $questionCount++; } elseif($status == -1) { break; } $question = randomize($quizQuestions); } //Show Result echo PHP_EOL.'SUMMARY'; echo $name.' attempted '.$questionCount.' questions'.PHP_EOL; echo $name.' scored '.$score.' out of '.$questionCount*10;Keluaran
Berikut cuplikan run, mulai dari intro dan pertanyaan pertama
Kemudian kami memiliki lebih banyak pertanyaan
Akhirnya, inilah ringkasannya
Voila. Saya mendapat nilai 30 dari 30. Toh saya sudah tahu jawabannya sebelumnya 🙂 Nah, itulah game minimalis berbasis console yang menggunakan array shuffling di PHP. Masih banyak ruang untuk perbaikan, tentu saja. Namun, tujuannya di sini adalah untuk mendemonstrasikan skenario di mana pengocokan berguna
Kesimpulan
Artikel ini menunjukkan cara mengocok array di PHP. Ini termasuk informasi tentang fungsi shuffle PHP dan penggunaannya. Artikel ini menggunakan pengocokan array di “The Quiz Game”, sebuah game berbasis konsol minimalis. Pengocokan array sangat penting dalam skenario serupa, misalnya, memodelkan permainan Poker atau model probabilistik. Semoga Anda menikmati artikel ini dan juga "Permainan Kuis" yang super sederhana. Nantikan lebih lanjut di FuelingPHP
Ingin mempelajari lebih lanjut tentang PHP?
Kami memiliki banyak artikel menarik yang berhubungan dengan PHP. Anda dapat menjelajahi ini untuk mempelajari lebih lanjut tentang PHP
- 3 cara paling sederhana untuk mengulang melalui peringkat array PHP
- Cara mengonversi objek ke array secara rekursif di PHP
- Perbedaan antara array_merge_recursive PHP vs array_replace_recursive
- Cara mengulang melalui array multidimensi di PHP
Pos terkait
- ← Cara mengocok array multidimensi di PHP
- Perbedaan antara array_merge_recursive PHP vs array_replace_recursive →
Tulis Kode Lebih Baik Lebih Cepat
Klik di sini untuk mendapatkan rahasia teratas 'Menjadi Rockstar PHP Dev dalam 7 Hari' kami dikirimkan ke kotak masuk Anda
mendaftar
Keajaiban Stefanus
Hai. Saya harap Anda menikmati artikel ini. Saya telah mengembangkan situs web dan perangkat lunak secara profesional selama lebih dari 20 tahun. Saya memulai FuelingPHP sebagai cara untuk memberikan kembali kepada komunitas sumber terbuka yang membantu saya dapat hidup dengan nyaman membangun hal-hal yang saya sukai