Nháy đèn webcam!


9

Thử thách này được lấy cảm hứng từ Blink the CAPS LOCK bởi zeppelin .

Hầu hết các webcam đều có đèn LED tích hợp nhỏ, cho biết webcam có được sử dụng hay không, được điều khiển bởi cơ chế phần cứng để ngăn chặn gián điệp.

Nhiệm vụ của bạn là chớp mắt:

  1. Bật nó lên.
  2. Đợi 0,5 (± 0,1) giây.
  3. Tắt nó một lần nữa.
  4. Đợi 0,5 (± 0,1) giây;
  5. Nói lại.

Vui lòng bao gồm một GIF hoặc video của webcam nhấp nháy, nếu có thể. Nếu câu trả lời không có GIF, vui lòng thêm GIF của chương trình đang chạy.

Quy tắc

  • Nếu ngôn ngữ của bạn thiếu sleeplệnh thứ hai, thay vào đó, chương trình của bạn có thể sử dụng độ trễ 1 giây, với mức phạt thêm một byte. (thay thế .5bằng 1)
    • Nếu ngôn ngữ của bạn, vì một số lý do, không hỗ trợ .5, hình phạt của bạn là 2 byte. (thay thế 0.5bằng 1)
  • Chương trình của bạn phải lặp trừ khi người dùng dừng lại.
  • Đèn LED của bạn có thể bắt đầu bật hoặc tắt; cái nào có lợi hơn có thể được sử dụng.
  • Nếu đèn LED của bạn có độ trễ tắt, thì nó không cần phải tính đến, trừ khi bạn muốn cung cấp một phiên bản bổ sung.

Chấm điểm

Đây là , có nghĩa là câu trả lời ngắn nhất tính theo byte thắng.


2
Đèn LED webcam của máy tính xách tay của tôi mất một lúc (dường như khoảng 0,3 giây) để tắt sau khi thiết bị video ngừng truy cập. Điều này có phải được đưa vào tài khoản?
Doorknob

@Doorknob Không, nhưng bạn có thể cung cấp một phiên bản có tính đến nó nếu bạn muốn.
haykam

1
Hình phạt chỉ nên là 1 byte, vì bạn chỉ có thể sử dụng.5
Elronnd

@Elronnd Tôi định thêm nó, nhưng tôi quên mất.
haykam

Câu trả lời:


8

MATLAB, 40 byte

while 1;w=webcam;pause(.5);delete(w);end

Tạo một whilevòng lặp vô hạn và mỗi lần qua vòng lặp, một webcamđối tượng được khởi tạo (bật webcam), tập lệnh bị tạm dừng trong 0,5 giây bằng cách sử dụng pausevà sau đó webcamđối tượng bị xóa (tắt webcam).

nhập mô tả hình ảnh ở đây


2
Độ trễ giữa mỗi lần chớp mắt là hơn 0,5
haykam

2
@haykam Các hướng dẫn (và nhận xét) chỉ ra rằng sự không chính xác do phần cứng có thể chấp nhận được trừ khi tôi đọc sai chúng.
Suever

Ok ... bạn có phiền khi có thể thêm một sân golf bổ sung để nó trông giống như 0,5 giây không?
haykam

4
@haykam Không thể, đó là một hạn chế của MATLAB (và có thể là chính phần cứng). Tôi đã cho thấy nó bị tắt và bật lại nhanh nhất có thể.
Suever

Tiếng bíp cuối cùng là tốt
haykam

7

Python, 82 byte

(Sử dụng OpenCV để truy cập webcam.)

import cv2,time
s=time.sleep
while 1:w=cv2.VideoCapture(0);s(.5);w.release();s(.5)

nhập mô tả hình ảnh ở đây


4

Javascript (ES6), 100 byte

(f=_=>navigator.getUserMedia({video:1},x=>s(_=>x.getTracks()[0].stop(s(f,500)),500),s=setTimeout))()

Trong quá trình thử nghiệm, tôi thấy độ trễ giữa camera được kích hoạt và đèn LED bật, vì vậy thời gian có thể không hoàn hảo. Nó cũng phải chạy trên trang https: //.


@haykam cảm ơn bạn đã chỉnh sửa, nhưng vì một số lý do, tập lệnh này không hoạt động bên trong hộp cát iframe đoạn trích
nderscore

Được rồi Tôi sẽ không bắt đầu một cuộc chiến chỉnh sửa. ;)
haykam

0

Cào trong Scratchblocks2, 61 byte

when gf clicked
turn video[on v
wait(.5)secs
turn video[off v

Xin lỗi về video hoàn toàn khủng khiếp. Đèn LED của tôi có độ trễ bật tắt nhẹ, nó rất mờ và GIF là 18 MB.

gif


@JonathanFrech Tôi đã xem qua một số câu trả lời của Scratch và tất cả chúng dường như đều sử dụng Scratchblocks2. Thứ hai, tôi đã làm những gì thách thức cần thiết?
WK

"Vui lòng bao gồm GIF hoặc video về webcam nhấp nháy, nếu có thể. Nếu câu trả lời không có GIF, vui lòng thêm GIF của chương trình đang chạy." Tôi bao gồm mọi thứ khác trên nó.
WK

Bạn đúng rồi. Tôi hiếm khi thấy câu trả lời Scratch nhưng có vẻ như câu trả lời của bạn đáp ứng cả quy tắc đồng thuận về số lượng byte hiện tại và quy tắc dành riêng cho thử thách. Xin lỗi vì sự phê phán một phần của tôi.
Jonathan Frech
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.