একটি একক পিক্সেল একটি বৃত্তাকার পথে চলমান


45

এটি একটি গ্রাফিকাল আউটপুট চ্যালেঞ্জ যেখানে ভাষায় প্রতি সংক্ষিপ্ততম কোড দেওয়া কাজটি ।

কার্য

আপনার কোডটি একটি একক বেগুনি পিক্সেল (হেক্স মান # 800080 বা আরজিবি (128, 0, 128)) প্লট করবে, ঘড়ির কাঁটার দিকটি একটি বৃত্তের চারদিকে ঘোরে। বৃত্তাকার চারপাশে পূর্ণ ভ্রমণ করতে ঠিক 60 সেকেন্ড সময় লাগবে এবং অনির্দিষ্টকালের জন্য চালিয়ে যাওয়া উচিত। পিক্সেল ছাড়া স্ক্রিন বা উইন্ডোতে আর কিছুই দেখাতে হবে না। বৃত্তের প্রস্থ 0.75 (যথাযথভাবে গোলাকার) হওয়া উচিত স্ক্রিন বা উইন্ডোর প্রস্থ এবং পটভূমিটি সাদা হওয়া উচিত। নিরীহ সমাধানগুলি প্রতিরোধ করতে, স্ক্রিন বা উইন্ডোটি কমপক্ষে 100 পিক্সেল প্রশস্ত হওয়া উচিত।

আপনার কোডটি একটি সম্পূর্ণ প্রোগ্রাম হওয়া উচিত ।

ভাষা ও গ্রন্থাগার

আপনি যে কোনও ভাষা বা লাইব্রেরি পছন্দ করতে পারেন। তবে আমি আপনার কোডটি যদি সম্ভব হয় তা পরীক্ষা করতে সক্ষম হতে চাই তাই আপনি যদি উবুন্টুতে এটি কীভাবে চালাবেন তার জন্য পরিষ্কার নির্দেশনা সরবরাহ করতে পারেন যা খুব প্রশংসিত হবে।

শীর্ষ বিশটি ভাষা অনুপস্থিত। সাহায্য প্রয়োজন.

নিম্নলিখিত শীর্ষ বিশটি প্রোগ্রামিং ভাষা বর্তমানে কোনও সমাধান মিস করছে।

  • সি , সি ++ সি # , পাইথন , পিএইচপি , ভিসুয়াল বেসিক .NET , পার্ল, ডেল্ফী / অবজেক্ট পাস্কাল, পরিষদের , উদ্দেশ্য সি , সুইফট, পাস্কাল, মতলব / অষ্টক , পিএল / এসকিউএল, OpenEdge ABL, আর

তালিকা

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


1
বৃত্তটি কোন ব্যাসার্ধ হওয়া উচিত?
তীমথিয় গ্রুটে

19
পিক্সেল বেগুনি হতে হবে কেন? আমি ধরে নেব টিআই-বেসিকের মতো কিছু ভাষার রঙের ক্ষমতা নেই, যার অর্থ তারা চ্যালেঞ্জের জন্য সুন্দর অভ্যাসের কারণে ব্যবহার করা যাবে না
ফ্যাটালাইজ

1
@ ফ্যাটালাইজ করার অর্থ এই নয় যে আপনি বাইটগুলি সংরক্ষণ করার জন্য কিছু চতুর সৃজনশীল উপায়ে প্রোগ্রামটিতে রঙটি গল্ফ করতে পারবেন না।
তীমথিয় গ্রুটে

3
টিমোথিগ্রুট টিআই-বেসিকের মূলত কেবলমাত্র একটি রঙ: কালো। অন্য সব কিছুই একটি অফ পিক্সেল। সি (এসই) ক্যালকুলেটর রয়েছে যেগুলির রঙ রয়েছে তবে প্রত্যেকেরই এক থাকে না।
কনর ও'ব্রায়েন

10
আমি নিশ্চিত যে আপনার স্ক্রিনের উপরে একটি বেগুনি সেলোফেন স্থাপন করা আপনার কোডের আকার বাইটে যুক্ত করে না। আমি বোঝাতে চাইছি এটি ভেক্টরেক্সে কাজ করেছে;)
তীমথিয়

উত্তর:


23

প্রসেসিং , 101 97 96 বাইট

4 বাইট ফ্ল্যাম্বিনো ধন্যবাদ।

ক্রিটিকি লিথোসকে 1 বাইট ধন্যবাদ।

float d;void draw(){background(-1);stroke(#800080);d+=PI/1800;point(50+cos(d)*38,50+sin(d)*38);}

এটি প্রয়োজনীয় অ্যানিমেশন সহ একটি 100 ডিফল্ট 100 পিক্সেল উইন্ডো তৈরি করে।

আউটপুট উইন্ডো

দাবি অস্বীকার: সেই চিত্রটি কোনও জিআইএফ নয়। এক মিনিটের জন্য এদিকে তাকাবেন না।


2
এটি কি 60 সেকেন্ডের নিয়মটি প্রয়োগ করে?

2
@ লাম্বিক হ্যাঁ ডিফল্ট ফ্রেমরেট 60 fps , এবং আমি π/1800একবারে কোণ রেডিয়েনগুলি বাড়িয়ে দিচ্ছি । (এটি π/3600আমার মস্তিষ্কের
উচ্ছ্বাসের

5
@ পিটু 1998 পাই
ক্রাঙ্কার

2
পছন্দ করুন
টিম

17
আরে, আপনার জিআইএফ কাজ করছে না, আমি এক মিনিটের জন্য এটার দিকে তাকিয়েছিলাম কিন্তু কিছুই ঘটেনি
বিটা ডেকে

16

কিউবি 64, 79 বাইট

কিউবি 64 একটি কিউবাসিক এমুলেটর যা কিছু দুর্দান্ত বৈশিষ্ট্য যুক্ত করে। এই প্রোগ্রামটি এমন একটি ( CLS,15) ব্যবহার করে যা ভ্যানিলা কিউবাসিক দ্বারা সমর্থিত নয়।

SCREEN 7
DO
T=TIMER/9.55
PSET(COS(T)*75+99,SIN(T)*75+99),5
PLAY"c8"
CLS,15
LOOP

এটা খুব জোরে। এটি PLAYকমান্ডটি স্ক্রিন সাফ করার আগে অল্প সময়ের জন্য স্থগিতকরণ বন্ধ করতে ব্যবহার করে ; অন্যথায় পিক্সেল ঝলকানি এবং অদৃশ্য হয়ে যাবে।

কিউবি 64 ডাউনলোড করুন, এই ফাইলটি লোড করুন, ক্লিক করুন Runএবং তারপরে Start

এখানে এটি কার্যকর হয়:

কার্যক্রম

আমি @ ডিএলসকের উত্তর থেকে কিছু কৌশল ( SCREEN 7পরিবর্তে SCREEN 13এবং এর PSETপরিবর্তে POKE) নিয়েছি, সুতরাং ক্রেডিট দেওয়ার কারণে। তাঁর উত্তরে যেমন আমার ম্যাজেন্টাটি হ'ল #8B008Bওপেন এটি গ্রহণযোগ্য বলে মনে করেছিলেন।

(ধ্রুবকটি 9.55একটি প্রায় অনুমান 30/π = 9.54929658551। এটি কি যথেষ্ট কাছাকাছি?)


হা! PLAYবিলম্বের জন্য কখনও ব্যবহার করার কথা ভাবেননি । শপথ করতে পারলাম বিশ্রামের জন্য একটি কোড ছিল তবে আমি এখন এটি সাহায্যের ফাইলটিতে দেখছি না। আমি TIMERপ্যারামিটার হিসাবে (এর একটি ফাংশন) ব্যবহার বিবেচনা করেছি , তবে এটির চেয়ে কম এটি দেখার চেষ্টা করিনি। যশ!
DLosc

4
ধন্যবাদ! আমি নির্লজ্জভাবে PSETআপনার কাছ থেকে তুলেছি, তাই কুডোস ফিরে :) মনে হচ্ছে একটি বিশ্রামের n0চেয়ে দীর্ঘ যা দীর্ঘ c। এছাড়াও, আমি এটি নিয়ম-নমন কিছুটা হিসাবে পছন্দ করি: ওপি জানায় যে উইন্ডোতে আর কিছুই দেখা যায় না, তবে কখনও বলেনি যে আমার প্রোগ্রামটি উচ্চস্বরে সেরাভাবে সেরা BEEP BEEP BEEP যেতে পারে না ।
লিন

1
আমার কাছে বীপগুলির বিপরীতে কিছুই নেই তবে আমি লিনাক্সে চেষ্টা করার সময় আসলে একটি পিক্সেল একটি বৃত্তের চারদিকে ঘোরাতে দেখতে পাচ্ছি না।

1
এখানে এটি আমার মেশিনে কার্যকর রয়েছে, যা যথেষ্ট প্রমাণ হওয়া উচিত।
লিন

12
আমি একটু অপেক্ষা করার জন্য ছবিটি এ stared, কারণ আপনি বলেন, "এখানে এটা হয় কর্ম "।
mbomb007

14

জাভা, 449 443 439 বাইট

কারণ আমি সবসময় বোকা ধারণা ছিল। জাভাতে গল্ফ করার মতো;)।

import java.awt.*;import javax.swing.*;class F extends JFrame{F()throws Exception{setContentPane(new P());setSize(400,400);setVisible(0<1);for(;;Thread.sleep(100))repaint();}class P extends JPanel{double c;public void paintComponent(Graphics g){g.setColor(new Color(8388736));c=(c-0.1)%60;double t=0.104*c;g.fillRect((int)(180+Math.sin(t)*120),(int)(180+Math.cos(t)*120),1,1);}}public static void main(String[]x)throws Exception{new F();}}

সম্পাদনা: 7 বাইট গল্ফ করার জন্য YPnypn এর জন্য ধন্যবাদ!

সম্পাদনা 2: 3 ফ্রেট বাঁচানোর জন্য @ ফ্র্যাঞ্জ ডি এর জন্য ধন্যবাদ!


7
জাভা এখন পর্যন্ত সবচেয়ে দীর্ঘতম কোড প্রতিযোগিতা জিতেছে :)

1
- আপনাকে সদস্য ভেরিয়েবলগুলি শূন্যে আরম্ভ করার দরকার নেই, সুতরাং আপনি "সি = 0" কে "সি" তে রূপান্তর করে দুটি বাইট (~ 0.45%) সঞ্চয় করতে পারবেন।
ফ্রানজ ডি

1
এবং আপনি হেক্সে রঙের সূচনা করে আরও একটি বাইট সংরক্ষণ করতে পারেন, অর্থাত নতুন রঙ (0x800080)।
ফ্রেঞ্জ ডি।

1
@FranzD। আরও ভাল - কেবল দশমিক সংখ্যাটি ব্যবহার করুন 8388736
Ypnypn

1
পরিত্রাণ পান JFrame, ব্যবহার করুন Frame, জাভ্যাক্স আমদানি সরানোর অনুমতি দেয় allows
ম্যাজিক অক্টোপাস আরন

14

গণিত, 101 101 94 বাইট

Animate[Graphics[{White,Disk[],{Purple,Point[{0,1}]}}~Rotate~-t],{t,0,2π},DefaultDuration->60]

গোপন করা একটি সাদা বৃত্ত তৈরি করে এবং 0 থেকে 2π পর্যন্ত এর প্রান্তটি অনুসরণ করে এমন একটি বিন্দু রাখে π গণিতের DefaultDurationবিকল্পটি আমাকে প্রতি 60 সেকেন্ডে একটি লুপটি সম্পূর্ণ করতে সেট করে দিন।

আউটপুটটির একটি স্পিড আপ সংস্করণ এখানে:

সম্পাদনা: 2 টি অক্ষর সংরক্ষণ Circleকরতে পরিবর্তন করুন, এটি ঘড়ির কাঁটার দিকে সরানোর জন্য Diskএকটি নেতিবাচক চিহ্ন যুক্ত করেছে t

সম্পাদনা: ~অপারেটরটি ব্যবহার করে 7 বাইট সংরক্ষণ করা হয়েছে (মরিসকে ধন্যবাদ)


14
আরও প্রমাণ যে ম্যাথমেটিকা ​​হ'ল একটি প্রোগ্রামিং ভাষা যেখানে আপনি কিছু অস্পষ্ট ইংরেজি শব্দ লিখেন যা আপনার পছন্দ অনুযায়ী কি বোঝায়, তারপরে বিরামচিহ্ন যুক্ত করুন। (আমি শুনেছি আপনি এর a~f~bপরিবর্তে ব্যবহার করতে পারেন f[a,b], এটি Rotateকী আপনার ছোট করে দেবে না ?)
লিন

1
আপনি এর জন্য উপসর্গ স্বরলিপিটিও ব্যবহার করতে পারেন Point@{0,1}এবং আমার মনে হয় না আপনার চারপাশের তালিকাটি দরকার Purple,Point...
মার্টিন ইন্ডার

1
@Mauris। প্রশিক্ষণহীন চোখের কাছে ম্যাথমেটিকাকে প্রকৃতপক্ষে অস্পষ্ট ইংরেজি শব্দ এবং বিরামচিহ্নের মতো দেখাতে পারে। বাস্তবে, এগুলি নির্দিষ্ট, সু-সংজ্ঞায়িত ফাংশন, সেটিংস এবং অপারেটরগুলির নাম। কোনও নন-প্রোগ্রামার কার্যক্ষম কোডটি স্পিন করতে পারে এমন সম্ভাবনা হ'ল জিলচ।
ডেভিডসি

3
@ ডেভিড: হাহা অবশ্যই আমি সচেতন - আমি স্রেফ ঠাট্টা করছিলাম :)
লিন

@ মরিস, তুমি আমাকে বোকা বানিয়েছ!
ডেভিডসি

14

এইচটিএমএল, 235 290 295 354 347 বাইট

<a><style>*{position:absolute;margin:0;box-sizing:border-box}body{height:100vh;width:100vh}a{left:12.5%;top:50%;width:75%;height:1px;border-left:1px solid purple;animation:r 60s infinite linear}@keyframes r{100%{transform:rotate(360deg

একটি .htmlফাইল হিসাবে সংরক্ষণ করুন এবং একটি ব্রাউজারে খুলুন, এর জন্য ক্রোম বা ফায়ারফক্সের মতো বিক্রেতার উপসর্গের প্রয়োজন নেই। অথবা এই ধাঁধার চেষ্টা করুন ।


এটি একটি নতুন সংস্করণ যা আমার প্রথম প্রয়াসের চেয়ে ছোট, যা আমি একটি মিটিংয়ের 5 মিনিট আগে লিখেছিলাম। ক্যানভাসের নতুন আকারটি ভিউপোর্টের উচ্চতার উপর ভিত্তি করে একটি বর্গক্ষেত্র। এটি বেশ ভালভাবে কাজ করে এবং নির্দিষ্ট নির্দিষ্ট উচ্চতায় সীমাবদ্ধ নয়। আমি চ্যালেঞ্জের সেটিংস সম্পর্কে খুব নির্ভুল (এর পিতামাতার 75% আকার, বেগুনি এবং 1px)। অতএব আমার প্রয়োজন এবং নিম্নলিখিত বিধিগুলি বাতিল বা সরল করতে পারি না:

* { margin: 0; box-sizing:border-box; }
a { left: 12.5%; }

Ungolfed

এটি ক্লিন মার্কআপ সহ অদম্য সংস্করণ:

<!DOCTYPE html>
<html>

<head>
    <style>
        * {
            position: absolute;
        }

        body {
            margin: 0;
            height: 100vh;
            width: 100vh;
        }

        a {
            left: 12.5%;
            top: 50%;
            width: 75%;
            height: 1px;
            border-left: 1px solid purple;
            box-sizing: border-box;
            animation: r 60s infinite linear;
        }

        @keyframes r {
            100%{
                transform: rotate(360deg)
            }
        }
    </style>    
</head>
<body>
    <a></a>
</body>

সম্পাদনাগুলি

  • যোগ করা হয়েছে 7 বাইট । আমি ভেবেছিলাম কেউ খেয়াল করবে না, এটি অ্যানিমেশনটিতে একটি পূর্বনির্ধারিত সহজ ing ;) আমি এখনই সেট করে রেখেছি linear
  • সংরক্ষিত 59 বাইট পরিত্যাগ করে ব্রাউজার স্বয়ংক্রিয়ভাবে হ্যান্ডেল করা হবে সবকিছু ছুঁড়ে।
  • সংরক্ষিত 3 বাইট চিহ্ন সরিয়ে )}}টুথব্রাশ ধন্যবাদ ।
  • সংরক্ষিত 2 বাইট ব্যবহার করে 12%পরিবর্তে 12pxযা একই মান পিতা বা মাতা উপাদান আকার সংশ্লিষ্ট নয়।
  • সংরক্ষিত 55 বাইট বৃহদায়তন refactoring কারণে, এছাড়াও একাউন্টে মন্তব্য অনেক নেওয়া। সমস্ত অবদানের জন্য অনেক ধন্যবাদ।

1
আমি কেবল পোস্টটিতে মন্তব্য করতে চেয়েছিলাম, আমি একটি খাঁটি এইচটিএমএল / সিএসএস সমাধান দেখতে চাই (একটি জমা দেওয়ার জন্য)
ডাবানা

1
চলন্ত পিক্সেলের গতি ফিডাল ব্যবহার করা অত্যন্ত অসম। যখন পিক্সেলটি খুব বাম দিকে থাকে তখন এটি প্রায় থামে। কোন ধারণা কেন?

1
@ অন্তর্ভুক্তকারীর নাম :) আমি মনে করি অসম্পূর্ণ সংস্করণটি এখনই আপডেট করার প্রয়োজন।

5
আপনার বৈধতা নির্বিশেষে ক্ষুদ্রতম কোডিং কোডের জন্য যাওয়া উচিত। গল্ফ করার সময় গ্লোবাল নেমস্পেসকে দূষিত করার মতো বিষয়গুলি কোর্সের সমান।
জন ডিভোরাক

2
আপনি )}}শেষ থেকে ড্রপ করতে পারেন (সিএসএস পার্সার স্বয়ংক্রিয়ভাবে ব্লকগুলি শেষ করবে)
টুথব্রাশ

14

টিআই-বেসিক, 44 বাইট

টিআই -৪৪ + সিএসই / সিই ক্যালকুলেটরগুলির জন্য, যা কিছু সীমিত বেসিক রঙের গ্রাফিক্সকে সমর্থন করে।

AxesOff
ZSquare
While rand
Pt-Off(imag(Ans),real(Ans
7.5e^(-i6startTmr°
Pt-On(imag(Ans),real(Ans),13
End

এখানকার রঙটি ম্যাজেন্টা বা রঙ 13 (একটিও MAGENTAটোকেন ব্যবহার করতে পারে )।

আমি যখন পিক্সেল প্রদর্শিত হয় এবং কখন এটি আবার বন্ধ করা হয় তার মধ্যে সামান্য বিট (~ 15 এমএস) দের জন্য অসীম লুপ অবস্থার randপরিবর্তে ব্যবহার করি 1

এই প্রোগ্রামটি চালানোর আগে আপনার ক্যালকুলেটরটি রেডিয়ান মোডে সেট করুন; আমি এটি আকারে গণনা করি না কারণ এটি ডিফল্ট রাষ্ট্র। Ansপ্রোগ্রামের আগে 0 তে প্রবেশ করে 0 তে সেটও করুন ; এটিও ডিফল্ট।

এই প্রোগ্রামটি পরীক্ষা করার জন্য @ কোয়ার্তাটাকে ধন্যবাদ (আমার কাছে কোনও রঙের ক্যালকুলেটর নেই)।


নিষ্পাপ ধারণা: আপনি কি কিছুক্ষণের লুপটি ব্যবহার না করে প্রোগ্রামটি কল করতে পারেন এবং এটি আরও কম হবে?
লিন

@ মরিস এর সময় লুপটি 3 টোকেন, যখন একটি প্রোগ্রামের নামটি সাধারণত দীর্ঘ হয়
TheDoctor

1
@ মরিস দি ওয়েল লুপটি আসলে 4 বাইটের এবং এটি 3 এ পুনরাবৃত্তি করা সম্ভব, তবে 300 এরও কম কল করার পরে স্ট্যাকটি খুব দ্রুত শেষ হয়ে যায়।
lirtosiast

@ ল্যাম্বিক যেহেতু আপনি [ কোডগল্ফ.স্ট্যাকেক্সেঞ্জাওএ / এ / 20২২০৩ / 39328] এর সাথে ভাল আছেন তাই আমি এটিকে মসৃণ করে তুলব না।
515

13

জাভা, 339 308 289 287 বাইট

import java.awt.*;class F extends Frame{{setSize(200,200);show();}int c;public void paint(Graphics g){g.setColor(new Color(8388736));g.fillRect((int)(99+Math.sin(--c*.01)*75),(int)(99+Math.cos(c*.01)*75),1,1);for(int i=0;++i<62864;)paint();}public static void main(String[] x){new F();}}

@ পিটার লেনকেফিকে ধন্যবাদ, যার দুর্দান্ত সমাধানটি আমাকে শুরু করেছে এবং যার লুপটি আমি নির্লজ্জভাবে অনুলিপি করেছি!

মূল সঞ্চয়টি খাঁটি এডাব্লুটি-তে স্যুইচ করা এবং সরাসরি ফ্রেমে রেন্ডারিংয়ের কারণে হয়েছিল - জেপ্যানেলের (বা ক্যানভাস) প্রয়োজন নেই। আমি কাউন্টারটিকে একটি পূর্ণসংখ্যার ভেরিয়েবলও তৈরি করেছিলাম, সাধারণ বর্ধিতকরণ দ্বারা আপডেট করেছিলাম এবং এখানে এবং সেখানে একটি অঙ্ক ফেলাতে সক্ষম হওয়ার জন্য ধ্রুবকগুলিকে পাকানো কয়েকটি বাইট সংরক্ষণ করেছি।

সম্পাদনা: মন্তব্যগুলিতে তাদের পরামর্শের জন্য @ পিটার লেঙ্কেকেফি এবং @ টোবিআইকে ধন্যবাদ। এইচটিএমএলকে মারধর করা দুর্দান্ত হবে - কেউ ঘুম () ব্যবহার না করে এবং ব্যতিক্রমগুলি ধরা না দিয়ে কীভাবে নির্ভরযোগ্যভাবে জাভাতে কার্যকরভাবে থামানো যায় তা জানেন?

সম্পাদনা 2: জাভা বিটস এইচটিএমএল (বর্তমানে 290 বাইটে) তার পরামর্শের জন্য @ পিটারলেনকিফিকে আবারও ধন্যবাদ - আমার উত্তরটি তার অর্ধেকেরও বেশি :)

সম্পাদনা 3: @ অজয় ​​"পুনরায় রঙ" থেকে "পুনরায়" সরাতে পরামর্শ দিয়েছেন। দুই বাইট কম। আমরা সেখানে পাচ্ছি :)


1
আমাদের এটি এইচটিএমএল এর অধীনে পেতে হবে (সুতরাং এখনই <290)
পিটার লেনকিফি

1
@ পিটারলেনকিফি: দুর্ভাগ্যক্রমে, আমি অভিনেত্রীর ধনুর্বন্ধকে বাঁচাতে পারি না; sin / cos ফলাফল castালাই সরাসরি গণনাটি ভেঙে দেয়। পেইন্টের ভিতরে আপনার রঙ () অবিশ্বাস্যরূপে নোংরা :)
ফ্রেঞ্জ ডি

1
@ ট্রয়সেফ আমি গল্ফিংয়ের জন্য বোঝাতে চাইছিলাম;) আমি কোনও কিছুর জন্য জাভা ব্যবহার করি না।
পিটার লেনকিফি

1
ব্যবহার int c,iএবং বাদ intমধ্যে for(int i=..আরো কিছু সংরক্ষণ করা উচিত।
মার্কো 13

1
এমনকি আপনি এফ জন্য ক্লাস ঘোষণা প্রয়োজন হবে না, আপনি শুধু ফ্রেম বর্গ ইনলাইন প্রসারিত করতে পারেন: new Frame(){...}
ম্যাজিক অক্টোপাস উরন

9

হাস্কেল, 143 136 বাইট

এটি গ্লস প্যাকেজ ব্যবহার করে :

import Graphics.Gloss
main=animate(InWindow""(100,100)(0,0))white$ \t->color(makeColor 0.5 0 0.5 1).rotate(t*6).translate 38 0$circle 1

প্রিমটিয়ার সংস্করণটি

import Graphics.Gloss

purple :: Color
purple = makeColor 0.5 0.0 0.5 1.0

main :: IO ()
main = animate (InWindow "" (100,100) (0,0)) white $ \t ->
    color purple . rotate (t * 6) . translate 38 0 $ circle 1

আপনি কিছু সাদা জায়গা সরাতে পারেন।
রাইটফোল্ড

@ এলিস প্রকৃতপক্ষে, ধন্যবাদ। আমি দু'জন অপ্রয়োজনীয় অপসারণও করেছি .0
ফ্রেরিচ রাবাবে

8

এইচটিএমএল (সিএসএস?), 167 বাইট

সন্নিবেশকারীের নামের উত্তরে অনুপ্রাণিত

<style>body{position:fixed;left:50%;top:12%;width:1px;height:75vmin;border-top:1px solid #800080;animation:r 60s infinite linear}@keyframes r{to{transform:rotate(1turn

Ungolfed:

body {
    position: fixed;
    left: 50%;
    top: 12%;
    width: 1px;
    height: 75vmin;
    border-top: 1px solid #800080;
    animation: r 60s infinite linear;
}
@keyframes r {
    to {
        transform: rotate(1turn);
    }
}


কেবলমাত্র একটি এফওয়াইআই, HTML + CSSসাধারণত প্রোগ্রামিং ভাষা হিসাবে বিবেচিত হয় না, তবে এটি ওপি পর্যন্ত।
GamrCorps

1
এটি ফায়ারফক্স ৪১.০.২ তে কিছু করে না।
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1
ফায়ারফক্স ৪১.০.২, উইন 10-এ পরীক্ষা করা হয়েছে আমার জন্য কাজ করে।
লাচলান আর্থার

1
উবুন্টুতে 41.0.2 এ আমার জন্য কাজ করে।

1
+1 কেবল bodyনিজেকে অ্যানিমেটেড করার জন্য ভাল চিন্তাভাবনা । :)
সন্নিবেশকারী নাম 18

7

কিউবাসিক, 106

SCREEN 7
COLOR 5,15
DO
t=TIMER
CLS
PSET(99+99*COS(i),99+99*SIN(i))
i=i+ATN(1)/75
1IF TIMER<t+.1THEN 1
LOOP

কিউবি 64 তে পরীক্ষিত , যার মতে এটির লিনাক্স সংস্করণ রয়েছে (যদিও আমি এটি কেবল উইন্ডোজে চেষ্টা করেছি)।

  • SCREEN 7 গ্রাফিক্স মোড সেট করে।
  • COLOR 5,15 অগ্রণী রঙ হিসাবে গা color় ম্যাজেন্টা এবং পটভূমির রঙ হিসাবে উজ্জ্বল সাদা সেট করে।
  • DO ... LOOPএকটি অসীম লুপ। সাধারণত আপনি এটি দেখতে পাবেন DO WHILE ... LOOP(বা আপনি LOOP WHILEপরিবর্তে রাখতে পারেন , বা UNTILএকটি অবহেলিত শর্তের জন্য ব্যবহার করতে পারেন), তবে আপনি শর্তটিও বাইরে রাখতে পারেন, সেক্ষেত্রে এটি চিরকাল স্থায়ী হয়।
  • TIMER ভাসমান-পয়েন্টের মান হিসাবে মধ্যরাত থেকে সেকেন্ডের সংখ্যা।
  • CLS = ক্লিয়ার স্ক্রিন।
  • PSET ডিফল্টরূপে একটি রঙের একটি বিন্দুতে, অগ্রভাগের রঙকে সেট করে।
  • iশূন্য থেকে শুরু হয় এবং লুপের মাধ্যমে প্রতিবার পাই / 300 দ্বারা গণনা করা হয়, সুতরাং 600 পুনরাবৃত্তির পরে একটি সম্পূর্ণ বৃত্ত সম্পূর্ণ করে। আমরা পাই 4 * আর্টিকান (1) হিসাবে গণনা করি।
  • শেষ লাইনটি 0.1 সেকেন্ড বিঘ্ন না হওয়া পর্যন্ত অপেক্ষা করে। আমার কিউব্যাসিক বইগুলি থেকে আমি যে প্রতিমাটি শিখেছি তা হ'ল t# = TIMER: WHILE TIMER < t# + 0.1: WEND। তবে আমাদের #0.1-সেকেন্ডের পার্থক্যের জন্য ডাবল-স্পষ্টতা সংখ্যার (এর সাথে চিহ্নিত ) প্রয়োজন নেই এবং দেখা যাচ্ছে যে IF cond THEN [GOTO] lineসিনট্যাক্সটি একটি WHILE ... WENDলুপের চেয়ে 1 অক্ষর সংক্ষিপ্ত ।

লুপটি 60 সেকেন্ডে 600 বার পুনরাবৃত্তি করে, এটি একটি সম্পূর্ণ বৃত্ত সমাপ্ত করে।

আদেশ সহকারে

  • বর্ণ 5, অন্ধকার ম্যাজেন্টা, #8B008Bঅনুরোধের পরিবর্তে #800080(ওপি দিয়ে সাফ)।
  • স্ক্রিন মোড 7টি 320x200, এবং তাই বৃত্তটির ব্যাস 198 রয়েছে, যা প্রস্থের> = 0.75 নয় তবে উচ্চতাটির = = 0.75 (ওপি দিয়েও সাফ করা হয়েছে)।
  • আপনি যদি এটি ডস কিউব্যাসিকটিতে চালান তবে এটি সম্পূর্ণ স্ক্রিন, সুতরাং "পিক্সেল" মনিটরে আসলে কোনও একক পিক্সেল নয় (যদি আপনার কাছে 320x200 মনিটর না ঘটে)। তবে এটি যথেষ্ট কাছাকাছি হওয়া উচিত। কিউবি 64 একটি উইন্ডোতে চালিত যা সঠিক মাত্রা ব্যবহার করে এবং এইভাবে পিক্সেলটি একটি আক্ষরিক পিক্সেল।
  • কমপক্ষে QB64 এ, সম্পূর্ণ বিপ্লব করতে 65 সেকেন্ডের মতো বেশি লাগে takes আমি সত্যিই জানি না কেন; এটি অবশ্যই গোলাকার ত্রুটি বা লুপের ওভারহেড হতে হবে, যদিও আমি উভয়ই সাফল্য ছাড়াই প্রশমিত করার চেষ্টা করেছি। তত্ত্বগতভাবে, কোডটি ঠিক তেমনভাবে কাজ করা উচিত। অনুশীলনে, একজন iবিপ্লব 60০ সেকেন্ডের কাছাকাছি না আসা পর্যন্ত যে পরিমাণ দ্বারা বাড়ানো হয় সেটিকে কেউ টুইট করতে পারেন । (69 বা 68 এর ডোনমিনেটর ব্যবহার করে দেখুন)
  • এখানে সুন্দর কোনও ছবি নেই। :( একক পিক্সেল নির্ভুলভাবে ক্যাপচারের জন্য লিসেক্যাপের গুণমান এতটা ভাল ছিল না।

এই কোডটি লিনাক্সে আমার জন্য পুরোপুরি কাজ করে। ধন্যবাদ.

এটি আসলে কিউবিসিক 4.5 তে চলে, তবে ব্যাকগ্রাউন্ডটি সত্যিই সাদা নয় :)। এখানে এটির একটি জিআইএফ সংকলন এবং চলমান রয়েছে: codegolf.square7.ch/altqb.gif
mınxomaτ

@ mınxomaτ অদ্ভুত, রঙ 15 এর দ্বারা সাদা বা হালকা ধূসর রঙ দেওয়া উচিত যা আমি ভেবেছিলাম আমি জানতাম ... এটি হালকা সায়ানের মতো দেখায় (রঙ 11)। SCREEN 8পরিবর্তে কি করতে হবে 7?
DLosc

একই সবুজ পটভূমি। তবে আপনি ঠিক বলেছেন, অনুমান অনুসারে এটি সাদা হওয়া উচিত। আমি রঙ 7 (ধূসর )ও চেষ্টা করেছি এবং এটি ধূসর হিসাবে বেরিয়ে এসেছে। সুতরাং আপনার সমাধানটি একদম ঠিক আছে তবে আমার ডসের সাথে কিছু ভুল আছে।
mınxomaτ

7

এমআইআরসি স্ক্রিপ্ট, 184 বাইট

alias g {
window -p @m -1 -1 100 128
f
}
alias f {
inc %s 1
set %o $calc(%s *38/360)
clear @m
drawdot -r @m $rgb(128,0,128) 1 $calc($cos(%o)*38+50) $calc($sin(%o)*38+52)
.timer 1 1 f
}

এটি ওয়াইনের এমআইআরসি-র জন্য অনুকূলিত। এমআইআরসি শুরু করুন, টিপুন এবং Alt + Rতারপরে এটি আটকান, সম্পাদকটি বন্ধ করুন এবং এটি দিয়ে চালান/g

পূর্বরূপ

জিআইফের সময় বন্ধ হতে পারে।


এটি আমার একটি নতুন এক! এটির জন্য যদি আপনি এটির একটি অ্যানিমেটেড জিআইএফ তৈরি করতে পারেন তবে দুর্দান্ত হবে।

এটি কোড / ভাষা সম্পর্কে আগ্রহী হয়ে উঠেছে এমন প্রথম ভাষাগুলির মধ্যে একটি ছিল!
ভ্যারিস

6

আর, 170 বাইট

library(animation);for(i in 1:60){par(mar=rep(0,4));plot.new();t=2*pi*(1-i)/60;points(3*cos(t)/8+.5,3*sin(t)/8+.5,pch=19,col="#800080");ani.record()};repeat{ani.replay()}

এটি প্যাকেজের উপর নির্ভর করে animation। এটি এখানে কাজ করে দেখানোর জন্য একটি জিআইএফ:

একটি উইন্ডোতে

একটি জিআইএফ (139 বাইট) -এ অবৈধ সমাধান সংরক্ষণ:

animation::saveGIF({for(i in 1:60){par(mar=rep(0,4));plot.new();t=2*pi*(1-i)/60;points(3*cos(t)/8+.5,3*sin(t)/8+.5,pch=19,col="#800080")}})

এটির জন্য ইমেজম্যাগিক ইনস্টল করা দরকার। ফলাফলটি একটি জিআইএফ-এ সংরক্ষণ করা হয়।

! [গোল-গোল হয়ে যায়)


এটি তবে দুর্দান্ত ... চ্যালেঞ্জটির পর্দা / উইন্ডোতে লেখার কোড দরকার।

ওহ আমি তা বুঝতে পারি নি।
প্ল্যানাপাস

2
এটি এখানে একটি উইন্ডোতে।
প্ল্যানাপাস

6

জুতো সহ রুবি, 159 বাইট

Shoes.app{animate{background stroke white
fill purple
r=0.75*c=self.width/2
t=Time.now
m=Math
rect c+r*m.sin(a=(t.sec+t.usec*1e-6)*m::PI/30),c-r*m.cos(a),2,2}}

পিক্সেলটি আসলে অ্যানালগ ঘড়ির সেকেন্ডের হাতের ডগা। সুতরাং এই এক সম্পূর্ণ নির্ভুল।

জুতো সহ রুবি, 134 বাইট

m=Math
Shoes.app{animate{|f|r=0.75*c=self.width/2
background stroke white
fill purple
rect c+r*m.sin(a=f*m::PI/360),c-r*m.cos(a),2,2}}

এটি অন্যান্য ফ্রেমের প্রতি অনুপ্রেরণা সহ প্রতি সেকেন্ডের ফ্রেম-প্রতি সেকেন্ড। যদিও ডকুমেন্টেশন বলছে ডিফল্ট fps 10, ব্যবহারিক পরীক্ষাগুলি দেখায় যে এটি আসলে 12 টি।

উভয় সমাধানটি গ্রহণ করে "বৃত্তের প্রস্থটি 0.75 (উপযুক্তভাবে স্ক্রিন বা উইন্ডোর প্রস্থের হওয়া উচিত)" আক্ষরিকভাবে: উইন্ডোর প্রস্থের উপর ভিত্তি করে গণনা করুন, যাতে পিক্সেলটি মাঝে মাঝে একটি স্কোয়ারবিহীন উইন্ডোটির নীচে ছেড়ে যেতে পারে। কীভাবে এই ধরনের মামলা পরিচালিত হবে আশা করা যায় না। (সর্বনিম্ন প্রস্থ এবং উচ্চতা ব্যবহার করবেন? ডিম্বাকৃতির পথে চলুন?) উইন্ডোটি ডিফল্ট 600 x 500 আকার দিয়ে শুরু হয় এবং এটি পুনরায় আকার পরিবর্তনযোগ্য।


একটি রুবি সমাধান দেখে খুব খুশি! এখন আমাদের পাইথন, পার্ল, ....

5

ডি, 286 280 বাইট

(392 সাধারণভাবে লেখা থাকলে)

import simpledisplay,std.math;void main(){auto w=new SimpleWindow(100,100);auto c=50;auto r=c*2/3;int t;auto y=600/PI;w.eventLoop(50,{auto p=w.draw();p.clear;p.outlineColor=Color(128,0,128);p.drawPixel(Point(c+cast(int)(r*cos(t/y)),c+cast(int)(r*sin(t/y))));if(++t==1200)t=0;});}

বা গল্ফ না করে আমি যেভাবে এটি লিখেছিলাম:

import simpledisplay, std.math;

void main() {
        auto window = new SimpleWindow(100, 100);
        auto c = window.width/2;
        auto r = c*2/3;
        int t;
        float cycle = 20*60/(PI*2);
        window.eventLoop(50, {
                auto p = window.draw();
                p.clear;
                p.outlineColor = Color(128, 0, 128);
                p.drawPixel(Point(c + cast(int) (r*cos(t/cycle)), c + cast(int) (r*sin(t/cycle))));
                if(++t == 20*60)
                        t = 0;
        });
}

সরলপ্লে.ড এবং রঙ.ডের উপর নির্ভর করে এখানে অবস্থিত: https://github.com/adamdruppe/arsd

এই দুটি পৃথক ফাইল ডাউনলোড করুন এবং সেগুলি উপরের কোডের মতো আপনার একই ডিরেক্টরিতে রেখে দিন: dmd yourfile.d simpledisplay.d color.dসংকলন করতে এবং তারপরে কেবল এটি চালানো run

আমার ছোট্ট লাইব্রেরিটি এই জাতীয় মোটামুটি সহজরূপে দ্রুত অ্যানিমেশনগুলি তৈরি করার জন্য রচিত হয়েছিল যাতে এটি এর শক্তিতে ভাল অভিনয় করে! হায়, আমি দীর্ঘ শনাক্তকারী নাম পছন্দ করি এবং এমন কোনও Pointকনস্ট্রাক্টর সরবরাহ করি নি যা লাগে floatযাতে 18 বাইট কাস্টিং যোগ হয় এবং .... আমার পদ্ধতির নামগুলি লিখে কয়েক ডজন বর্ননা দেয়।


1
ইভেন্টলুপ বিটিডব্লিউর প্রথম যুক্তিটি মিলিসেকেন্ড টাইমার। যদি এটি শূন্য-না হয়, এটি স্বয়ংক্রিয়ভাবে আপনার জন্য একটি টাইমার তৈরি করে এবং সেই বিরতিতে প্রদত্ত শূন্য আর্গগুলি সহ ফাংশনটিকে কল করে। (ইভেন্টলুপ ব্যবহারকারীর ইনপুট হ্যান্ডেল করতে মাউসএভেন্ট বা কীইভেন্ট আরগগুলির সাথেও ফাংশন নিতে পারে)। সুতরাং 50 মিলিসেকেন্ড ব্যবধান = 20 সেকেন্ডে প্রতি ফ্রেম, সুতরাং 20 * 60 = 60 সেকেন্ডে চক্র।
অ্যাডাম ডি রুপ্পে

আমার মনে হয় আপনি যেভাবে উত্তরটি লিখেছেন তাতে লিডারবোর্ড কোডটি 280 এর পরিবর্তে 392

5

সি #, 379 365 বাইট

using System.Windows.Forms;using static System.Math;class P:Form{static void Main(){var f=new P();var p=new PictureBox();f.SetBounds(0,0,1000,1000);f.Controls.Add(p);f.Show();for(var i=0d;;i+=PI/3000){p.SetBounds((int)(Cos(i)*375+500),(int)(Sin(i)*375+500),1,1);p.CreateGraphics().Clear(System.Drawing.Color.FromArgb(-8388480));System.Threading.Thread.Sleep(10);}}}

চালায় System.Windows.Formsএবং উপর নির্ভর করে System.Drawing। আউটপুটটি 1000x1000 উইন্ডোতে রয়েছে।


কিছু বাইট ব্যবহার করে সংরক্ষণ করতে পারেvar
গোলাপিফ্লয়েডএক্স 33

সিস্টেম গণিতে স্ট্যাটিক আমদানি ব্যবহার করে অন্য একটি বাইট সংরক্ষণ করুন
গোলাপফ্লোয়েডএক্স 33

আপনি সিস্টেমের নামস্থানে আপনার কোডটি ঘোষণা করতে পারেন এবং সিস্টেমের অন্যান্য সমস্ত উল্লেখ মুছে ফেলতে পারেন এবং আমার মনে হয় 10 বাইটগুলি সংরক্ষণ করুন
ফেজ

5

এসভিজি, 177 বাইট

<svg><g transform=translate(75,75)><circle id=x r=.5 cx=56 fill=#800080><animateTransform xlink:href=#x attributeName=transform type=rotate to=360 dur=60s repeatCount=indefinite

নরক থেকে প্রাতঃরাশে অবৈধ মার্কআপ, তবে এটি চলে (কমপক্ষে ক্রোমে)। এইচটিএমএল 5 ক্যানভাসের মতো, এসভিজির জন্য ডিফল্ট আকার 300x150 বলে মনে হয়, সুতরাং এটিই ধরে নিচ্ছে।

সম্পাদনা: ওফস, আমি ঘটনাক্রমে 60 এর পরিবর্তে 6 এর সময়কালে ছেড়ে চলে এসেছি that এটি স্থির হয়েছে, তবে এটিও খুঁজে পেয়েছে যে 0.5ঠিক কাজ করে .5, তাই বাইট গণনায় কোনও পরিবর্তন হয়নি।


5

এক্স 86 মেশিন-কোড - 150 146 149 133 127 বাইট

গল্ফ সংস্করণ:

        00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
        --------------------------------------------------------------------
0000    B0 13 CD 10 BA C9 03 88 F1 BE 76 01 F3 6E B0 0F - °.Í.ºÉ.ˆñ¾v.ón°.
0010    49 68 00 A0 07 F3 AA 64 66 A1 6C 04 66 A3 80 01 - Ih. .óªdf¡l.f£€.
0020    64 66 A1 6C 04 66 2B 06 80 01 66 50 89 E5 D9 EB - df¡l.f+.€.fP‰åÙë
0030    D8 C0 DA 4E 00 DE 34 D9 FB BB 7D 01 DE 0F DE 47 - ØÀÚN.Þ4Ùû»}.Þ.ÞG
0040    FE DF 5E 02 DE 0F DE 47 FE DF 5E 00 5F 69 FF 40 - þß^.Þ.ÞGþß^._iÿ@
0050    01 58 01 C7 BB 88 01 8B 0F 39 CF 74 C3 30 C0 AA - .X.Ç»ˆ.‹.9ÏtÃ0Àª
0060    4F 89 3F 89 CF B0 0F AA 31 C0 FE C4 CD 16 74 B0 - O‰?‰Ï°.ª1ÀþÄÍ.t°
0070    B8 03 00 CD 10 C3 20 00 20 44 04 64 00 4B 00    - ¸..Í.Ã . D.d.K.

'অবহেলিত', উত্স সংস্করণ:

; golfCrcl.asm
;
; - 16 bit implementation of an animated pixel that circumscribes a circle.
; - 127 bytes .COM file
;
;   - enhzflep -
;   31 Oct 2015 - initial
;               - set closest colour to desired #800080
;    2/3 Nov 2015 - removed unnecessary instuctions, used BX register to index mem by fpu
;               - removed .data section alignment, better register use in curPixel/lastPixel compares and calcs, reusing value of si after palette setting
[section .text]
[bits 16]
[org 0x100]
EntryPoint:
;   mov     fs, bx          ; bx is 0 on entry. Set fs seg register to this

    ; set graphics mode 320x200
    mov     al, 0x13
    int     0x10

    ; set colour #0 to be as close to the desired one as possible
    ; the vga palette registers are 6 bits by default (some models allow switching to 8 bits)
    ; therefore, we cant represent all of the 16.7m colours that we can in 24bit modes
    ; we're limited to 'just' 64*64*64 = 262,144 (256k) colours. Unfortunately, #800080 is not
    ; a colour we can represent exactly in mode13 or any other mode with 6 bit regs.
    mov     dx, 0x3c9
    mov     cl, dh
    mov     si, desiredCol
    rep     outsb                           ; cx now=0 and si now points to totalTicksNeeded

    ; clear the screen to white
    mov     al, 0x0f                        ; index of a colour thats already FF,FF,FF
;   xor     cx, cx                          ; cx = 0 - its zeroed by the rep outsb instruction above.
    dec     cx                              ; cx = FFFF
    push    word 0xA000                     ; segment of video memory
    pop     es                              ; pop it into es
    rep     stosb                           ; es:[di] = 0F, inc di, dec cx. If cx != 0 then repeat.

    ; setup the timing stuff
    mov     eax, [fs:0x046C]                ; 32 bit value updated at 18.2Hz by bios
    mov     [initialTicks], eax

.drawLoop:
    mov     eax, [fs:0x046C]                ; 32 bit value updated at 18.2Hz by bios
    sub     eax, [initialTicks]             ; eax = curTime-startTime (in increments of 1/18.2 of a second --- 182 = 10 seconds)

    push    eax                             ; number of elapsed clock ticks - ready to be loaded by fpu. Also stack space for calc result
    mov     bp, sp                          ; get pointer to last element pushed onto the stack
    fldpi                                   ; st0 = pi
    fadd    st0                             ; st0 = 2pi
    fimul   long [bp]                       ; (currentTick/requiredTicks) * 2pi
;   fidiv   word [totalTicksNeeded]
    fidiv   word [si]                       ; si still points to totalTicksNeeded after setting the palette earlier
    fsincos                                 ; st0 = cos(old_st0), st1 = sin(old_st0)

    mov     bx, radius
    fimul   word [bx]                       ;   fimul word [radius] -  cos(angle)*radius
    fiadd   word [bx-2]                     ;   fiadd word [origin] -  origin + cos(angle)*radius
    fistp   word [bp+2]                     ; ---- X-coord -------

    fimul   word [bx]                       ;   fimul   word [radius]
    fiadd   word [bx-2]                     ;   fiadd   word [origin]
    fistp   word [bp+0]                     ;  ---- Y-coord -------

    ;---------------
    pop     di                              ; calculated Y-coord
    imul    di, 320                         ; multiply it by the screen width
    pop     ax                              ; calculated X-coord
    add     di, ax                          ; di = x + (pixels_per_row * y_coord)

    mov     bx, lastIndex
    mov     cx, [bx]                        ; get the mem index for the last pixel
    cmp     di, cx                          ; check if we're indexing the same pixel as last time through the loop
    je      .drawLoop                       ; if so, return to start of loop - no need to delete and redraw the pixel in the same spot.

    xor     al, al                          ; col index 0
    stosb                                   ; draw our purple pixel
    dec     di                              ; stosb advanced di to the next pixel, undo this (stosb followed by dec di is still shorter than mov es:[di], al)
    mov     [bx], di                        ; save the pixel's mem address
    mov     di, cx                          ; restore index of pixel drawn last time through the loop
    mov     al, 0x0f                        ; pal index of white
    stosb                                   ; erase the last pixel

    ; check for a keystroke
    xor     ax, ax
    inc     ah
    int     0x16
    jz      .drawLoop                           ; loop if no keys pressed

.drawingDone:
    ; set text mode 80x25
    mov     ax, 0x3
    int     0x10

    ; program exit
    ret                                     ; Dos pushes a 0000 onto the stack and copies CD 20 to offset 0 of our code-seg
                                            ; before it invokes our program. ret jumps back to that CD 20 (int 0x20) instruction

; Since this is a .COM file, all program, data and stack exist in the same segment. 
; Using .text and .data sections only improves program readability - doing so only has minor effects on the binary produced.
;
; In this case, the assembler word aligns anything in the data section. This may have the effect of adding a padding byte,
; which we really dont need/want here. Data is machine-word aligned to improve the speed of access for the hardware. Machine-word
; is used to refer to the size of an int. In the case of 16 bit code, this will generally be 16 bits, 32 bit code has 32 bit words
; and so on. This code is 16 bit, so things should be aligned to word boundaries for maximum execution speed
;
;[section .data]
desiredCol          db  0x80/4, 0x00, 0x80/4        ; palette registers are only 6 bit.
totalTicksNeeded    dw  1092
origin              dw  100
radius              dw  75

; ticks/second = 18.2
; totalTime = 60 seconds
; totalTicks = 1092 (18.2 * 60)
; degreesPerTick = 360 / 1092 = 0.3296703
; timerTicksAddr = 0040:006C (0000:046C) dword
[section .bss]
initialTicks    resd    1
lastTickValue   resd    1
lastIndex       resw    1

ডাউনলোডযোগ্য, বেস 64 এনকোডড সংস্করণ

data:application/octet-stream;base64,sBPNELrJA4jxvnYB826wD0loAKAH86pkZqFsBGajgAFkZqFsBGYrBoABZlCJ5dnr2MDaTgDeNNn7u30B3g/eR/7fXgLeD95H/t9eAF9p/0ABWAHHu4gBiw85z3TDMMCqT4k/ic+wD6oxwP7EzRZ0sLgDAM0QwyAAIEQEZABLAA==

আপনার ব্রাউজারে এই ঠিকানাটি অনুলিপি করুন এবং আটকান। ফলস্বরূপ ফাইলটির নাম পরিবর্তন করুন golfcrcl.comএবং ডস পরিবেশে চালিত করুন, যেমন ডসবক্স।


এটা অসাধারণ! পরীক্ষিত এবং পুরোপুরি কাজ করে।

1
ওহ স্ন্যাপ! ঠিক বুঝতে পেরেছি যে আপনি ব্যবহারের জন্য একটি রঙ নির্দিষ্ট করেছেন এবং আমি একে একে একে উপেক্ষা করেছি। : উফ: আমি কিছুক্ষণ পরে এটি ঠিক করব। রঙ সূচকটি 0x09 এর পরিবর্তে 0x5 সি হওয়া উচিত (ডসবক্স প্যালেটটি সঠিকভাবে সেট করে, অন্যথায়, আমি রঙ 1
পুনর্নির্মাণ

4

গণিত 208 185 139 বাইট

একটি চিত্র হিসাবে ব্যবহৃত অ্যারের চারপাশে একটি বেগুনি পিক্সেল সরায়।

পদ্ধতি 1 139 বাইট

n=900;Dynamic@Refresh[t=DateValue@"Second";ReplacePixelValue[Image@Array[1&,{n,n}],
400{Cos[z=Pi/30t],Sin@z}+450->Purple],UpdateInterval->1]

পদ্ধতি 2 154 বাইট

60 সেকেন্ডে একটি বৃত্তাকার পথ ধরে একটি পিক্সেল প্লট করে।

Dynamic@Refresh[t=DateValue@"Second";Graphics[{AbsolutePointSize@.01,Purple, 
Point[{Cos[z=Pi/30t],Sin@z}]},PlotRange->1,ImageSize->Full],UpdateInterval->1]

পদ্ধতি 3 193 বাইট

এটি সাদা রঙের টিক্স এবং লেবেল সহ একটি ঘড়ি আঁকবে, যার জন্য দ্বিতীয় হাতটি পিক্সেল।

Dynamic@Refresh[ClockGauge[AbsoluteTime[],TicksStyle->White, 
GaugeMarkers->{None,None,Graphics[{White,Disk[],Purple, 
AbsolutePointSize[.01],Point@{3,0}}]},PlotTheme->"Minimal"],UpdateInterval->1]

আমি দেখতে পাচ্ছি, বেসিক এলটিআর বিভ্রান্তি ... তবে যাইহোক, আপনি 30এবং এর মধ্যে স্থান সরাতে পারেন t
LegionMammal978

4

ওবজে-সি ++ / কোকো, 777 678 668 657 643 628 বাইট

#include <Cocoa/Cocoa.h>
float r;@implementation V:NSView-(void)drawRect:(NSRect)d{CGContext*c=(CGContext*)NSGraphicsContext.currentContext.graphicsPort;CGContextSetRGBFillColor(c,.5,0,.5,1);CGContextFillRect(c,(CGRect){cos(r)*38+50,sin(r-=pi/300)*38+50,1,1});[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(x)userInfo:0 repeats:0];}-(void)x{self.needsDisplay=1;}@end
int main(){NSRect b={0,0,100,100};NSWindow*w=[[NSWindow alloc]initWithContentRect:b styleMask:1 backing:2 defer:0];[w orderFront:0];w.backgroundColor=[NSColor whiteColor];w.contentView=[[V alloc]initWithFrame:b];[NSApp run];return 0;}

সুতরাং এটি সম্ভবত কিছুটা করার সবচেয়ে খারাপ উপায় তবে আমি অনুভব করেছি যে আমি চেষ্টা করব।

একটি ম্যাক (যেভাবেই আমার) তে সংকলন করা g++ -framework Cocoa file.mmযায় এবং টার্মিনাল থেকে চালানো যায় ( ctrl-Cছাড়ার জন্য, এটি কোনও অ্যাপ নয়)।

স্ক্রিনশট

সম্পাদনা: সংরক্ষিত 99 বাইট: main()ওএস এক্স 10.10 এ চালানোর জন্য স্থির (প্রথম সংস্করণটি কেবল 10.8 এ চলে), সরল ট্রিগার গণনার পক্ষে অনুবাদ / ঘোরানো এড়িয়ে যায়, উইন্ডো স্থাপন এবং অন্যান্য ছোট জিনিসগুলি নিয়ে বিরক্ত করা বন্ধ করে দেয়।

সম্পাদনা করুন: আরও 10 টি বাইট সংরক্ষণ করা হয়েছে: orderFrontউইন্ডোটি প্রদর্শন করতে কেবল পরিবর্তন করা হয়েছে । আসলে এটিকে সামনের উইন্ডোটি তৈরি করে না, তবে কোনওটিই করেনি orderFrontAndMakeKey, তাই ...

সম্পাদনা করুন: অন্য 11 টি বাইট সংরক্ষণ করা হয়েছে: এড়িয়ে যান NSMakeRectএবং সবেমাত্র যেতে হবে এমন একটি সংখ্যা খুঁজে পান।

সম্পাদনা করুন: আরও 14 বাইট সংরক্ষণ করা হয়েছে: NSTimerকোনও কিছুর জন্য উদাহরণটি বরাদ্দ করার দরকার নেই এবং স্পষ্টতই rশূন্যের শুরুতে এড়িয়ে যেতে পারেন ।

সম্পাদনা করুন: আরও 15 টি বাইট সংরক্ষণ করা হয়েছে: আমি থামাতে পারছি না। সহায়তা প্রেরণ করুন।


ধন্যবাদ. ওবজে-সি ++ হ'ল বর্তমানে সবচেয়ে দীর্ঘতম সংক্ষিপ্ত কোড প্রতিযোগিতায় সুস্পষ্ট বিজয়ী!

14
সর্বাধিক অ্যানিমেটেড অ-অ্যানিমেটেড চিত্র প্রতিযোগিতা জয়ের জন্যও +1 ।
লিন

4

জাভাস্ক্রিপ্ট / প্রসেসিংজেস, 175 173 156 153 152 বাইট

var s=256,e,h,m;void setup(){size(s,s);h=s/2;}void draw(){background(-1);m=-millis()*(PI/36000);stroke(h,0,h);e=s/2*0.75;point(h+sin(m)*e,h+cos(m)*e);}

চালানোর জন্য: হয় দেখার জন্য http://www.openprocessing.org/sketch/226733 processing.js ব্যবহার করে, বা ডাউনলোড প্রক্রিয়াকরণের থেকে 2.0 কর্ম এটি দেখতে processing.org , প্রসেসিং আইডিই মধ্যে কোড পেস্ট করুন, জাভাস্ক্রীপ্ট মোড এবং ঘড়ি নির্বাচন এটি চলে.


লোল, আপনি আমার 20 সেকেন্ড আগে প্রসেসিং পোস্ট করেছেন।
পুর্কাকুডারী

এই উত্তরে শিরোনামটি কি ভুল? এটি লিডারবোর্ডে প্রদর্শিত হবে না।

1
মিস করলাম, আমি এখন এটাই করছি।
তীমথিয় গ্রুট

1
এটি এখন 60 সেকেন্ডের প্রয়োজনীয়তাটি পূরণ করবে
টিমোথী গ্রুট

1
background(-1)এর চেয়ে এক বাইট কমbackground(255)
ক্রিটিক্সী লিথোস

3

এলম , 274 বাইট

import Color exposing (..)
import Graphics.Collage exposing (..)
import Time exposing (..)
main=Signal.map((\t->collage 200 200 [move(75*cos(-2*pi*t/60),75*sin(-2*pi*t/60))(filled(rgb 128 0 128)(circle 2)),outlined(solid black)(square 200)])<<inSeconds)(every(0.01*second))

আপনার ব্রাউজারে এটি চেষ্টা করুন বা সম্পাদনা করুন:

মনে রাখবেন যে আমরা যদি আমদানিগুলি থেকে মুক্তি পাই এবং ক্যানভাসের চারদিকে রূপরেখা আঁকতে পারি তবে আমরা 149 বাইটে নেমে যাব, তবে সম্ভবত এটি প্রতারণা করছে!


উফফফফ! আমি পরীক্ষার সময় অধৈর্য হয়ে
উঠি

1
এটি খুব সুন্দর এবং কার্যকরী ভাষায় কিছু পাওয়ার জন্য দুর্দান্ত। আমাদের এখন হাস্কেল এবং স্কেলা দরকার!

2
@ ল্যাম্বিক আমি সবেমাত্র একটি হাস্কেল সংস্করণ যুক্ত করেছি
ফ্রিরিচ রাবাব

3

সি #, 301 বাইট

using System.Windows.Forms;using System.Drawing;class P:Form{static void Main(){Application.Run(new P());}P(){Paint+=(o,e)=>{var g=e.Graphics;g.Clear(Color.White);g.TranslateTransform(150,150);g.RotateTransform(System.DateTime.Now.Second*6);g.FillRectangle(Brushes.Purple,105,0,1,1);Invalidate();};}}

ডিফল্ট আকারের মেট্রিকের উপর নির্ভর করে; বিভিন্ন কারণের উপর নির্ভর করে আকার এবং অবস্থান কিছুটা বন্ধ হতে পারে। ভয়াবহভাবে ঝাঁকুনি দিতে পারে বা নাও পারে; এটি সমাধান করতে, নিম্নলিখিতগুলি যুক্ত করুন:

SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.AllPaintingInWmPaint,true);

3

লুয়া + লভে, 189 টি অক্ষর

t=0
m=math
l=love
g=l.graphics
function l.update(d)t=t+d end
function l.draw()a=t*m.pi/30
g.setBackgroundColor(255,255,255)g.setColor(127,0,127)g.point(400+225*m.cos(a),300+225*m.sin(a))end

love.update()পূর্ববর্তী ফ্রেম থেকে সময় কেটে গেছে প্যারামিটার হিসাবে। উইন্ডোটি যাইহোক পুনরায় আকারে পরিবর্তনযোগ্য না হওয়ায় স্থির স্থানাঙ্কগুলিতে ডিফল্ট 800 x 600 উইন্ডোতে আঁকুন।


প্রথম লুয়া উত্তর! ধন্যবাদ.

3

পাইথন 2 + পাইগাম, 221 198 193

exec'from %s import*;'*3%('math','pygame','time')
_,p,D=[255],128,display
S=D.set_mode(_*2)
while 1:S.fill(_*3);S.set_at(map(lambda f:int(p+f(pi*(time()%60)/30)*96),(cos,sin)),(p,0,p));D.flip()

1
অদ্ভুতভাবে অসাধারণ!

এখন আমাদের কেবল একটি অজগর + টার্টল দ্রবণ প্রয়োজন।

3

সি (এসডিএল 1.2 ব্যবহার করে), 237 233

#include <SDL.h>
#define P(f)(int)(128+96.0*f(3.14*((int)(.001*SDL_GetTicks())%60)/30))
main(){SDL_Surface*s=SDL_SetVideoMode(255,255,32,0);while(1){int*p=s->pixels;memset(p,255,260100);p[P(cos)+s->w*P(sin)]=0x800080FF;SDL_Flip(s);}}

সংকলন এবং ব্যবহার করে চালান gcc -I/usr/include/SDL snippet.c -lSDL -lm && ./a.out


আশ্চর্যজনকভাবে দুর্দান্ত! আমি ভেবেছিলাম কেউ এটা করবে না।

2

অ্যাকশনস্ক্রিপ্ট 2.0, 151 বাইট

দুর্ভাগ্যক্রমে, অ্যাডোব ফ্ল্যাশ ফ্রিওয়্যার নয়, এবং গুগল জানিয়েছে যে এটি ভিএম বা ওয়াইন ছাড়া লিনাক্সে কাজ করে না (এমনকি ওয়াইন দিয়েও এটি বেশিরভাগ ক্ষেত্রেই কাজ করে)। তবুও, আমি দেখতে চেয়েছিলাম যে এই কাজটি এটি কতটা ভাল করবে। বেশ ভাল, এটি দেখা যাচ্ছে।

createEmptyMovieClip("p",0)
p._x=p._y=r=200
p.beginFill(0x800080)
p.moveTo(r,0)
p.lineTo(r-1,0)
p.lineTo(r,1)
onEnterFrame=function(){p._rotation+=.25}

মূল ধারণা: একটি নতুন সিনেমা ক্লিপ অবজেক্ট তৈরি করুন, এটিকে (200, 200) এ রাখুন এবং তারপরে আরও 200 পিক্সেল থেকে ডান 2 আঁকুন । এখন মুভি ক্লিপটি 200 পিক্সেল প্রশস্ত এবং 1 পিক্সেল উচ্চ। পিভট পয়েন্ট হ'ল মূল স্থানাঙ্ক যেখানে আমরা শুরু করেছি, সুতরাং আমরা যখন _rotationসম্পত্তিটি পরিবর্তন করি তখন বিন্দুটি বিন্দু (200, 200) এর চারদিকে একটি বৃত্তে চলে। সুবিধার্থে, _rotationডিগ্রি হয়; 0.25 ডিগ্রি / ফ্রেম * 24 ফ্রেম / সেকেন্ড * 60 সেকেন্ড / মিনিট = 360 ডিগ্রি / মিনিট।

আপনার যদি ফ্ল্যাশ থাকে তবে স্ক্র্যাচ থেকে চালানোর জন্য একটি নতুন ফ্ল্যাশ ডকুমেন্ট 1 তৈরি করুন , ক্রিয়া প্যানেলটি খুলুন এবং উপরের কোডটি আটকে দিন। ডিফল্ট সাদা ব্যাকগ্রাউন্ড, 550x400 ক্যানভাস এবং 24 fps ধরে ধরে আর কোনও স্বনির্ধারণের প্রয়োজন নেই। Ctrl- এন্টার চাপুন এবং এটি দেখুন।

আপনার যদি নিজে ফ্ল্যাশ না থাকে তবে আপনি এখনও ফ্রি ফ্ল্যাশ প্লেয়ারের সাথে ফলাফলগুলি দেখতে পাচ্ছেন, যা বেশিরভাগ আধুনিক ব্রাউজারগুলির সাথে দেখা উচিত। এসডাব্লুএফ ফাইলটি এখানে ডাউনলোড করুন । আপনি যদি এটি খেলতে না পারেন , একই ডিরেক্টরিতে এসডাব্লুএফ ফাইলটি সহ এই এইচটিএমএল পৃষ্ঠাটি ডাউনলোড করে এটি খোলার চেষ্টা করুন ।

"ফ্ল্যাশ ফাইল (অ্যাকশনস্ক্রিপ্ট ২.০)" নির্বাচন করে কোন ধরণের নতুন ফাইল তৈরি করতে হবে জানতে চাইলে অ্যাডোব ফ্ল্যাশ সিএস 4 পেশাদারের উপর পরীক্ষিত 1

2 প্রকৃতপক্ষে একটি ছোট ত্রিভুজ, আপনি দেখতে পাবেন যে আপনি এটির পক্ষে যথেষ্ট পরিমাণে জুম করেছেন কিনা। এটি বিন্দু আঁকতে আমি খুঁজে পেতে পেলাম olf


2

জাভাস্ক্রিপ্ট ডাব্লু / জিকুয়েরি, 205 বাইট

y=75;with($('<canvas/>').appendTo(document.body)[0].getContext('2d')){fillStyle='#800080';translate(y,y);(f=function(){clearRect(-y,-y,y*2,y*2);fillRect(0,56,1,1);rotate(Math.PI/300);setTimeout(f,100)})()}

jsfiddle , নীচের snippet

এটি সম্ভবত বই দ্বারা না। ক্যানভাসের ডিফল্ট আকার (কমপক্ষে ক্রোমে) 300x150, তাই আমি বৃত্তটি 75x75 এ কেন্দ্র করে রেখেছি। আমি এটি 150x75 এ কেন্দ্র করতে পারলাম এবং এর ব্যাসার্ধ 113px (প্রস্থের 75%)) তৈরি করতে পারতাম, তবে এটি বেশিরভাগ সময় ক্যানভাসের বাইরে থাকত, আমি পরিবর্তে height 75% উচ্চতা বেছে নিয়েছিলাম।

তবে এটি কোনওভাবেই সংক্ষিপ্ত নয়, তাই meh '



2

জাভাস্ক্রিপ্ট ES6, 202 বাইট

a=0;with((D=document).body.appendChild(D.createElement`canvas`).getContext`2d`)with(Math)setInterval((f=t=>t(a+=PI/6e3)*60+75)=>fillRect(f(cos,clearRect(0,0,150,150),fillStyle=`#800080`),f(sin),1,1),10)

ফায়ারফক্স 41-এ পরীক্ষা করা হয়েছে।

অন্যান্য (প্রায়) খাঁটি জাভাস্ক্রিপ্ট উত্তরের মতো, ক্যানভাস উপাদানগুলির ডিফল্ট আকার 300x150 এইচটিএমএল স্প্যাস দ্বারা সংজ্ঞায়িত হিসাবে বৃত্তটি 75x75 কেন্দ্রীভূত হয়।


2

মতলব, 141 136

সম্পূর্ণ তালিকা পেতে আমি কেবল এটি আপনার জন্য জমা দিচ্ছি, লেম্বিক।

v=-100:100;
[y,x,m]=ndgrid(v,v,0);
n=75;
while 1;
    pause(1);
    c=m;
    c(x+i*y==round(n))=1;
    imshow(c);
    colormap([1,1,1;.5,0,.5]);
    n=n*exp(pi*i/30);
end

পুরাতন রুপ:

v=-100:100;
[x,y,m]=ndgrid(v,v,0);
while 1;
c=m;
c(x+i*y==round(75*(-1)^(s/30)))=1;
imshow(c);
colormap([1,1,1;.5,0,.5]);
s=mod(s-1,60);
pause(1);
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.