Author Topic: Flappy Bird - Hayleia  (Read 9958 times)

0 Members and 1 Guest are viewing this topic.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Flappy Bird - Hayleia
« on: February 18, 2014, 04:00:38 pm »
Many people already made their version of a Flappy Bird clone. So I thought "why not me too ?" :P
I think it is useless for me to explain the gameplay, it's in every other topic. So I guess it's just screenshot time (6MHz, as usual).


As you can see, collision detection is missing and the game needs a menu and such things so no release for now. I'd also like to optimize it a bit so you'll have to wait :P
Anyways, tell me what you think of it :)

Download here
« Last Edit: February 25, 2014, 12:43:06 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline LDStudios

  • Coder Of Tomorrow
  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 388
  • Rating: +41/-1
    • View Profile
    • LD Studios
Re: Flappy Bird - Hayleia
« Reply #1 on: February 18, 2014, 04:09:53 pm »
I think with all of these flappy clones combined, we get more downloads than the real game.

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Flappy Bird - Hayleia
« Reply #2 on: February 18, 2014, 04:29:21 pm »
So many flappy birds O.O

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #3 on: February 18, 2014, 04:54:18 pm »
I, for one, welcome our new Flappy overlords. XD

Anyways, I love it! Better than ClrDraw's version! (And I don't say that often)
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline nspireguy

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 158
  • Rating: +11/-6
    • View Profile
    • NspireGuy
Re: Flappy Bird - Hayleia
« Reply #4 on: February 18, 2014, 08:38:08 pm »
I think with all of these flappy clones combined, we get more downloads than the real game.
this could happen. now that you cant get the app...

Offline ClrDraw

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 627
  • Rating: +61/-2
    • View Profile
    • GitHub
Re: Flappy Bird - Hayleia
« Reply #5 on: February 18, 2014, 11:05:08 pm »
I really like the grayscake, good work! How big is it?
Visit my GitHub for all my TI programs as well as other projects.
Also check out my website.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #6 on: February 19, 2014, 12:41:13 am »
I think with all of these flappy clones combined, we get more downloads than the real game.
Yeah, but unfortunately, we don't make money :P

Anyways, I love it! Better than ClrDraw's version! (And I don't say that often)
Well, thanks, but how can you say that before trying it ? :P

I really like the grayscake, good work! How big is it?
(grayscake ? :P)
Thanks :)
Compiled for Noshell, i's 3043 bytes for now (because of 1536 bytes for the background, but I could save a lot considering that half the background is monochrome).
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline ClrDraw

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 627
  • Rating: +61/-2
    • View Profile
    • GitHub
Re: Flappy Bird - Hayleia
« Reply #7 on: February 19, 2014, 10:48:14 am »
Quote
(grayscake ?  :P)
Haha XD Either I suck at computers or I was thinking about portal too much!
But that's not a bad size considering the grayscale. I can't wait to play it :)
Visit my GitHub for all my TI programs as well as other projects.
Also check out my website.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Re: Flappy Bird - Hayleia
« Reply #8 on: February 19, 2014, 10:53:20 am »
This looks quite good actually. What I am wondering is if parallax scrolling would slow the game down?

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #9 on: February 19, 2014, 11:53:12 am »
Anyways, I love it! Better than ClrDraw's version! (And I don't say that often)
Well, thanks, but how can you say that before trying it ? :P
I saw the screenie. :p

Sure looks realistic. I might respond.
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #10 on: February 19, 2014, 12:20:50 pm »
What I am wondering is if parallax scrolling would slow the game down?
It depends. If I keep everything 4 lvl of greyscale, then yes, it will slow down a lot. But if I scroll a white+grey background with only three levels of grey (pipes would be black then, but dark clouds would not be possible), then it will speed up.

Thanks everyone for the support :)
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Flappy Bird - Hayleia
« Reply #11 on: February 19, 2014, 01:01:15 pm »
Ah ok thanks for the info. Is it just due to having to redraw everything or because of possible flicker?

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #12 on: February 19, 2014, 01:40:29 pm »
Ah ok thanks for the info. Is it just due to having to redraw everything or because of possible flicker?
It's due to having to redraw everything. Right now, I just draw pipes once and then keep shifting. And you read right, I draw once, I don't keep drawing while it's half offscreen, I draw them once in L1 then shift L6 (and L3) with a part of L1 ;)
But If I went parallax (with 4 lvl of grey, 3 is not a problem as said previously), I'd have to draw all pipes, refresh screen, erase pipes according to their positions or reinitialize the background (don't know which is slower :P), shift the background then draw all pipes again. This is slow, but also forces the placement of the "refresh screen" part while with my current code, I can use an interrupt.
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #13 on: February 19, 2014, 06:15:52 pm »
Ok, here's the full source code for now, in spoiler. Use at your own risks.
Spoiler For Spoiler:
.AFLAPPY
L2+00->°BirdY
L2+10->°BirdV
L2+02->°GreyMode
.the second argument to fnInt()
L2+04->°GreyTimer
L2+06->°GreyTimerMax
L2+12->°Key4

[]->°BirdSprites
[1C72F6301BFC7C00].dark grey and black
[0000040C03000000].light grey and black
[1C7EFEFFFFFF7C00].mask (white, both grey and black)

.-------------
Lbl Code
LnReg
."frees" L2
Fix 5
ExprOn

FnOff

1->GreyMode
{+°Delays}->GreyTimerMax->GreyTimer
0->BirdV->X

Calibrate()
FnOff

FillEdge()
16*256->BirdY
Copy(°BG1,L6)
Copy(°BG2,L3)
TurnGreyOn()

While 1
 X++Select(,Select(,-96??->X) and 7??FillEdge()) and 31
 !If
  ->r3
  rand and 15+1Asm(45)
  .->b
  L1-1Asm(EB)
  .->de
  L1+64
  .->hl
  Asm(AF)
  .->a
  Asm(233676EB23366EEB3C10F5)
  Asm(0604)
  Asm(2336EFEB2336DFEB3C10F5)
  Asm(2336FFEB2336FFEB)
  Asm(011800)
  Asm(09EB09EB)
  .PipeTopAgain
  Asm(2336FFEB2336FFEB)
  Asm(C60E).add a,14
  .PipeHeadAgain
  Asm(0604)
  Asm(2336EFEB2336DFEB3C10F5)
  .PipeBodyAgain
  Asm(F5)
  Asm(F1233676EB23366EEB3CF5EE3820F1)
  Asm(F1)
 End
 L1+63-5Asm(EB)L6+767-60Shift()
 L1+127-5Asm(EB)L3+767-60Shift()
 Key4 xor (getKey(4)->Key4) and Key4?~220,BirdV+(<<256*2*2*2*2)
 .->BirdV<<256??256,BirdV
 .maybe use max() here
 ->BirdV*2+BirdY->BirdY
 .DispGraph^^r^^r
EndIf getKey(15)

Lbl RET
LnReg
ClrHome
Return

Lbl FillEdge
L1-1->r1
L1+64-1->r2
X/8Select(,+°BG1-12->r3)+°BG2-12->r4
For(64)
 {r3+12->r3}->{r1+1->r1}
 {r4+12->r4}->{r2+1->r2}
End
Return

Lbl Shift
Asm(0640C5EBCB16EB1B060CCB162B10FBC110F0)
Return

Lbl EraseBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
 {C++}->{A+12->A}
 {C++}->{B+12->B}
End
Return

Lbl DrawBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
 {A+12->A}->{C++}
 {B+12->B}->{C++}
End
Pt-Change(8,BirdY/256,°BirdSprites+16)^^r
.now the area used by the bird is white
Pt-On(8,BirdY/256,°BirdSprites)
Pt-On(8,BirdY/256,°BirdSprites+8)^^r
Return

Lbl TurnGreyOn
fnInt(GreyOn,GreyMode*2)
Return

Lbl GreyOn
Asm(F5C5D5E5)
.push everything
.!If GreyTimer+1^GreyTimerMax->GreyTimer
!If GreyTimer--
 GreyTimerMax->GreyTimer
 sub(DrawBird)
 DispGraph^^r^^r
 sub(EraseBird)
End
Asm(E1D1C1F1)
.pop everything
Return

[]->°Nums
[FFE7D3D3D3C3E7FF]
[FFE7C7C7E7E7E7FF]
[FFE7D3F3E7CFC3FF]
[FFC3B9E3E3B9C3FF]

[0A040302]->°Delays
Lbl Calibrate
Fill(L6,6,255)
Fill(+1,6,0)
L3-1
For(2)
 Fill(+1,3,255)
 Fill(+1,3,0)
End
Copy(L6,+12,768-12)
Copy(L3,+12,768-12)
FnOff
Pt-Off(0,,GreyMode*8+°Nums)
TurnGreyOn()
While 1
 If getKey(3)-getKey(2)
  {+GreyMode^4->GreyMode+°Delays}->GreyTimerMax
  ->GreyTimer
  WLP()
  FnOff
  Pt-Off(0,,GreyMode*8+°Nums)
  TurnGreyOn()
 End
EndIf getKey(54)
Return

Lbl WLP
While 1
 Pause 20
End!If getKey(0)
Return

[]->°BG1
[0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F80000000000000000000003FE0000000000000000000007FF000000E00000000400000FFF803C03F80000003F80000FFF80FF0FFE0000F0FFE0001FFFF9FFDFFF000FFCFFFF81FFFFFFFFFFFF003FFFFFFFE3FFFFFFFFFFFFF07FFFFFFFF7FFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000]
[]->°BG2
[FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC07FFFFFFFF81FFFFFFFFFFF803FFFE1FFE007FFFFFFFFFF001FFF807FC003FC07FFF7FE000FFE003FC003F003FFF3E0000FE2001F8001F001FF0100000780000F8001E000FC0000000600000F00000000F80000000600000000000000780000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF492492492492492492492492924924924924924924924924000000000000000000000000000000000000000000000000]
Can someone explain me why setting GreyMode at 0 plays faster than setting GreyMode at 3 ? Because that sets GreyTimerMax lower, but the frequency of the interrupt is also lower so nothing should happen more often.

edit and don't tell me "Draw and Erase are very very unoptimized, you are making the same calculation several times", I know, but I planned to change everything in the drawing routine anyway so I didn't look this part very often. And r3 in the main loop is useless, you can remove it.
Same for the "LnReg FnOff FnOff" at the beginning, the initialization when testing is always the first thing subject to changes.
« Last Edit: February 19, 2014, 06:38:05 pm by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird - Hayleia
« Reply #14 on: February 20, 2014, 03:30:01 am »
I just noticed on the screenshot that there was an unwanted white outline around "pipes" so I removed it here, but that still doesn't answer my interrupt question, so if anyone has a clue, please share. The code is in spoiler too.

Spoiler For Spoiler:
.AFLAPPY
L2+00->°BirdY
L2+10->°BirdV
L2+02->°GreyMode
.the second argument to fnInt()
L2+04->°GreyTimer
L2+06->°GreyTimerMax
L2+12->°Key4

[]->°BirdSprites
[1C72F6301BFC7C00].dark grey and black
[0000040C03000000].light grey and black
[1C7EFEFFFFFF7C00].mask (white, both grey and black)

.-------------
Lbl Code
LnReg
."frees" L2
Fix 5
ExprOn

FnOff

1->GreyMode
{+°Delays}->GreyTimerMax->GreyTimer
0->BirdV->X

Calibrate()
FnOff

FillEdge()
16*256->BirdY
Copy(°BG1,L6)
Copy(°BG2,L3)
TurnGreyOn()

While 1
 X++Select(,Select(,-96??->X) and 7??FillEdge()) and 31
 !If
  rand and 15+1Asm(45).->b
  L1-1Asm(EB).->de
  L1+64
  .->hl
  Asm(AF).->a
  .PipeBody
  Asm(F5237EE681F67677EB237EE681F66E77EBF13C10EB)
  Asm(0604)
  .PipeHead (with b=4)
  Asm(2336EFEB2336DFEB3C10F5)
  .PipeTop
  Asm(2336FFEB2336FFEB)
  .Add24
  Asm(011800)
  Asm(09EB09EB)
  .PipeTopAgain
  Asm(2336FFEB2336FFEB)
  Asm(C60E).add a,14
  .PipeHeadAgain
  Asm(0604)
  Asm(2336EFEB2336DFEB3C10F5)
  Asm(F5)
  .PipeBodyAgain (with push af first)
  Asm(237EE681F67677EB237EE681F66E77EBF13CF5EE3820E9)
  Asm(F1)
 End
 L1+63-5Asm(EB)L6+767-60Shift()
 L1+127-5Asm(EB)L3+767-60Shift()
 Key4 xor (getKey(4)->Key4) and Key4?~220,BirdV+(<<256*2*2*2*2)
 .->BirdV<<256??256,BirdV
 .maybe use max() here
 ->BirdV*2+BirdY->BirdY
 .DispGraph^^r^^r
EndIf getKey(15)

Lbl RET
LnReg
ClrHome
Return

Lbl FillEdge
L1-1->r1
L1+64-1->r2
X/8Select(,+°BG1-12->r3)+°BG2-12->r4
For(64)
 {r3+12->r3}->{r1+1->r1}
 {r4+12->r4}->{r2+1->r2}
End
Return

Lbl Shift
Asm(0640C5EBCB16EB1B060CCB162B10FBC110F0)
Return

Lbl EraseBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
 {C++}->{A+12->A}
 {C++}->{B+12->B}
End
Return

Lbl DrawBird
BirdY/256+(*2)*2*2Select(,+L6+1-12->A)+L3+1-12->B
L1+128->C
For(7)
 {A+12->A}->{C++}
 {B+12->B}->{C++}
End
Pt-Change(8,BirdY/256,°BirdSprites+16)^^r
.now the area used by the bird is white
Pt-On(8,BirdY/256,°BirdSprites)
Pt-On(8,BirdY/256,°BirdSprites+8)^^r
Return

Lbl TurnGreyOn
fnInt(GreyOn,GreyMode*2)
Return

Lbl GreyOn
Asm(F5C5D5E5)
.push everything
.!If GreyTimer+1^GreyTimerMax->GreyTimer
!If GreyTimer--
 GreyTimerMax->GreyTimer
 sub(DrawBird)
 DispGraph^^r^^r
 sub(EraseBird)
End
Asm(E1D1C1F1)
.pop everything
Return

[]->°Nums
[FFE7D3D3D3C3E7FF]
[FFE7C7C7E7E7E7FF]
[FFE7D3F3E7CFC3FF]
[FFC3B9E3E3B9C3FF]

[0A040302]->°Delays
Lbl Calibrate
Fill(L6,6,255)
Fill(+1,6,0)
L3-1
For(2)
 Fill(+1,3,255)
 Fill(+1,3,0)
End
Copy(L6,+12,768-12)
Copy(L3,+12,768-12)
FnOff
Pt-Off(0,,GreyMode*8+°Nums)
TurnGreyOn()
While 1
 If getKey(3)-getKey(2)
  {+GreyMode^4->GreyMode+°Delays}->GreyTimerMax
  ->GreyTimer
  WLP()
  FnOff
  Pt-Off(0,,GreyMode*8+°Nums)
  TurnGreyOn()
 End
EndIf getKey(54)
Return

Lbl WLP
While 1
 Pause 20
End!If getKey(0)
Return

[]->°BG1
.take the hex code from the previous spoiler, I removed it because it caused a scroll bar to appear
[]->°BG2
.same here

I also attached a gif so you see what I am talking about. When I choose 0, the game plays fast, but when I choose 3 it is slower. I don't even understand why the slow down is this way. I would have understood 0 to be slower than 3 because it decreases GreyTimer more often (even though it DispGraphes as often), but it's 3 who is slower.
« Last Edit: February 20, 2014, 03:36:31 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s