


Pembangunan Permainan JavaScript: Cara menggantikan nilai teks dengan elegan dengan ikon emoji
Artikel ini meneroka cara menggantikan rentetan teks yang digunakan dalam logik dalaman (seperti "rock", "kertas", "gunting") dengan ikon emoji yang lebih menarik (seperti "✊", "?", "✌") dalam permainan JavaScript. Strategi teras adalah menggunakan objek pemetaan untuk mengaitkan nilai teks dengan emoji yang sepadan, dengan itu mencapai pemisahan data dan paparan, meningkatkan fleksibiliti dan pemeliharaan kod, dan memudahkan pengembangan masa depan ke gambar atau ikon SVG.
Apabila membina aplikasi interaktif, terutama permainan seperti rock, kertas, gunting, kita sering perlu menggunakan nilai rentetan yang mudah diingini dalam logik dalaman kami dan memaparkan unsur-unsur visual yang lebih intuitif atau cantik pada antara muka pengguna. Menggantikan nilai teks seperti "batu", "kertas", dan "gunting" dengan ikon emoji yang sepadan bukan sahaja dapat meningkatkan pengalaman pengguna, tetapi juga menjadikan antara muka lebih jelas. Artikel ini memperincikan pendekatan pelaksanaan yang disyorkan untuk memastikan kejelasan kod, pemeliharaan, dan skalabiliti.
Strategi Teras: Pemisahan data dan paparan
Amalan terbaik untuk melaksanakan penukaran teks-ke-emoji adalah untuk mengekalkan logik teras permainan (seperti menentukan kemenangan atau kekalahan) yang masih berdasarkan rentetan teks yang jelas, dan hanya melakukan pemetaan emoji apabila hasilnya perlu dipaparkan kepada pengguna. Prinsip "pemisahan data dan persembahan" ini merupakan konsep penting dalam kejuruteraan perisian, menjadikan kod lebih mudah difahami, mengubahsuai, dan melanjutkan.
Kami akan menggunakan objek pemetaan untuk menyimpan surat -menyurat antara nilai teks dan emoji.
const emojis = { Rock: "✊", Kertas: "✋", // Nota: Emoji kertas dalam soalan asal adalah tanda tanya. Palma biasanya digunakan di sini untuk mewakili gunting: "✌" };
Dengan objek emojis ini, kita boleh mendapatkan nilai emoji yang sepadan melalui kekunci teks di mana hasilnya perlu dipaparkan.
Transformasi logik permainan
Mari kita ambil contoh kod JavaScript untuk permainan rock-kertas-gunting untuk menunjukkan cara menerapkan strategi ini.
1. Simpan logik dalaman menggunakan rentetan
Pertama sekali, fungsi GetComputerChoice harus terus mengembalikan nilai rentetan ("batu", "kertas", "gunting"), kerana rentetan ini adalah asas untuk penghakiman oleh logik permainan (seperti fungsi getResult).
fungsi getComputerChoice () { const options = ["rock", "kertas", "gunting"]; // simpan sebagai rentetan const rawak = math.floor (math.random () * options.length); pilihan pulangan [rawak]; // return string} fungsi getResult (PlayerChoice, ComputerChoice) { biarkan skor; jika (pemainChoice === ComputerChoice) { skor = 0; } lain jika ( (PlayerChoice == "Rock" && ComputerChoice == "Paper") || (PlayerChoice == "Paper" && ComputerChoice == "Scissors") || (PlayerChoice == "Gunting" && ComputerChoice == "Rock") ) { skor = -1; // pemain kehilangan} else { skor = 1; // Pemain menang} skor pulangan; }
Seperti yang anda dapat lihat, fungsi GetResult sepenuhnya bergantung pada perbandingan rentetan, jadi logiknya jelas dan kurang rawan ralat.
2. Pemetaan emoji pada lapisan persembahan
Apabila kita perlu memaparkan pemilihan pemain atau komputer kepada pengguna, kita menggunakan objek emojis untuk penukaran. Ini biasanya berlaku apabila mengemas kini elemen DOM seperti innertext.
Katakan kita mempunyai elemen komputerChoiceDiv yang memaparkan pilihan komputer, dan fungsi showresult yang memaparkan hasil akhir dan pilihan khusus pemain/komputer.
// Tentukan objek pemetaan emoji const emojis = { Rock: "✊", Kertas: "✋", Gunting: "✌" }; // ... (fungsi getComputerChoice dan getResult kekal tidak berubah) ... // Andaikan bahawa RPSBTNS adalah koleksi butang permainan anda // Anggapkan bahawa ComputerChoiceDiv adalah elemen DOM yang memaparkan pemilihan komputer // menganggap bahawa fungsi showresult bertanggungjawab untuk mengemas kini hasil akhir dan fungsi paparan pemilihan tertentu Playgame () { // badan gelung rpsbtns.foreach rpsbtns.foreach ( (btn) => (btn.onclick = () => { const PlayerChoice = Btn.Value; // rentetan yang dipilih oleh pemain const computerChoice = getComputerChoice (); // rentetan yang dipilih oleh komputer // menukar emoji apabila memaparkan pilihan komputer computerchoicediv.innertext = emojis [computerchoice]; // paparan emoji Const Score = GetResult (PlayerChoice, ComputerChoice); // Fungsi showresult juga harus mengendalikan paparan emoji secara dalaman // lulus rentetan asal dan biarkan mempamerkan secara dalaman memutuskan bagaimana untuk memaparkan showresult (skor, pemainChoice, computerchoice); }) ); } // Contoh pengubahsuaian fungsi showresult // menganggap bahawa fungsi showresult menerima skor, pemainchoicetext, computerchoicetext // dan emoji yang sepadan perlu dipaparkan Fungsi ShowResult (Skor, PlayerChoiceText, ComputerChoiceText) { // Kemas kini hasil berdasarkan skor ("Anda menang!", "Anda kalah!", "Ini seri!") // ... // Tunjukkan pemain dan pilihan komputer, menggunakan emoji // Andaikan anda mempunyai dua elemen dom pemainChoiceDisplay dan computerchoiceDisplay // playerchoicedisplay.innertext = emojis [playerchoicetext]; // computerchoicedisplay.innertext = emojis [computerchoicetext]; // Jika showResult hanya menerima teks mentah secara dalaman, ia perlu mengakses objek emojis secara dalaman konsol.log (`pemain memilih: $ {emojis [playerchoicetext]}`); console.log (`Komputer dipilih: $ {emojis [ComputerChoiceText]}`); Console.log (`Hasil: $ {score === 1? 'Anda menang!': score === -1? 'Anda hilang!': 'Draw!'}`); } // menganggap bahawa unsur -unsur DOM seperti RPSBTNS dan ComputerChoiceDiv wujud, dan PlayGame () dipanggil // playgame ();
Dalam contoh di atas, perubahan utama adalah:
- ComputerChoiceDiv.Innertext = emojis [ComputerChoice] ;: Setelah mendapatkan rentetan komputer dan memilih ComputerChoice, kami memperoleh dan memaparkan emoji yang sepadan melalui emojis [ComputerChoice].
- Fungsi showresult (jika bertanggungjawab untuk memaparkan pemilihan tertentu) juga harus menggunakan objek emojis dengan cara yang sama untuk menukar pemilihan teks masuk ke emoji untuk paparan.
Kelebihan dan pertimbangan
- Fleksibiliti dan penyelenggaraan yang tinggi:
- Mudah untuk mengubahsuai paparan: Jika anda ingin menukar emoji pada masa akan datang, atau menggantikan emoji dengan gambar atau ikon SVG, anda hanya perlu mengubah objek emojis (atau logik pemetaan yang sepadan) tanpa menyentuh logik permainan teras.
- Mudah untuk mengantaraikan: Jika permainan perlu menyokong pelbagai bahasa, logik permainan masih menggunakan rentetan bahasa Inggeris bersatu, dan lapisan paparan boleh memuatkan objek pemetaan yang berbeza mengikut lokasi.
- Jelas pemisahan tanggungjawab: Fungsi seperti GetComputerChoice dan GetResult memberi tumpuan kepada logik permainan dan tidak peduli tentang cara memaparkan data. Logik yang berkaitan dengan paparan difokuskan pada mengemas kini DOM.
- Kod Pembacaan: Kod Logik Permainan (seperti jika (PlayerChoice == "Rock" && ComputerChoice == "Paper")) menggunakan rentetan intuitif, yang lebih mudah difahami dan debug daripada secara langsung menggunakan emoji untuk perbandingan.
Meringkaskan
Dengan memperkenalkan objek pemetaan yang mudah dan menukar teks ke emoji dalam lapisan persembahan, kita bukan sahaja dapat meningkatkan daya tarikan antara muka pengguna, tetapi juga mengoptimumkan struktur kod. Strategi ini memisahkan data dari persembahan adalah kunci untuk membina aplikasi JavaScript yang teguh, fleksibel, dan mudah dikekalkan. Sama ada anda menukar emoji, memperkenalkan imej, atau berkembang ke elemen visual yang lebih kompleks pada masa akan datang, corak reka bentuk ini akan menjadikan kod anda lebih selesa.
Atas ialah kandungan terperinci Pembangunan Permainan JavaScript: Cara menggantikan nilai teks dengan elegan dengan ikon emoji. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial ini memperincikan cara menggunakan CSS untuk menyembunyikan kandungan teks tertentu dengan tepat di halaman HTML untuk mengelakkan masalah seluruh elemen induk yang tersembunyi kerana pemilih yang tidak betul. Dengan menambah kelas CSS eksklusif ke elemen pembalut teks sasaran dan menggunakan paparan: tiada; Atribut, pemaju boleh mencapai kawalan halus elemen halaman, memastikan bahawa hanya bahagian yang diperlukan tersembunyi, dengan itu mengoptimumkan susun atur halaman dan pengalaman pengguna.

Artikel ini meneroka cabaran menangkap peristiwa mousedown pada div ibu bapa yang mengandungi iframes domain. Masalah teras ialah dasar keselamatan pelayar (dasar asal usul) menghalang acara langsung DOM mendengar kandungan iframe silang domain. Jenis penangkapan acara ini tidak dapat dicapai melainkan nama domain sumber iframe dikawal dan CORS dikonfigurasi. Artikel ini akan menerangkan mekanisme keselamatan secara terperinci dan batasan mereka mengenai interaksi peristiwa dan memberikan alternatif yang mungkin.

USECSSSFLOOPROPERTYTOWRAPTEXTAROUNIMAGE: FloatLeftFortExtOntHeright, FloatRightFortExtOnTheLeft, AddMarginforspacing, andClearFloatStOpreventLayOuteSues.

Artikel ini meneroka dua masalah biasa apabila memanggil fungsi JavaScript luaran dalam HTML: masa pemuatan skrip yang tidak betul menyebabkan unsur-unsur DOM menjadi tidak siap, dan penamaan fungsi mungkin bertentangan dengan peristiwa terbina dalam pelayar atau kata kunci. Artikel ini menyediakan penyelesaian terperinci, termasuk lokasi rujukan skrip tweaking dan mengikuti spesifikasi penamaan fungsi yang baik untuk memastikan kod JavaScript dilaksanakan dengan betul.

USetetetitLeatTrBITrBITpetoLToolCUStOM-STyLElyLEtoMSORCUStOM.1.addtitle = "Text" toanyeLementFordefaLtTipips.2.forStyLEdToolTips, wrapTheelememementinAcontainer, uss.toolTipand.tool

Usemailto: inhreftocreateemailinks.startwithforbasiclinks, tambah? Subjek = dan & body = forpre-filledContent, andincludemultipleaddressorcc =, bcc = foradvancedOptions.

Setthelangattributeinthehtmltagtospecifypagelanguage, mis., Forenglish;

Apabila menggunakan bootstrap untuk susun atur laman web, pemaju sering menghadapi masalah elemen yang dipaparkan bersebelahan dan bukannya disusun secara vertikal secara lalai, terutamanya apabila bekas induk menggunakan susun atur Flexbox. Artikel ini akan meneroka cabaran susun atur yang sama dengan mendalam dan memberikan penyelesaian: dengan menyesuaikan atribut flex-arah dari bekas flex ke lajur, menggunakan kelas alat Flex-Column Bootstrap untuk mencapai susunan menegak yang betul dari tag H1 dan blok kandungan seperti bentuk, memastikan struktur halaman memenuhi jangkaan.
