ফ্লপি বার্ড ক্লোনস :)


24

সকলেই সেই বোকা "ফ্লপি পাখি" গেমটি সরানো হচ্ছে তা প্রকাশ করে চলেছে। সুতরাং, আপনার কাজটি হ'ল ফ্ল্যাপি বার্ড ক্লোন গেমটি ক্র্যাক করা। এটা সত্যিই সহজ। গাইড লাইনগুলি এখানে:

  • এটি আসকি শিল্প বা বাস্তব চিত্রগুলি ব্যবহার করতে পারে
  • ক্লিক বা কোনও কী প্রেসের সাহায্যে আপনি আপনার "পাখি" ফ্ল্যাপ তৈরি করতে পারেন
  • এটি যতটা সম্ভব সংক্ষিপ্ত হওয়ার চেষ্টা করা উচিত, অতএব ট্যাগ।

এখানে একটি উদাহরণ দেওয়া হয়েছে: http://www.reddit.com/r/learnprogramming/comments/1xiimx/i_couldnt_s ঘুম_so_i_ ক্লোনড_আপনার_ফ্লেপি_বার্ড /

"ফ্ল্যাপি পাখি ক্লোন" হওয়ার জন্য আপনার গেমটিতে নিম্নলিখিতটি থাকা দরকার:

  • একটি পাখি, বা অন্য চরিত্র
  • "কী" টিপে টিপে চাপলে বা আপনি ক্লিক / আলতো চাপলে "পাখি" কিছুটা উপরে উঠে যায়
  • যদি ক্লিক / ট্যাপিং / ইত্যাদি না থাকে তবে "পাখি" দ্রুত নীচের দিকে চলে যেতে হবে
  • পাইপ বা অন্যান্য বাধাগুলি স্ক্রিনের বাম দিকে অগ্রসর হওয়া উচিত, এই ধারণা তৈরি করে যা পাখিটি সরছে
  • পাইপগুলিতে পাখির ওঠার জন্য একটি ছোট ফাঁক থাকা উচিত।
  • প্রতিবার যখন আপনি পাইপের মধ্যে একটি ফাঁক দিয়ে যাবেন তখন আপনার স্কোর 1 দ্বারা বাড়বে।
  • আপনি যদি কোনও পাইপ বা মাটিতে আঘাত করেন তবে গেমটি শেষ হবে এবং আপনার স্কোর প্রদর্শিত হবে।

এটি আসলে "পাখি" বা "পাইপ" হওয়ার দরকার নেই, এটি সমস্তই এসসিআই হতে পারে। এখানে ফ্ল্যাপী পাখির পর্দার একটি খুব ন্যূনতম উদাহরণ:

/ ----- [4] ----- \
| || || |
| || ¯¯ |
| || ও> |
| ¯¯ __ |
| __ || |
| || || |
\ ------------- /

2
একটি প্রশ্ন আদর্শভাবে স্ব-অন্তর্ভুক্ত হওয়া উচিত এবং অবশ্যই কমপক্ষে একটি ব্রড-ব্রাশ স্পেক থাকা উচিত।
পিটার টেলর

3
যেমন দাঁড়িয়েছে, বৈধ জমা দেওয়ার হিসাবে বিবেচনা করা হয়েছে তাতে কিছুটা বেশি সাবজেক্টিভিটি উপস্থিত রয়েছে
ক্রাঙ্কার

2
সেখানে। আমি "
ফ্লাপি

আমি কয়েক সপ্তাহ আগে এটি করেছি। কিছুটা সময় পেলে
Shmiddty

1
আমি সত্যিই সত্যিই একটি ASCII শিল্প সংস্করণ দেখতে চাই!
রবি ডাব্লিজিজেড

উত্তর:


14

জাভাস্ক্রিপ্ট + jQuery (ASCII আর্ট) - 571 524 491

দেব সরঞ্জামগুলি (F12) খুলুন এবং নীচের ডেমোটিকে কার্যক্ষম করতে এই পৃষ্ঠায় নিম্নলিখিত কোডটি চালান (এখনই এগিয়ে যান!)

l=$('#answer-23452 blockquote pre').click(function(){m=1}),o=[],d=0,e=4,m=1;setInterval(function(){t=Array(153);s=~~(d/10-0.99);d++;d%10?0:o[d+20]=~~(Math.random()*5)+1;for(i=-1;k=o[i+d],i<17;i++)if(k--)for(j=-1;c=j==k||j-k==4?'-':j-k>0&&j-k<4?0:'|',j<9;j++)i>-1?t[j*17+i]=c:0,i<16?t[j*17+i+1]=c:0;m-=.2;e-=m;if(e<0||e>10||t[~~e*17+8])e=4,m=1,d=0,o=[];t[~~e*17+8]='>';r='|-------['+s+']-------';for(i=0;z=t[i]||' ',i<153;i++)i%17?r+=z:r+='|\n|'+z;r+='|\n|-----------------|';l.html(r);},150)

ডেমো (এটি কার্যকর করুন):

|-------[5]-------|
|    ||        -- |
|    ||           |
|    ||           |
|    --           |
|              -- |
|              || |
|              || |
|    --  >     || |
|    ||        || |
|-----------------|

পরিচিত ছোটখাটো বাগ:

  • আপনি যদি একটি দ্বি-অঙ্কের স্কোর পান তবে এটি লেআউটটি মিস করে

  • এটা সহজ নয়!!! (তবে মূলটিও ছিল না)

  • দক্ষতা এবং গল্ফনেস মধ্যে একটি বাণিজ্য আছে

আপনার হাইস্কোর সহ নির্দ্বিধায় মন্তব্য করুন।

এছাড়াও, এটি আমার প্রথম কোড গল্ফ পোস্ট, সুতরাং সংক্ষেপণ সম্পর্কিত পরামর্শগুলি স্বাগত জানানো হবে


1
আপনি varকীওয়ার্ড এবং ভেরিয়েবল ঘোষণা মুছে ফেলতে পারেন । আপনি এটি Array(153)দ্বারা প্রতিস্থাপন করতে পারেন []এবং সম্ভবত এটি ~~(Math.random()*5)+1দ্বারা প্রতিস্থাপন করতে পারেন1+new Date%5
মাইকেল এম

আপনি যদি বিন্যাসটিকে উপেক্ষা করেন, jQuery এড়িয়ে যান এবং এইচটিএমএল যুক্ত করুন এটি 416 বাইট: jsbin.com/flap/1/edit?html
এ্যামকেই

স্কোর 17. আমার কোন জীবন নেই, আমি জানি।
ইব্রাহিম মাহরির

Known_minor_bugs += "irritating, unwanted and distracting text selections when double clicking";
ইব্রাহিম মাহরির

22

জাভাস্ক্রিপ্ট + jQuery (997)

ক্রোম 32, ফায়ারফক্স 27, আই 9 তে পরীক্ষিত

এই পৃষ্ঠাটি থেকে কনসোল (F12) খুলুন এবং নিম্নলিখিত কোডটি অনুলিপি / অনুলিপি করুন।

scroll(0,0);h=1/30;p=[];r=320;n=0;w=80;f=2.5;o=80;t=setInterval;$('#question').children().hide().end().append('<p id="m"></p>').append('<p id="s"></p>').click(function(){v=100});$('#s').css({position:'relative',margin:'auto',border:'2px solid',width:200,height:r}).append('<img id="b" src="//i.imgur.com/4w6Vgud.gif"/>');$('<style>.p{width:1px;border:1px solid;position:absolute}</style>').appendTo('head');function u(){$('#m').text('score '+m+' (max '+n+')')}function i(){x=r/2;v=0;m=0;p.length=0;u()}i();t("v-=h*100;x+=h*v;if(x<0||x>r)i();$('.p').remove();for(j=0;j<p.length;j++){p[j].r+=h*w;if(p[j].r>200){p.shift();j--;m++;if(m>n)n=m;u();}else if((p[j].r>165&&p[j].r<185)&&(x<p[j].h||x>p[j].h+o))i();else{$('<div class=p></div>').appendTo('#s').css({bottom:0,right:p[j].r,height:p[j].h});$('<div class=p></div>').appendTo('#s').css({bottom:p[j].h+o,right:p[j].r,height:320-p[j].h-o})}}$('#b').css({position:'absolute',left:0,bottom:x-25})",h*1e3);t("p.push({h:Math.random()*(r-o),r:0})",f*1e3)

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

অসম্পূর্ণ এবং মন্তব্য করা সংস্করণ:

$('#question').children().hide();
$('#question').append('<div id="score"></div>');
$('#question').append('<div id="scene"></div>');
$('#scene').css({position:'relative',margin:'auto',border:'2px solid black',width:'200',height:'320'});
$('#scene').append('<img id="bird" src="http://fc01.deviantart.net/fs71/f/2014/037/d/0/pixel_art___flappy_bird_by_hipsterli-d75dkyr.gif"></img>');
$('#bird').css({display:'block',position:'absolute',left:0,'pointer-events':'none',margin:'0 auto'});
$(window).scrollTop(0);

//CONFIGURATION
var dt=1/30,      //delta timestep (typically 30Hz)
    pipevel=80,   //pipe velocity (in pixels per second)
    pipefreq=2.5, //pipe spawn frequency (in second)
    holesize=80,  //hole size (in pixels)
    gravity=-100, //gravity (in pixels per square second)
    punchvel=100; //velocity punch when clicked (in pixels per second)

var x, y, pipes=[], roof=$('#scene').height(), score, maxscore=0;

function updateScore() {
  $('#score').text('Score : '+score+' (max : '+maxscore+')');
}

function init() {
  x=roof/2; //position
  v=0; //velocity
  score=0;
  pipes.length=0;

  updateScore();
}

function step() {
  //euler integration
  v+=dt*gravity;
  x+=dt*v;

  if (x<0 || x>roof)  init();

  //pipes
  $('.pipe').remove();
  for (i=0; i<pipes.length; i++) {
    pipes[i].rightpos += dt*pipevel;
    if (pipes[i].rightpos > 200) {
      pipes.shift();
      i--;
      score++;
      if (score>maxscore) maxscore=score;
      updateScore();
    } else if ((pipes[i].rightpos > 165 && pipes[i].rightpos < 185) && (x < pipes[i].holepos || x > pipes[i].holepos+holesize)) {
      //collision
      init();
    } else {
      $('#scene').append('<div class="pipe" style="background-color:#000; width:1px;border:1px solid #000; position:absolute; bottom:0; right:'+Math.floor(pipes[i].rightpos)+'px; height:'+pipes[i].holepos+'px"></div>');
      $('#scene').append('<div class="pipe" style="background-color:#000; width:1px;border:1px solid #000; position:absolute; bottom:'+(pipes[i].holepos+holesize)+'; right:'+Math.floor(pipes[i].rightpos)+'px; height:'+(320-(pipes[i].holepos+holesize))+'px"></div>');
    }
  }

  $('#bird').css({bottom:Math.floor(x)-25});

  setTimeout(step, dt*1000);
}

$('#question').click(function() {
  v=punchvel;
});

function addPipe() {
  pipes.push({holepos:Math.random()*(roof-holesize),rightpos:0});
  setTimeout(addPipe, pipefreq*1000);
}

init();
setTimeout(step, dt*1000);
setTimeout(addPipe, pipefreq*1000);

আপনি সহজেই কনফিগারেশনটি পরিবর্তন করতে পারেন (মাধ্যাকর্ষণ, পাইপের বেগ ...), মন্তব্য করা সংস্করণটি দেখুন।


1
ফায়ারফক্স ২ in এও দুর্দান্ত কাজ করে। সুন্দরভাবে সম্পন্ন হয়েছে +1
কার্ল-জোহান জাজগ্রেন

ধন্যবাদ, আইই 9 তেও কাজ করে, তাই আমার ধারণা এটি কোনও শালীন ব্রাউজারে কাজ করে :)
মাইকেল এম।

চমৎকার কাজ :) এবং জাভাস্ক্রিপ্টে যথারীতি এখানে প্রশ্নটিকে লক্ষ্য হিসাবে
আপত্তিজনক

1
বর্তমান নিয়ন্ত্রণ স্কিমের সাথে, এটি দুর্ঘটনাক্রমে ভুলভাবে ক্লিক করা খুব সহজ এবং তারপরে পরবর্তী গর্তে পৌঁছানোর জন্য (এবং তারপরে এটি সম্পর্কে কিছু করতে অক্ষম হয়ে) খুব সহজেই পড়তে পারবেন না।
জো জেড।

1
আমি যা বলছি তা হ'ল মাঝখানে অন্য কোথাও ভুল ক্লিক করা খুব সহজ এবং সঠিকভাবে ক্লিক করা খুব কঠিন কারণ আপনার পাঞ্চ সর্বদা আপনাকে একই প্রাথমিক গতিতে সেট করে regard
জো জেড।

5

ফ্লপি ড্রাগন, জাভাস্ক্রিপ্ট, 1024 বি

আমি বর্তমান জেএস 1 কে কম্পোর জন্য এই গেমটি তৈরি করছি ( http://js1k.com )

খেলুন: http://js1k.com/2014-dragons/demo/1704

_='c.scale(,    ;ontouchH=onmousedown=onkeydowif(e){    }else h=45,d=1};(Eq";Rect(0,0,^,^9Q"-k,0Q+N),0()-k,2E3980-(+3)N(+3)),Y(p="fEFf&{{~_=,;=vviJ.jfVi/.OoyizyhkhEwf74)\\n$fwwuvtU`"+(10<h?"iZ[*)yj:*im**y|Ktdww54#5Dy\\iz[Kzi[Jiijk[e@1!":"zl]LfU{\\lKtBUh{zzU66iigig5\\n&iiyz{vfwwiyDfwiiE"0"v=i-e,w=(j-=h)-eG in p)y=8>>4),z=16&15),Iv+=e?y:z,w+=e?-z:y(dW(h-=6dW!eW(k+=Q,^<kW(k-=^)!dXeX(k+280)%8X(f++,Q<lWl--if(q>jX9q<jX!((k+3)%8)W(j<qXj>2q))e=40;fff";c.font="6em Arial";dWf1,5dX"#FloppyDragon"11,5eW"score"4,4e?"reH":d?"":"H"5,6setTimeout(n,l)})()I40*o-k,a.width/()/2-30*    d=e=f=h=0;g=[];G=0;Y>o;o++)=g[o+Y]=8*Math.random()|0;i=j=3;k=Q;l=qc.fill;c.beginPath(c.moveTo(Style="#G=2E3;o--;)o%Q?,a.height/Y1*g[Q*~~(k/8)+Q]+);g[o]-2*(p.charCodeAt(o)Text(00n=function(){4*):(,1*Gfor(oHstartIc.lineTo(N),-4,1*Q20W&&X||Y1E3^4E4q50';for(Y in $='q^YXWQNIHG    ')with(_.split($[Y]))_=join(pop());eval(_)

সমস্ত প্রতিক্রিয়া এবং নতুন ধারণা স্বাগত!


এটি ফ্লপি পাখির চেয়েও শক্ত। আপনি কী কী চাপলে ফ্ল্যাপ অ্যাকশনটি ট্রিগার করলে এটি খেলতে সহজ হবে তবে আমি বুঝতে পারি এটি কোড গল্ফ এবং আরও বৈশিষ্ট্যগুলির অর্থ আরও কোড।
danmcardle

না এটা ঠিক আছে, আপনি যদি মনে করেন কীপ্রেস সমর্থনটি যুক্ত করার চেষ্টা করতে পারি যদি আপনি এটি কার্যকর মনে করেন ...
xem

@ ক্র্যাজেডগ্রিমলিন কিপ্রেস নিয়ন্ত্রণটি সর্বশেষ সংস্করণে যুক্ত করা হয়েছিল;)
xem

শান্ত! আমি দশটি পার হতে পারি না, তবে এটি এখনও দুর্দান্ত।
danmcardle

2

উদ্দেশ্য সি - অবরুদ্ধ

সম্ভবত আমি সবচেয়ে খারাপ কোড লিখেছি।

হ্যাকি পাখি চলছে

আপনি এখানে বাইনারি ডাউনলোড করতে পারেন: আসকিবার্ড ডাউনলোড বাইনারি

পাখিটিকে বাতাসে রাখতে কন্ট্রোল কীটি ফ্রেমলি আলতো চাপুন!

এটি এক্সকোড দ্বারা সংকলিত হয়েছিল এবং টার্মিনালে চালিত হয়েছিল। এর রং আছে! প্রতিলিপি: আপনার টার্মিনালের উইন্ডোটির আকার পরিবর্তন করুন যাতে আপনি পর্দা রিফ্রেশের ব্যাকলগটি দেখতে না পান।

main.m:

#import <Foundation/Foundation.h>
#import "ABManager.h"

void drawScreen(int counter)
{
    __block struct ABPoint thisPoint;
    thisPoint.x = 0;
    thisPoint.y = 0;

    __block ABManager *man = [ABManager sharedManager];
    [man.screen enumerateObjectsUsingBlock:^(NSString *c, NSUInteger idx, BOOL *stop)
     {
         NSString *c2 = c;
         NSMutableArray *newObstacles = [[NSMutableArray alloc] init];
         for (NSValue *s in man.obstacles)
         {
             struct ABPoint o;
             [s getValue:&o];

             if (thisPoint.x == o.x)
             {
                 if (thisPoint.y != o.y && thisPoint.y != (o.y + 1) && thisPoint.y != (o.y - 1))
                 {
                     c2 = @"\033[1;33m|\033[0m";
                 }
                 else
                 {
                     if (counter == 0 && thisPoint.y < o.y)
                     {
                         o.x = o.x - 1;

                         if (o.x < 0)
                         {
                             o.x = 49;
                             o.y = (arc4random() % 11) + 1;
                         }

                         if (man.charPos.x == o.x)
                         {
                             man.score = man.score + 1;
                         }
                     }
                 }
             }
             [newObstacles addObject:[NSValue valueWithBytes:&o objCType:@encode(struct ABPoint)]];
         }

         man.obstacles = [[NSMutableArray alloc] initWithArray: newObstacles];


         if (thisPoint.x == man.charPos.x && thisPoint.y == man.charPos.y)
         {
             printf("\033[1;35m>\033[0m");

             if ([c2 isEqualToString:@"\033[1;33m|\033[0m"])
             {
                 man.shouldExit = TRUE;
             }
         }
         else
         {
             printf("%s", [c2 UTF8String]);
         }

         if (idx % 50 == 49)
         {
             printf("\n");
             thisPoint.y = thisPoint.y + 1;
             thisPoint.x = 0;
         }
         else
         {
             thisPoint.x = thisPoint.x + 1;
         }
     }];
}

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        ABManager *man = [ABManager sharedManager];
        int count = 0;
        BOOL ignoreKeypress = FALSE;
        while (TRUE)
        {
            if (CGEventSourceKeyState(kCGEventSourceStateCombinedSessionState,59) && !ignoreKeypress)
            {
                ignoreKeypress = TRUE;
                struct ABPoint p = man.charPos;
                p.y = p.y - 2;
                man.charPos = p;
            }
            else
            {
                ignoreKeypress = CGEventSourceKeyState(kCGEventSourceStateCombinedSessionState,59);

                if (count > 3)
                {
                    count = 0;
                    struct ABPoint p = man.charPos;
                    p.y = p.y + 1;
                    man.charPos = p;
                }
                else
                {
                    count = count + 1;
                }
            }

            if (man.charPos.y < -1 || man.charPos.y > 11 || man.shouldExit)
            {
                exit(1);
            }

            printf("\n\n\n\n\n");
            printf("\033[1;36m[\033[0m\033[1;30mHacky Bird\033[0m\033[1;36m]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\033[0m\n");
            drawScreen(count);
            printf("\033[1;32m[\033[0m\033[1;31mScore: %li\033[0m\033[1;32m]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\033[0m\n", (long)man.score);

            [NSThread sleepForTimeInterval:0.0157];
        }

    }
}

ABManager.h

#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>

struct ABPoint {
    NSInteger x;
    NSInteger y;
};

@interface ABManager : NSObject
{

}

@property (nonatomic, readwrite) NSMutableArray *screen;
@property (nonatomic, readwrite) NSMutableArray *obstacles;
@property (nonatomic, readwrite) struct ABPoint charPos;
@property (nonatomic, readwrite) NSInteger score;
@property (nonatomic, readwrite) BOOL shouldExit;;

+ (id)sharedManager;

@end

ABManager.m

#import "ABManager.h"

@implementation ABManager
+ (id)sharedManager {
    static ABManager *sharedMyManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedMyManager = [[self alloc] init];
    });
    return sharedMyManager;
}

- (id)init
{
    if (self = [super init]) {

        self.screen = [[NSMutableArray alloc] init];
        for (NSUInteger i=0; i < 600; i++)
        {
            [self.screen addObject:@" "];
        }

        self.score = 0;

        self.shouldExit = FALSE;

        struct ABPoint p;
        p.x = 5;
        p.y = 0;

        self.charPos = p;

        struct ABPoint o;
        o.x = 10;
        o.y = 5;

        struct ABPoint o2;
        o2.x = 30;
        o2.y = 5;

        self.obstacles = [[NSMutableArray alloc] initWithArray:@[[NSValue valueWithBytes:&o objCType:@encode(struct ABPoint)],[NSValue valueWithBytes:&o2 objCType:@encode(struct ABPoint)]]];
    }

    return self;
}

@end

2

রঙ অ্যানিমেশন এবং পদার্থবিজ্ঞান; খাঁটি জাভাস্ক্রিপ্ট, 457 (335) বাইট

এটি এই ফোরামে আমার প্রথম পোস্ট; আমি এই কোডটি তৈরি করেছি এবং পূর্ববর্তীভাবে এই থ্রেডটি এটিতে পোস্ট করার জন্য খুঁজে পেয়েছি
HTML এইচটিএমএল ফাইলটিতে অনুলিপি করা কোডটি এইচটিএমএল ফাইলটিতে অনুলিপি / আটকানোর জন্য প্রস্তুত:

<body><script>A=120;B=280;d=document;y=180;x=v=n=s=0;f=140;c=d.createElement('canvas');p=c.getContext('2d');c.width=B;c.height=400;c.onclick=()=>{v-=6};p.font='50px Arial';d.body.appendChild(c);r=(h,t,k=0,i='#0f0',w=40)=>{p.fillStyle=i;p.fillRect(h,k,w,t)};b=setInterval(()=>{if(x==0){n=f;f=Math.floor(B*Math.random());x=160}x--;v+=.1;y+=v;r(0,400,0,'#08f',B);r(20,40,y,'#fc0');r(x-40,n);r(x+A,f);r(x-40,B-n,n+A);r(x+A,B-f,f+A);if(x==60)s++;p.strokeText(s,A,80);if(x>20&&x<100&&(y<n||y>n+80)){clearInterval(b);location.reload()}},15)</script><br>Made by Thomas Kaldahl</body>

এটিতে পিক্সেল নিখুঁত সংঘর্ষ, সঠিক চতুষ্কোণ পদার্থবিজ্ঞান এবং মসৃণ রঙ অ্যানিমেশন রয়েছে, সবগুলি 457 বাইটের খাঁটি স্বতন্ত্র অফলাইন জাভাস্ক্রিপ্ট কোডের, এখানে আরও বিশদভাবে এবং ব্যাখ্যাতে অবরুদ্ধ দেখানো হয়েছে:

<!--entire HTML shell is omitted in golf-->
<body>
    <script>
        //common numbers and the document are assigned shortcut letters
        A = 120;
        B = 280;
        d = document;

        y = 180; //y position of the top of the bird
        x = //x position of scrolling for pipes
        v = //vertical velocity of bird
        n = //y position of the top of the nearest pipe opening
        s = 0; //score
        f = 140; //y position of the top of the farther pipe opening
        c = d.createElement('canvas'); //canvas
        p = c.getContext('2d'); //canvas context
        //set canvas dimensions
        c.width = B;
        c.height = 400;

        c.onclick = () => { v -= 6 }; //apply jump velocity to bird when clicked
        p.font = '50px Arial'; //font for scoring (omitted in golf)
        d.body.appendChild(c); //add canvas to html page
        //draw a rectangle on the canvas
        r = (h, t, k = 0, i = '#0f0', w = 40) => {
            p.fillStyle = i;
            p.fillRect(h, k, w, t)
        };
        //main loop (not assigned to b in golf)
        b = setInterval( () => {
            if (x == 0) { //the x position is a countdown. when it hits 0:
                n = f; //the far pipe is now the near pipe, overwriting the old near pipe
                f = B * Math.random() //assign the far pipe a new vertical location
                x = 160; //restart the countdown back at 160
                //(score increments here in golf)
            }
            x--; //count down
            v += .1; // apply gravity to velocity
            y += v; // apply velocity to bird
            r(0, 400, 0, '#08f', B); //draw background
            r(20, 40, y, '#fc0'); //draw bird (non-default color is omitted in golf)
            r(x - 40, n); //draw first pipe upper half
            r(x + A, f); //draw second pipe upper half
            r(x - 40, B - n, n + A); //draw first pipe lower half
            r(x + A, B - f, f + A); //draw second pipe lower half
            if (x == 60)
                s++; //(this is done earlier on golf)
            p.strokeText(s, A, 80); //draw score
            // if the bird is in range of the pipes horizontally,
            // and is not in between the pipes,
            if (x > 20 && x < 100 && (y < n || y > n + 80)) {
                clearInterval(b); location.reload() //omit interval clear in golf
            }
        }, 15) //(reduced the frame delay to 9, a 1 digit number, in golf)
    </script><br>
    Made by Thomas Kaldahl <!-- GG -->
</body>

মজা করার জন্য, এখানে ফ্যানসিয়ার গ্রাফিক্স সহ 1066 বাইট সংস্করণ রয়েছে:

<body style='margin:0'><script>var y=180,x=v=n=s=0,f=140,c=document.createElement('canvas'),p=c.getContext('2d');c.width=280;c.height=400;c.onclick=function(){v-=6};c.style='width:68vh;height:97vh';document.body.appendChild(c);p.font="50px Arial";p.shadowColor='#444';p.shadowBlur=9;p.shadowOffsetX=p.shadowOffsetY=5;function r(h,t,k=0,i='#0f0',j='#0a0',u=0,l=0,w=40){var g=p.createLinearGradient(h,l,h+40,u);g.addColorStop(0,i);g.addColorStop(1,j);p.fillStyle=g;p.fillRect(h,k,w,t);}b=setInterval(function(){if(x==0){n=f;f=Math.floor(280*Math.random());}x=x==0?159:x-1;v+=.1;y+=v;r(0,400,0,'#08c','#0cf',280,0,280);r(20,40,y,'#ff0','#fa0',y+40,y);r(x-40,n);r(x-50,20,n-20,'#0f0','#0a0',n+20,n,60);r(x+120,f);r(x+110,20,f-20,'#0f0','#0a0',f+20,f,60);r(x-40,280-n,n+120);r(x-50,20,n+120,'#0f0','#0a0',n+140,n+100,60);r(x+120,280-f,f+120);r(x+110,20,f+120,'#0f0','#0a0',f+140,f+100,60);if(x==60){s++;}p.fillStyle='#fff';p.fillText(s,120,80);if(x>20&&x<100&&(y<n||y>n+80)||y<0||y>360){clearInterval(b);location.reload();}},15);</script><br>Made by Thomas Kaldahl</body>

এছাড়াও, এটি ডিফল্টের মতো একটি সংক্ষেপণ সিস্টেম ব্যবহার করার জন্য প্রতারণা করছে?
নীচে কোডটির একটি DEFLATEd সংস্করণের জন্য ASCII85 কোডটি রয়েছে:
উপায় দ্বারা, সংক্ষেপিত এটি মোট 335 বাইট।

Gapon95_Wi'Kf'c (ঝ ## 6'h + সেমি \ JZeFO <জ; $ ওয়াট '# ক 1', RqNigBH02C '# আর $ মি] <আমি <এক্স # 6GR`2pE <Ri5mu-এন% cVPrsJe: * আর ^ pnr9bI @ [DAZnPP02A ^ $ এম এন / @ `U7l5gm !! Vr4> একটি;।? পি ইউ [Pk8] jCnOP% দিউ` fWql> "tuO4 / KbIWgK;। 7 / iJN'f2, hnFg8e ^ তাই * T \ * `, 3JBn6j (f`O #], M0; 5Sa35Zc @ * XaBs @ এন%] K \ M76qa [.ie7n (^ * Z5G-lfhUZ3F # '%, X17Pj1u] এল) LjpO6XbIl% N3tJhTsab8oV1T (এমসি $ 9 mT; 90VMmnfBNKEY (^ 'UV4c দঃপঃ?': এক্স (4, * WCY + F; 19eQ `FK0I" (উডে: F & পঞ্চদশের & ^ Rc + SWRIbd8Lj9bG.l (MRUc1G8HoUsn # এইচ \ ভী (8 "! ওয়াই $ / tt (? ^ kATb (OreGfWH7uIf


এই মহান দেখায়, কিন্তু দুর্ভাগ্যবশত জন্য codr-গলফ প্রশ্ন আমরা চাই golfed কোড।
NoOneIsHere

3
@NoOneIsHere দয়া পড়া পোস্টে এবং নিজের জন্য golfed কোড দেখে
ei2

আমি দুঃখিত, আমি এখন দেখতে। এটি একটি দুর্দান্ত উত্তর।
নন ইনি এখানে

2

সি, 386 351 347 341 বাইট (উইন্ডোজ, মিনজিডাব্লু), টার্মিনাল এমুলেটর সহ 332

এখানে চিত্র বর্ণনা লিখুন

অবশ্যই অতিপ্রাকৃত এন্ট্রি নয়, তবে এটি ফ্ল্যাপি পাখির মূল যান্ত্রিক ক্যাপচারগুলি গ্রহণ করে: পাখিটি নীচের দিকে ত্বরান্বিত হয়, একটি কী টিপলে তাকে লাফিয়ে লাফিয়ে তোলে, পাইপগুলি বা পর্দার প্রান্তগুলি স্পর্শ করে খেলা শেষ হয়, স্কোরটি ক্লিয়ার পাইপের সংখ্যা।

#import<windows.h>
#define T(x)P[v*10+x]=
char P[71];X,Y,W,s;main(v){srand(time(0));for(float y=1,t=0;!(v<0|v>6|(v<Y|v>=Y+W)&X>0&X<3);Sleep(99)){y+=t=kbhit()?getch(),-.9:t+.3;--X<0?X=8,Y=rand()%3+1,W=rand()%2+2:X-1||++s;memset(P,32,70);for(v=0;v<7;T(9)10,T(X)v<Y|v++>=Y+W?35:32);v=y;T(1)79;T(2)62;system("cls");printf("%s\nSCORE: %d",P,s);}}

এটি পজিক্স টার্মিনাল এমুলেটর ব্যবহার করা হলে (সিএমডারের মতো) 333 বাইটে সংক্ষিপ্ত করা যেতে পারে:

#import<windows.h>
#define T(x)P[v*10+x]=
char P[71];X,Y,W,s;main(v){srand(time(0));for(float y=1,t=0;!(v<0|v>6|(v<Y|v>=Y+W)&X>0&X<3);Sleep(99)){y+=t=kbhit()?getch(),-.9:t+.3;--X<0?X=8,Y=rand()%3+1,W=rand()%2+2:X-1||++s;memset(P,32,70);for(v=0;v<7;T(9)10,T(X)v<Y|v++>=Y+W?35:32);v=y;T(1)79;T(2)62;printf("\033c%s\nSCORE: %d",P,s);}}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.