Rumah > hujung hadapan web > tutorial js > Coffeescript Praktikal: Membuat Permainan Tic-Tac-Toe

Coffeescript Praktikal: Membuat Permainan Tic-Tac-Toe

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-19 13:18:10
asal
547 orang telah melayarinya

Coffeescript Praktikal: Membuat Permainan Tic-Tac-Toe

Coffeescript adalah bahasa kecil kecil yang dikumpulkan kepada JavaScript. Tidak ada tafsiran semasa runtime sejak anda menulis Coffeescript, menyusunnya ke JavaScript dan menggunakan fail JavaScript yang dihasilkan untuk aplikasi anda. Anda boleh menggunakan mana -mana perpustakaan JavaScript (mis. Coffeescript boleh digunakan untuk menulis JavaScript di bahagian depan dan JavaScript di belakang.

Takeaways Key

    Kecekapan Coffeescript: Coffeescript dengan ketara mengurangkan jumlah kod yang diperlukan, dengan pengurangan 36% dalam aksara berbanding dengan JavaScript, meningkatkan kebolehbacaan dan penyelenggaraan.
  • Perkembangan Rapid: Sintaks Ringkas Coffeescript dan Scoping Pembolehubah Automatik Mencegah Kesalahan Biasa dan Mempercepatkan Masa Pembangunan.
  • Integrasi dan Penyusunan: Coffeescript dengan lancar mengintegrasikan dengan perpustakaan JavaScript seperti jQuery dan disusun ke dalam JavaScript, yang membolehkan penggunaan dalam kedua-dua pembangunan front-end dan back-end.
  • Butiran pelaksanaan permainan: Permainan Tic-Tac-Toe menggunakan struktur yang jelas dengan papan, statistik pemain, dan kemas kini status permainan, semuanya diuruskan melalui sintaks dan jQuery Coffeescript untuk manipulasi DOM.
  • Ciri -ciri yang dipertingkatkan dengan Coffeescript: Menggunakan ciri -ciri seperti gelung, syarat, dan storan tempatan untuk menguruskan keadaan permainan, bergerak pemain, dan pemarkahan, menunjukkan aplikasi praktikal Coffeescript dalam projek web.
  • Jadi mengapa Coffeescript?

Kurang kod

Menurut buku kecil di Coffeescript, sintaks Coffeescript mengurangkan jumlah aksara yang anda perlukan untuk menaip untuk mendapatkan JS anda bekerja sekitar 33% hingga 50%. Saya akan membentangkan permainan tic-tac-toe yang mudah dibuat menggunakan Coffeescript (anda mungkin sudah menebak ini dari tajuk) yang dalam format Coffeescript mentahnya mengandungi 4963 aksara, sedangkan kod JavaScript yang disusun mengandungi 7669 aksara. Itu adalah perbezaan 2706 aksara atau 36%!

masa pembangunan yang lebih cepat

Kerana anda menulis lebih pendek, kurang rawan ralat (mis. Pembolehubah adalah auto-scoped, bermakna anda tidak boleh menimpa global secara tidak sengaja dengan menghilangkan var), anda boleh menyelesaikan projek anda lebih cepat. Sintaks terse Coffeescript juga membuat kod yang lebih mudah dibaca, dan akhirnya kod yang lebih mudah dikekalkan.

Bermula

Dalam artikel ini, kami akan membina permainan tic-tac-toe mudah dengan Coffeescript dan jQuery. Jika anda ingin membaca di sintaks sebelum memeriksa kes praktikal, saya cadangkan saya mempercepatkan perkembangan JavaScript anda dengan artikel Coffeescript di sini di SitePoint. Ini juga memperincikan cara memasang Coffeescript melalui NPM (Pengurus Pakej Node).

Seperti biasa, semua kod dari tutorial ini boleh didapati di GitHub dan demo boleh didapati di Codepen atau pada akhir tutorial.

arahan kopi yang paling biasa yang akan anda gunakan adalah:

Nama fail kopi -c akan menyusun fail Coffeescript ke fail dengan nama yang sama tetapi dengan lanjutan .js (fail coffeescript biasanya mempunyai lanjutan.).

Coffee -CW FileName akan menonton perubahan dalam fail (setiap kali anda menyimpan fail) dan menyusunnya.

Coffee -CW FolderName/ akan menonton perubahan pada semua fail.

Akhirnya, berguna untuk menyusun Coffeescript dari folder dengan fail .coffee ke folder yang mengandungi hanya .js fail.

kopi -o js / -cw / coffee akan menonton perubahan dalam semua fail .cofee yang terletak di folder kopi dan letakkan output (JavaScript) dalam folder JS.

Jika anda tidak masuk ke terminal, anda boleh menggunakan alat dengan GUI untuk mengendalikan fail Coffeescript anda. Sebagai contoh, anda boleh mencuba Prepros pada percubaan tanpa had percuma (walaupun anda perlu membelinya jika anda suka). Imej di bawah menunjukkan beberapa pilihan yang disediakan:

Coffeescript Praktikal: Membuat Permainan Tic-Tac-Toe anda dapat melihat bahawa prepros melakukan semua kerja untuk anda -ia menetapkan pemerhati supaya fail. dan ia menyokong Coffeescript ICED. Prepros juga boleh digunakan untuk preprocessors CSS seperti enjin kurang dan sass dan templat seperti Jade.

Permainan

mari kita mulakan dengan markup:

antara muka permainan terdiri daripada yang berikut:
<span><span><span><div</span> class<span>="wrapper"</span>></span>
</span>  <span><span><span><header</span> class<span>="text-center"</span>></span>
</span>    <span><span><span><h1</span>></span>Tic Tac Toe<span><span></h1</span>></span>
</span>  <span><span><span></header</span>></span>
</span>
  <span><span><span><div</span> id<span>="board"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="alerts welcome"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="notifications"</span>></span><span><span></div</span>></span>
</span>
  <span><span><span><form</span> action<span>=""</span> method<span>="POST"</span>></span>
</span>    ...
  <span><span><span></form</span>></span>
</span><span><span><span></div</span>></span>
</span>
<span><span><span><script</span> src<span>="jquery.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> src<span>="logic/app.js"</span>></span><span><span></script</span>></span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

header yang secara ringkas menggambarkan permainan
  • elemen div dengan id papan yang mana di mana kotak 3 × 3 akan ditempatkan
  • elemen div dengan kelas makluman yang mana status permainan akan ditunjukkan
  • elemen div dengan kelas pemberitahuan yang akan menunjukkan siapa yang bermain X dan O, bersama dengan statistik pemain umum.
  • borang yang akan dipaparkan hanya apabila permainan memuat dan akan meminta pemain untuk memasukkan nama mereka.
  • Selaras dengan amalan terbaik, kedua -dua jQuery dan skrip yang membuat aplikasi kami dimuatkan sebelum tag badan penutup.

Styling

Menggunakan CSS, kita boleh membuat sembilan dataran yang terlibat muncul dalam grid 3 × 3 dengan mengapung setiap persegi dan membersihkan setiap ke -4.

kita juga boleh menambah warna yang berbeza ke dataran bergantung kepada sama ada mereka mempunyai Kelas X atau O (yang ditambah menggunakan JavaScript).
<span><span>.square:nth-of-type(<span>3n + 1</span>)</span> {
</span>  <span>clear: both;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Coffeescript in Action
<span><span>.square.x</span> {
</span>  <span>color: crimson;
</span><span>}
</span>
<span><span>.square.o</span> {
</span>  <span>color: #3997ff;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

untuk rujukan, anda boleh mencari fail Coffeescript utama di sini.

Anda dapat melihat aplikasi tic-tac-toe kami bermula dengan $->, ini bersamaan dengan fungsi jQuery yang melaksanakan kod apabila DOM siap: $ (fungsi () {... ...});.

Coffeescript tidak bergantung pada titik -titik besar dan pendakap tetapi pada lekukan. -> memberitahu Coffeescript bahawa anda menentukan fungsi supaya anda boleh memulakan badan fungsi pada baris seterusnya dan indent badan dengan dua ruang.

Seterusnya, kami membuat objek yang dipanggil tic yang sendiri mengandungi objek yang dipanggil data. Anda dapat melihat bahawa pendakap atau koma tidak wajib apabila membuat objek, selagi anda menghidupkan sifat dengan betul.

<span><span><span><div</span> class<span>="wrapper"</span>></span>
</span>  <span><span><span><header</span> class<span>="text-center"</span>></span>
</span>    <span><span><span><h1</span>></span>Tic Tac Toe<span><span></h1</span>></span>
</span>  <span><span><span></header</span>></span>
</span>
  <span><span><span><div</span> id<span>="board"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="alerts welcome"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="notifications"</span>></span><span><span></div</span>></span>
</span>
  <span><span><span><form</span> action<span>=""</span> method<span>="POST"</span>></span>
</span>    ...
  <span><span><span></form</span>></span>
</span><span><span><span></div</span>></span>
</span>
<span><span><span><script</span> src<span>="jquery.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> src<span>="logic/app.js"</span>></span><span><span></script</span>></span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Harta giliran akan memegang jumlah giliran yang diambil dalam permainan. Kita boleh menyemak sama ada ia memegang nombor yang sama atau tidak sekata dan dengan cara itu menentukan sama ada giliran X atau O.

sifat X dan O adalah objek dan akan mengandungi data yang berkaitan dengan bilangan X atau O pada tiga paksi yang penting untuk permainan: mendatar, menegak dan pepenjuru. Mereka akan dikemas kini pada setiap langkah melalui kaedah Checkend untuk mewakili pengedaran X dan O di papan. Kaedah pemeriksaan kemudian akan memanggil Checkwin untuk menentukan sama ada terdapat pemenang.

selepas itu kita mempunyai kaedah di dalam objek tic yang akan mendapat segala -galanya dan berjalan:

<span><span>.square:nth-of-type(<span>3n + 1</span>)</span> {
</span>  <span>clear: both;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Perhatikan penggunaan @ yang dikumpulkan kepada kata kunci JavaScript ini. Seperti yang digambarkan dalam harta pertama yang dimulakan, anda boleh melangkau titik selepas kata kunci @ apabila menetapkan atau memanggil harta atau kaedah.

dengan memberikan kaedah nama yang masuk akal, kami mempunyai idea yang adil tentang apa yang mereka lakukan:

  • setPlayernames menyimpan nilai -nilai yang dimasukkan oleh pengguna dalam input ke dalam objek data.
  • pengambilan semula mengambil statistik pemain dari LocalStorage dan menetapkannya dalam objek data.
  • Depan Resistroles Menentukan siapa yang bermain X dan siapa yang bermain O.
  • Prepareboard menyembunyikan borang, menghilangkan sebarang pemberitahuan, mengosongkan papan dan mengisi dengan sembilan dataran kosong.
  • Updatenotifications mengemas kini UI dengan maklumat tentang siapa yang bermain X dan siapa yang bermain O, serta statistik pemain.
  • AddListeners melekatkan pendengar acara, supaya kita dapat bertindak balas terhadap pemain yang bergerak.

menyelam lebih mendalam

mari kita lihat beberapa kaedah ini dengan lebih terperinci.

<span><span>.square.x</span> {
</span>  <span>color: crimson;
</span><span>}
</span>
<span><span>.square.o</span> {
</span>  <span>color: #3997ff;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

di sini kita melangkah sembilan kali dan menambah sembilan div dengan kelas persegi ke papan kosong untuk memisahkannya. Ini menunjukkan bagaimana Coffeescript membolehkan anda menulis gelung satu baris dan mengisytiharkan badan gelung sebelum menulis keadaan itu sendiri.

$ <span>->
</span>  <span>Tic =
</span>    <span>data:
</span>      <span>turns: 0
</span>      <span>x: {}
</span>      <span>o: {}
</span>      <span>gameOver: false</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Coffeescript membolehkan interpolasi rentetan yang meningkatkan kebolehbacaan dan mengurangkan kerumitan dan panjang kod. Anda boleh menambah #{} dalam mana -mana rentetan dan masukkan sebarang pembolehubah atau nilai pulangan dari panggilan fungsi dalam pendakap.

<span>initialize: ->
</span>  @data<span>.gameOver = false
</span>  @<span>.setPlayerNames()
</span>  @<span>.retrieveStats()
</span>  @<span>.assignRoles()
</span>  @<span>.prepareBoard()
</span>  @<span>.updateNotifications()
</span>  @<span>.addListeners()</span>
Salin selepas log masuk
Salin selepas log masuk

Kaedah penambahan mencontohkan bagaimana anda menentukan parameter dalam Coffeescript. Anda menulisnya sebelum anak panah (->):

anda boleh memberikan nilai lalai untuk parameter yang serupa dengan php:

<span><span><span><div</span> class<span>="wrapper"</span>></span>
</span>  <span><span><span><header</span> class<span>="text-center"</span>></span>
</span>    <span><span><span><h1</span>></span>Tic Tac Toe<span><span></h1</span>></span>
</span>  <span><span><span></header</span>></span>
</span>
  <span><span><span><div</span> id<span>="board"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="alerts welcome"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="notifications"</span>></span><span><span></div</span>></span>
</span>
  <span><span><span><form</span> action<span>=""</span> method<span>="POST"</span>></span>
</span>    ...
  <span><span><span></form</span>></span>
</span><span><span><span></div</span>></span>
</span>
<span><span><span><script</span> src<span>="jquery.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> src<span>="logic/app.js"</span>></span><span><span></script</span>></span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Apabila fungsi dengan parameter lalai disusun, ia ditukar kepada:

<span><span>.square:nth-of-type(<span>3n + 1</span>)</span> {
</span>  <span>clear: both;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Akhirnya, mari kita beralih kepada kaedah AddListeners:

<span><span>.square.x</span> {
</span>  <span>color: crimson;
</span><span>}
</span>
<span><span>.square.o</span> {
</span>  <span>color: #3997ff;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

di sini kita melihat bahawa Coffeescript menawarkan kata kunci tambahan untuk mewakili nilai -nilai yang benar dan palsu seperti tidak, ya, off dan seterusnya. Selain itu ,! ==, ===, && ,! boleh diwakili menggunakan ISNT, adalah, dan dan tidak sewajarnya.

anda boleh membuat syarat baris tunggal yang boleh dibaca menggunakan jika ... maka ... lain ... sintaks.

mekanik permainan

Pemeriksaan Pemeriksaan Kaedah Workhorse jika ada pemenang setiap kali pemain membuat langkah. Ia melakukan ini dengan melelehkan ke atas papan dan mengira dataran yang dimiliki oleh X dan O. Ia mula -mula memeriksa paksi pepenjuru, maka menegak, kemudian mendatar.

$ <span>->
</span>  <span>Tic =
</span>    <span>data:
</span>      <span>turns: 0
</span>      <span>x: {}
</span>      <span>o: {}
</span>      <span>gameOver: false</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

seperti yang anda lihat, ini menggunakan ciri -ciri Coffeescript yang berguna.

<span>initialize: ->
</span>  @data<span>.gameOver = false
</span>  @<span>.setPlayerNames()
</span>  @<span>.retrieveStats()
</span>  @<span>.assignRoles()
</span>  @<span>.prepareBoard()
</span>  @<span>.updateNotifications()
</span>  @<span>.addListeners()</span>
Salin selepas log masuk
Salin selepas log masuk

Ini akan gelung tiga kali, menetapkan baris sama dengan 0, 1 dan 2 dalam perintah ini. Sebagai alternatif, [0 ... 2] (julat eksklusif) akan menghasilkan hanya dua lelaran, menetapkan baris sama dengan 0 dan 1.

Dalam pemeriksaan mendatar kita melihat lagi bagaimana lekukan penting dalam menentukan apa yang merupakan sebahagian daripada gelung dan apa yang ada di luar gelung -hanya panggilan medan di dalam gelung dalaman.

ini adalah apa yang kelihatan seperti:

<span>prepareBoard: ->
</span>  <span>...
</span>  <span>$("<div>", {class: "square"}).appendTo("#board") for square in [0..8]</span>
Salin selepas log masuk

Kaedah ini menunjukkan penggunaan? Kata kunci, yang apabila dimasukkan di sebelah pembolehubah dalam bersyarat, disusun kepada:

<span>updateNotifications: ->
</span>  <span>$(".notifications").empty().show()
</span>  @<span>.addNotification "#{@data.player1} is playing #{@data.rolep1}"
</span>  <span>...</span>
Salin selepas log masuk

yang jelas agak berguna.

Apa kaedah semakan medan adalah menambah satu ke paksi yang sesuai dengan harta X atau O bergantung pada nama kelas dataran yang diklik. Nama kelas ditambah apabila pengguna mengklik pada persegi papan kosong dalam kaedah AddListeners.

Ini membawa kami ke kaedah Checkwin, yang digunakan untuk memeriksa sama ada salah seorang pemain telah memenangi permainan:

<span>addNotification: (msg) ->
</span>  <span>$(".notifications").append($("<p>", text: msg));</span>
Salin selepas log masuk

Dalam Coffeescript anda boleh gunakan untuk ... dalam array untuk gelung ke atas nilai array dan untuk kunci, nilai objek untuk gelung ke atas sifat objek. CheckWin menggunakan ini untuk memeriksa semua sifat di dalam objek X dan O. Jika mana -mana daripada mereka memegang nombor yang lebih besar daripada atau sama dengan tiga, maka kami mempunyai pemenang dan permainan harus berakhir. Dalam kes sedemikian, kami memanggil kaedah AddToscore yang berterusan hasil pemain melalui LocalStorage.

perkataan mengenai storan tempatan

LocalStorage adalah sebahagian daripada spesifikasi storan web dan mempunyai sokongan pelayar yang cukup baik. Ia membolehkan anda menyimpan data (serupa dengan kuki) pada mesin pengguna dan mengaksesnya bila -bila masa yang anda mahukan.

anda boleh mengakses API dalam beberapa cara, contohnya seperti yang anda lakukan kepada sifat objek biasa:

<span>addNotification: (msg = "I am a message") -></span>
Salin selepas log masuk

Penyimpanan tempatan sentiasa menjimatkan rentetan jadi jika anda ingin menyimpan objek atau array anda perlu menggunakan json.stringify apabila menyimpan array/objek dan json.parse apabila mengambilnya.

Kaedah AddToscore kami menggunakan fakta ini:

<span><span><span><div</span> class<span>="wrapper"</span>></span>
</span>  <span><span><span><header</span> class<span>="text-center"</span>></span>
</span>    <span><span><span><h1</span>></span>Tic Tac Toe<span><span></h1</span>></span>
</span>  <span><span><span></header</span>></span>
</span>
  <span><span><span><div</span> id<span>="board"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="alerts welcome"</span>></span><span><span></div</span>></span>
</span>  <span><span><span><div</span> class<span>="notifications"</span>></span><span><span></div</span>></span>
</span>
  <span><span><span><form</span> action<span>=""</span> method<span>="POST"</span>></span>
</span>    ...
  <span><span><span></form</span>></span>
</span><span><span><span></div</span>></span>
</span>
<span><span><span><script</span> src<span>="jquery.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> src<span>="logic/app.js"</span>></span><span><span></script</span>></span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ia juga menunjukkan bagaimana anda boleh menghilangkan kurungan dalam Coffeescript (JSON.Stringify), walaupun itu disyorkan untuk panggilan fungsi paling luar sahaja.

Seterusnya kami mempunyai beberapa kaedah utiliti. Kami menggunakan emptystoragevar untuk membersihkan kandungan baris mendatar tertentu atau pepenjuru. Ini perlu kerana terdapat dua pepenjuru di papan dan di dalam kaedah Chekend kami, kami menggunakan harta data yang sama untuk kedua -dua pepenjuru. Oleh itu, kita perlu membersihkan harta itu sebelum memeriksa pepenjuru kedua. Begitu juga untuk baris mendatar.

<span><span>.square:nth-of-type(<span>3n + 1</span>)</span> {
</span>  <span>clear: both;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Mendapatkan nama pemain

Apabila borang dengan nama pemain diserahkan pada permulaan permainan, kita dapat menghalang tindakan lalainya dan mengendalikan penyerahan menggunakan JavaScript. Kami periksa sama ada terdapat nama kosong atau jika kedua -dua nama adalah sama dan memaparkan amaran mesra jika ya. Jika tidak, kami memulakan permainan dengan memanggil tic.initialize ().

<span><span>.square.x</span> {
</span>  <span>color: crimson;
</span><span>}
</span>
<span><span>.square.o</span> {
</span>  <span>color: #3997ff;
</span><span>}</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Baris terakhir menggunakan delegasi acara untuk mempunyai elemen dengan kelas play-again bertindak balas terhadap satu klik. Delegasi acara diperlukan, kerana elemen ini hanya ditambah ke halaman setelah permainan selesai. Ia tidak hadir apabila DOM pertama kali diberikan.

$ <span>->
</span>  <span>Tic =
</span>    <span>data:
</span>      <span>turns: 0
</span>      <span>x: {}
</span>      <span>o: {}
</span>      <span>gameOver: false</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

meletakkan semuanya bersama

Dan itu sahaja. Dalam kurang daripada 150 baris Coffeescript kita mempunyai permainan kerja. Jangan lupa, anda boleh memuat turun kod dari tutorial ini dari GitHub.

lihat pena-tac-toe oleh sitepoint (@sitePoint) pada codepen.

Kesimpulan

Saya berharap tutorial ini telah mengukuhkan pengetahuan anda tentang Coffeescript dan telah menunjukkan kepada anda bagaimana jQuery dan Coffeescript dapat bekerjasama. Terdapat banyak perkara yang boleh anda lakukan untuk memperbaiki permainan. Sebagai contoh, anda boleh menambah pilihan untuk membuat papan berbeza daripada dimensi standard 3 × 3. Anda boleh melaksanakan beberapa AI yang mudah supaya pemain boleh bermain menentang mesin, atau anda boleh melaksanakan bom dalam permainan, mis. dengan menambah X atau O secara rawak bergerak rawak sementara pemain berjuang untuk kemuliaan.

Soalan Lazim (Soalan Lazim) Mengenai Coffeescript dan Tic Tac Toe Game

Bagaimana saya boleh memulakan dengan CoffeaScript untuk membuat permainan tic tac toC? Coffeescript adalah bahasa kecil yang disusun menjadi JavaScript. Ia memberikan sintaks yang lebih baik mengelakkan bahagian -bahagian JavaScript yang unik, masih mengekalkan fleksibiliti dan keindahan bahasa. Anda boleh memulakan dengan mempelajari asas -asas Coffeescript dari laman web rasmi atau sumber dalam talian yang lain. Sebaik sahaja anda mempunyai pemahaman asas, anda boleh mula mengodkan permainan Tic Tac Toe anda. Anda boleh menggunakan mana -mana editor teks untuk menulis kod anda dan kemudian menyusunnya ke dalam JavaScript menggunakan pengkompil Coffeescript. daripada permainan TAC Tac Toe dalam Coffeescript adalah serupa dengan bahasa pengaturcaraan yang lain. Mereka termasuk papan permainan, pemain, dan logik permainan. Papan permainan adalah grid 3 × 3 di mana pemain meletakkan tanda mereka. Pemain biasanya dua, dan mereka bergilir -gilir untuk meletakkan tanda mereka di papan permainan. Logik permainan termasuk peraturan permainan, seperti bagaimana pemain menang, apa yang berlaku apabila permainan adalah seri, dan sebagainya.

Mewujudkan papan permainan untuk Tic Tac Toe dalam Coffeescript melibatkan menentukan matriks 3 × 3. Ini boleh dilakukan dengan menggunakan pelbagai tatasusunan. Setiap array dalaman mewakili baris di papan permainan, dan setiap elemen dalam array dalaman mewakili sel di papan permainan. Pada mulanya, semua sel kosong. Apabila pemain bergerak, sel yang sepadan dalam matriks dikemas kini dengan tanda pemain. papan dan memeriksa jika permainan telah dimenangi. Apabila pemain membuat langkah, anda perlu mengemas kini sel yang sepadan di papan permainan dengan tanda pemain. Kemudian, anda perlu menyemak sama ada pemain telah memenangi permainan. Ini boleh dilakukan dengan memeriksa semua kemungkinan gabungan sel.

Bagaimana saya boleh menyemak sama ada pemain telah memenangi permainan dalam Coffeescript?

Memeriksa semua kemungkinan gabungan sel. Terdapat 8 kemungkinan kombinasi yang menang: 3 baris, 3 lajur, dan 2 pepenjuru. Anda boleh menyemak setiap kombinasi untuk melihat sama ada semua sel dalam gabungan mempunyai tanda yang sama, iaitu tanda pemain semasa. Jika ya, pemain telah memenangi permainan. Pemain telah memenangi permainan. Jika semua sel telah ditandakan dan tiada pemain telah menang, permainan adalah seri. Anda boleh menyemak ini selepas setiap pemain bergerak.

Bagaimana saya boleh menyusun kod Coffeescript saya ke dalam JavaScript? Anda boleh memasang pengkompil menggunakan NPM, Pengurus Pakej Node.js. Sebaik sahaja dipasang, anda boleh menyusun kod Coffeescript anda ke dalam JavaScript menggunakan arahan kopi diikuti dengan pilihan -c dan nama fail coffeescript anda. Anda boleh menggunakan jQuery dengan Coffeescript. Coffeescript menyusun ke dalam JavaScript, jadi anda boleh menggunakan mana -mana perpustakaan JavaScript dengannya, termasuk jQuery. Anda boleh menggunakan jQuery untuk memanipulasi DOM, mengendalikan acara, membuat animasi, dan banyak lagi. Gunakan untuk debug JavaScript. Kebanyakan pelayar moden datang dengan alat pemaju terbina dalam yang termasuk debugger JavaScript. Anda boleh menggunakan debugger ini untuk melangkah melalui kod anda, memeriksa pembolehubah, dan banyak lagi. Perhatikan bahawa anda akan menyahpepijat kod JavaScript yang disusun, bukan kod Coffeescript yang asal. Panduan terperinci, rujukan kepada sintaks bahasa, dan contoh. Terdapat juga banyak tutorial dan kursus dalam talian yang terdapat di laman web seperti Codecademy, Udemy, dan Coursera. Di samping itu, anda boleh menemui banyak projek Coffeescript sumber terbuka di GitHub untuk belajar dari kod dunia sebenar.

Atas ialah kandungan terperinci Coffeescript Praktikal: Membuat Permainan Tic-Tac-Toe. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan