Toolbox Kedua MacGyver

16

Dalam pertanyaan ini setiap jawaban akan mendapatkan "kotak alat" yang dapat digunakan untuk membangun program / fungsi. Kotak alat akan terdiri dari dua hal:

  • daftar bahasa pemrograman

  • daftar karakter yang valid

Anda harus menulis program / fungsi yang valid dalam salah satu bahasa yang disediakan hanya menggunakan karakter di kotak alat. Program / fungsi Anda harus menampilkan jumlah jawaban yang sudah ada pada pertanyaan ini.

Setelah Anda menulis dan memposting jawaban, bahasa dan karakter yang Anda gunakan akan dihapus dari kotak peralatan dan 1 bahasa baru dan 8 karakter baru akan ditambahkan secara acak untuk digunakan sebagai kotak alat untuk jawaban berikutnya.

Aturan

  • Setiap jawaban akan:

    • Keluarkan jumlah jawaban valid yang datang sebelum itu
    • Berisi subset karakter yang disediakan dalam kotak alat untuk jawaban itu. (pengulangan diizinkan)
    • Berada di salah satu bahasa dari kotak alat yang disediakan
  • Toolbox berikutnya akan ditentukan oleh ini program python. Untuk menghasilkan kotak alat selanjutnya masukkan bahasa dan karakter yang tersisa bersama dengan id posting dari jawaban terakhir.

  • Daftar bahasa di sini adalah semua bahasa yang tersedia di coba online pada saat posting ini. Karakter memiliki kode char 0-127.

  • Anda dapat menulis program lengkap atau fungsi sebagai jawaban Anda. Karena REPL adalah bahasa yang berbeda, mereka tidak akan diizinkan. (gunakan versi TIO dari setiap bahasa)

  • Jika bahasa menggunakan pengkodean khusus karakter harus ditafsirkan sebagai byte (diterjemahkan dari ASCII dan diisi dengan nol).

  • Toolbox awal akan diacak dari id posting pertanyaan ini ( 128464 ), akan ada 7 bahasa untuk memulai dan saya akan menambahkan karakter echoprint0dan ascii 0-31 gratis untuk memulai orang.

  • Anda mungkin tidak menjawab dua kali berturut-turut

Mencetak gol

Setiap kali seseorang menjawab, mereka akan mendapatkan sejumlah poin untuk jawaban mereka. Tujuannya adalah untuk mendapatkan poin sebanyak mungkin. Untuk jawaban dalam bahasa X Anda akan mendapatkan banyak belokan karena bahasa X tidak digunakan di kotak alat. Misalnya orang pertama yang menjawab akan mendapatkan 1 poin karena bahasa baru saja ditambahkan ke kotak alat. Tidak akan ada akhirnya dan saya tidak akan menerima jawaban.

Olahraga

Ini adalah kompetisi, tetapi saya mendorong Anda untuk mengolok-olok kemenangan sambil tetap kompetitif (jika saya bisa membuat kriteria menang "bersenang-senang" saya akan). Beberapa hal yang tidak menyenangkan:

  • Dengan menggunakan karakter secara sengaja, Anda tidak perlu mengerdilkan jawaban di masa mendatang.
  • Mencoba mem-game sistem post id untuk membuat kotak alat masa depan lebih sulit digunakan.
  • Mencoba mem-game sistem post id untuk membuat kotak alat di masa depan lebih mudah digunakan.

Saya tidak dapat mencegah siapa pun dari melakukan hal-hal ini, tetapi saya akan menurunkan setiap jawaban yang saya curigai melakukan ini.

Pada catatan yang lebih positif, berikut adalah beberapa hal yang baik untuk olahraga dan dorongan:

  • Berkoordinasi dengan pengguna lain dalam obrolan.
  • Menyimpan karakter untuk bahasa yang lebih keras atau lebih ketat

Ini adalah iterasi kedua dari tantangan yang ditemukan di sini . Ini meningkatkan sejumlah masalah dengan yang pertama. Berikut ini adalah meta yang membahas pertanyaan-pertanyaan ini.

Posting Rock Garf Hunter
sumber
Apa kotak alat pertama?
CalculatorFeline
@CalculatorFeline Tertaut pada pertanyaan, diunggulkan dengan id pertanyaan.
Post Rock Garf Hunter
1
@tuskiomi pertanyaan yang lebih lama dan pertanyaan yang lebih baru dibuat oleh orang yang sama, dan patut untuk menutup pertanyaan yang lebih lama sebagai duplikat dari pertanyaan baru yang lebih baik.
Stephen
2
@tuskiomi Perbedaan terbesar adalah jumlah karakter yang ditambahkan ke kotak pasir setiap kali. Sebelumnya adalah 12, yang dengan cepat lepas kendali, yang berarti bahwa hampir setiap jawaban memiliki semua ASCII tersedia untuk itu. Saya telah menurunkannya menjadi 8, yang merupakan jumlah rata-rata karakter yang digunakan oleh semua jawaban di versi terakhir. Saya setuju bahwa perbedaan dalam seed dan scoring adalah perubahan kecil, tetapi penurunan karakter adalah alasan utama saya melakukan iterasi kedua.
Post Rock Garf Hunter
1
Saya cukup yakin ini tidak mungkin. Program Str membutuhkan ;(bukan dalam kotak peralatan) untuk melakukan apa pun ketika tidak diberi input. Condit dan program Tcl membutuhkan ruang (bukan dalam kotak) sebagai bagian dari sintaks. Kebutuhan skema (. Brain-Flak tidak dapat bekerja karena alasan yang jelas (hanya karakter di kotak peralatan yang dimengerti adalah )). Java 8 membutuhkan {(bukan dalam kotak peralatan) untuk mendeklarasikan suatu fungsi. Yang tersisa hanya maxima, yang saya pikir tidak bisa mencetak sesuatu tanpa "mencetak" atau mendeklarasikan fungsi tanpa menggunakan tanda kurung.
pppery

Jawaban:

8

Ini tidak mungkin

Menelusuri semua bahasa di langbox:

  1. Bahasa pemrograman tcl terdiri dari kata-kata yang dipisahkan oleh spasi. Karakter spasi tidak ada di kotak alat, jadi tidak ada program yang valid yang dapat ditulis.
  2. Str program secara default mengubah input. Agar mereka dapat melakukan apa saja ketika tidak diberi input, ;karakter diperlukan, yang tidak ada di kotak peralatan.
  3. Satu-satunya cara bagi program dalam skema-chez untuk melakukan apa pun adalah dengan memanggil fungsi menggunakan tanda kurung. Oleh karena itu semua program skema-chez membutuhkan (karakter, yang tidak ada di kotak alat
  4. Program Brain-Flak membutuhkan kurung yang seimbang. Satu-satunya karakter braket di kotak alat adalah ), jadi tidak ada program yang mengandung tanda kurung seimbang yang memungkinkan.
  5. Mirip dengan skema, program maksimal memerlukan tanda kurung untuk melakukan apa saja.
  6. Program Java memerlukan urutan karakter {atau ->untuk mendeklarasikan suatu fungsi (dan semua program lengkap membutuhkan setidaknya satu fungsi), tidak ada satupun yang ada di kotak alat.
  7. Program condit memerlukan kata when, yang berisi karakter "e", yang tidak ada di kotak alat.

Bukti ketidakmungkinan diizinkan sebagai jawaban

pppery
sumber