Yoshi FAQ(NES)
version 1.0.0
by Andrew Schultz schultza@earthlink.net

Please do not reproduce for profit.  This is part of my part of the 
efforts to preserve the memory of old games by providing original 
literature.  However, if you wish to post this on your site, drop me an 
e-mail discussing me and this FAQ by name, and I'll probably accept.

**** AD SPACE ****
My home page:
http://www.geocities.com/SoHo/Exhibit/2762/
Games page:
http://www.geocities.com/SoHo/Exhibit/2762/games/games.htm

================================

INTRODUCTION

POINTS, ETC.

STRATEGY AND BASIC PROBABILITIES

THEORY

  LIST OF MOVEMENTS

  TABLE OF MOVEMENTS

YOU CAN GET BLACKBALLED

================================
INTRODUCTION

"What this world needs...is a Yoshi NES FAQ!"  It came to me in a dream.

I've always wanted to write a FAQ/guide for a Tetris-style game, and 
let's face it, they don't get any simpler or smaller than Yoshi.  I'm 
trying to stay away from making this FAQ sound like a motivational 
speech("Just concentrate hard, don't do anything dumb, improve your 
reflexes, and you'll get a nice high score!")--what I want to find is, 
how much rigor can I put into it?  There's a good deal of figure-
crunching, of course, but I wanted to cover some theoretical cases about 
questions people might have after playing the game a few times.  I plan 
to cover strategies for the A and B games but not for two-player mode 
which I know nothing about.  There's also the standard point-scoring 
section, etc.

Frequently I will use shorthand, W for white, O for orange, R for red, B 
for black, and E for egg when describing what is in the columns.  I also 
interchange objects and monsters in my vocabulary.

POINTS, ETC.

In both games, you get the same points for actions.  The only 
differences are that you get bonus points for completing levels via game 
B but not via game A.  With game A, a switch in levels drops a phalanx 
of three guys down on the board.  With game B, you have the minimum of X 
and 6 rows of monsters appearing at the start, where X is the level you 
are on, but you get some bonuses at the end of the level.

--5 points for hitting one object with the same object above it
--50 points for putting a top-eggshell on a bottom-eggshell
--100 points for putting a top-eggshell over a bottom-eggshell, with a 
few objects between them.  There can be more than one, but you still get 
100 points.
--50*(minimum of level # and 6) points for completing a level in game B.  
There's a brief skit where Mario rides on Toshi, who walks over to 
something and pulls some sort of frog/okapi tongue out.  That something 
is:  mushroom(1), rose(2), open red monster(3), bell(4), star(5), 
apple(6 and beyond).

STRATEGY AND BASIC PROBABILITIES

  The first and bluntest try to buy time when in trouble is to pause, 
but the screen disappears.  I suppose you could play on an emulator and 
take screenshots, but that's really lame.  So on to more cerebral 
strategy.

  It's not too tough to learn what to swivel when you have a lot of 
time.  There is a list below.  But if one column is stacked near or at 
the top, you will want to keep an eye on what's next.  Once the monster 
at the top of the column is next, move it into place.  Even if a monster 
is in the eighth row, this works.

  On a related note, if you swivel two columns, one with a falling 
monster and another with a column higher than that monster, the monster 
keeps falling at the same rate--this can be nice if, say, you've nailed 
something at the top and need a break for a few seconds, whether or not 
you actually do any planning.  You can even swivel columns into place 
for what's dropping next.  Keeping ahead of the game for a few turns 
will probably reduce your columns well.

  Unfortunately, I can't think of anything else that's not fluff, so 
I'll go into probabilities that should give you confidence the game is 
fair(although eventually a sequence will come along that will swamp you-
-I prove that below.  Even though the odds of it happening at any time 
are not great, over an arbitrary time, that small finite probability 
becomes greater, etc.)

  The game is basically fair;  when you have objects on each of the four 
plates, you can generally reduce them over time.  Given a random mix of 
2 objects falling down and objects in each of the four columns, there 
are 4^6=4096 possibilities.  It turns out that there are(using a trusty 
computer program:)
1588 ways to get two pairs, or 1588/4096=38.75% chance you can eliminate 
4 objects
1992 ways to get one, or 
516 to get none, or 12.59% chance you won't be able to eliminate any.
Overall, this leads to an expected value of 1072/4096(the two-baggers 
minus the one-baggers) objects reduced with each pair that falls, or 
.26, as long as all four columns are filled in.  That's pretty good.
  With 3 objects your odds are still pretty good, so don't panic.  In 
the 4^5=1024 possibilities, there are 256 ways to get two pairs, 564 to 
get one, and 204 to get none.  That leads to an expected value of 256-
204/1024=52/1024=.05 expected value for monsters removed, so you still 
at least break even in this case.  The intuitive method of just 
balancing rows is probably the best.
  We haven't considered the randomly appearing egg shells, but they 
probably only help--an egg-top always disappears and can be a big help 
if there are any egg-shells anywhere on the board.  An egg-bottom can be 
a bit of trouble, but it can also be a help in the long run if an egg-
top appears.
  As your distribution can be considered slightly better-varied than the 
random, you can reduce a huge block of objects over time without needing 
much luck.  What you need to do when two objects fall is to leave open 
the most variety.  For instance, if the topmost objects are WWRB and you 
have an OO dropping down, it would be a mistake to put it over the RB as 
that would leave only two colors.  In fact, you might want to look at 
the guys falling down next.  If you have a RW then you'll want to leave 
an R and a W open.  If you have BE falling next then cover a W and a R.  
Whenever a column is rid of objects, fill it up again.

  GAME A-SPECIFIC PROBABILITIES

  The main pain in game A is that three guys will fall down at once.  
Because they fall down so quickly, you may need to do a little damage 
control.  Focus on the highest monster in your columns and see if the 
falling(or next) envoy will wipe him out.  If you get one(and you should 
be able to) happy accidents should nail enough that you keep your head 
above water.  More odds are below--there are 4^6=16384 different 
combinations of monsters/spaces.  I assume there are 4 columns filled--
if not, you should really be fine!
2716 ways(16.58% chance) you'll be able to make three matches--but you 
probably won't be able to flip the columns in time.
7740 ways(47.24% chance) you'll be able to make two matches
5004 ways(30.54% chance) you'll be able to make a match
912 ways(5.56% chance) you won't be able to reduce anything.  This is 
the main problem you'll have, and fortunately it won't come up too much.  
It will come up even less than randomly, because most of these cases 
occur when there are only two colors of monster out there, in which 
case, you've probably already done some reducing and can't keep track of 
much below the top of the column, as it's not too tough to preserve some 
sort of variety.  When this does happen, try to leave all four colors of 
monster visible if possible.

  GAME B-SPECIFIC PROBABILITIES

  The main annoyance here is at the end;  you'll need to wait a lot for 
the right opportunity.  Your main concerns are 1)how to get rid of those 
last two guys and 2)how to do something when an odd number of monsters 
is left.

  1)  well, if you can keep the number of monsters down overall by 
diversifying, learning to swivel quickly, etc., that is a help.  But 
then there's the end, which seems to take a while--and it's not just 
you.  Once you have two guys left, there's a decent chance you'll be 
able to complete the level.  Looking at the "next" doesn't really come 
into play here, so this probability is hard-and-fast:
  Assume you have two monsters of different color at the bottom.  
WLOG(without loss of generality) you can assume that they are R and O.  
It doesn't matter which columns they are in, either.  Then the following 
combinations of monsters falling will not decrease the number of 
monsters:  OO, OW, WO, OB, BO, RR, RW, WR, RB, BR.  The following will 
clear the board:  OR, RO.  The following can't clear anything:  BB, BW, 
WB, WW.  We are leaving eggs out here and will discuss them in point 
two.  However, we see that there are 6 alignments that change the number 
of monsters, and two(one-third) reduce and four(two-thirds) increase.  
So when you're almost finished, there's a two-thirds chance of rejection 
assuming decent randomization.
  2)  the game starts with an even number of monsters, but there are two 
ways to change parity between odd and even.
    a)  top of an eggshell falls and breaks
    b)  you make a "sandwich" of a bottom eggshell, monster, and top 
eggshell
      Either way, if you have an odd number of monsters in the columns, 
eliminating two at a time while two at a time come out on the board will 
never get you to zero, which is even.  So you have to rely on the eggs.
  If a top eggshell comes down, congratulations on your good luck!  If a 
bottom eggshell comes down, put a monster over it ASAP.  Then a top 
eggshell will kill it and restore parity(3 monsters will vanish.)  A 
bottom eggshell will be annoying, but then either a bottom or a top 
eggshell will get rid of it.  The eggshells can be a nuisance here but 
they are the best way in the game to get points, and playing to get 
eggshells so Yoshi's count can go up is about as good an alternate goal 
as you'll find.

THEORY(WHAT THERE IS OF IT)

This theory is too light to be serious yet involved enough to turn off 
the casual player, but it's part of an intellectual exercise, and maybe 
someone will find it neat or be able to incorporate similar ideas into a 
Tetris FAQ.

In general, the formula for number of turns you need to get from one 
formation to another is as follows:
Total turns = (distance between A, before and after) + (distance between 
B, before and after) + (0 if the outside two points include one of A, Af 
and one of B, Bf OR 1 if A/B order is switched before and after and the 
direction from A to Af is in the opposite direction of the direction 
from B to Bf, OR -1 otherwise)
In other words, you'd add one if
AxxB became BxxA
but not if
AxBx became xxAB,
where A and B are the columns you wish to switch, and I put an x in the 
two you don't.  This notation will be used throughout the FAQ.

This is easily proven by noting that if A and B do not switch 
orientation, you can move one of A or B to its desired position without 
crossing over the other.  (If not, assume A is to the right of B.  Then 
the new A would be to the left of B and the new B would be to the right 
of A and thus to the right of the new A.)  Each move makes |Af-A| + |Bf-
B| one smaller.
If they do switch orientation, then you need to worry about if both A 
and B go toward their desires goals or away from them.  If they both go 
toward the goals, then you have eliminated a necessary step.  Otherwise 
you need to add one.

The moves below indicate the positions Mario needs to be in to swivel 
the stacks so that you get what you want.
1:  swap leftmost and 2nd-left
2:  swap 2nd-left and 2nd-right
3:  swap 2nd-right and rightmost 

Note that some solutions require you to shift over twice, and none 
require more than five flips.  This fits in with the theorem above.  
Maximum distance switch is 6, and then we must subtract one--but with a 
distance switch of 5, we also subtract one in the formula, since for A 
and B to be in the same order as Af and Bf, each can only be switched by 
two, i.e. from ABxx to xxAB is clearly the maximum.  Note there are 
several ways to achieve 5;  AxxB to BxxA.

In general, I try to move the A into position first, and then the B, 
unless you can flip the B more efficiently.  And probably the most 
annoying one, flipping one column over the other(BAxx to xABx, for 
instance,) is done two ways:  1,2,1 and 2,1,2.  Obviously use the one 
you start closer to.

  LIST OF MOVEMENTS

**ABxx:

  ABxx-
  AxBx-2
  AxxB-2,3
  BAxx-1
  xABx-2,1
  xAxB-2,3,1
  BxAx-1,2
  xBAx-1,2,1
  xxAB-2,3,1,2
  BxxA-1,2,3
  xBxA-1,2,3,1
  xxBA-1,2,3,1,2

**AxBx:

  ABxx-2
  AxBx-
  AxxB-3
  BAxx-2,1
  xABx-1
  xAxB-3,1
  BxAx-2,1,2
  xBAx-1,2
  xxAB-3,1,2
  BxxA-1,2,1,3
  xBxA-1,2,3
  xxBA-1,2,3,2

**AxxB:

  ABxx-3,2
  AxBx-3
  AxxB-
  BAxx-3,2,1
  xABx-1,3
  xAxB-1
  BxAx-1,3,2,1
  xBAx-1,3,2
  xxAB-1,2
  BxxA-1,2,3,2,1
  xBxA-1,2,3,2
  xxBA-1,2,3

**BAxx:

  ABxx-1
  AxBx-1,2
  AxxB-1,2,3
  BAxx-
  xABx-1,2,1
  xAxB-1,2,3,1
  BxAx-2
  xBAx-2,1
  xxAB-1,2,3,1,2
  BxxA-2,3
  xBxA-2,3,1
  xxBA-2,3,1,2

**xABx:

  ABxx-1,2
  AxBx-1
  AxxB-1,3
  BAxx-1,2,1
  xABx-
  xAxB-3
  BxAx-2,1
  xBAx-2
  xxAB-3,2
  BxxA-2,1,3
  xBxA-2,3
  xxBA-2,3,2

**xAxB:

  ABxx-1,3,2
  AxBx-1,3
  AxxB-1
  BAxx-3,2,1,2
  xABx-3
  xAxB-
  BxAx-3,2,1
  xBAx-3,2
  xxAB-2
  BxxA-3,2,1,3
  xBxA-2,3,2
  xxBA-2,3

**BxAx:

  ABxx-1,2
  AxBx-1,2,1
  AxxB-2,1,2,3
  BAxx-2
  xABx-1,2
  xAxB-1,2,3
  BxAx-
  xBAx-1
  xxAB-1,2,3,2
  BxxA-3
  xBxA-1,3
  xxBA-3,1,2

**xBAx:

  ABxx-1,2,1
  AxBx-2,1
  AxxB-2,1,3
  BAxx-1,2
  xABx-2
  xAxB-2,3
  BxAx-1
  xBAx-
  xxAB-2,3,2
  BxxA-1,3
  xBxA-3
  xxBA-3,2

**xxAB:

  ABxx-2,1,3,2
  AxBx-2,1,3
  AxxB-2,1
  BAxx-2,1,3,2,1
  xABx-2,3
  xAxB-2
  BxAx-3,2,1,3
  xBAx-2,3,2
  xxAB-
  BxxA-3,2,1
  xBxA-3,2
  xxBA-3

**BxxA:

  ABxx-3,2,1
  AxBx-3,2,1,2
  AxxB-3,2,1,2,3
  BAxx-3,2
  xABx-1,3,2
  xAxB-1,2,3,2
  BxAx-3
  xBAx-1,3
  xxAB-1,2,3
  BxxA-
  xBxA-1
  xxBA-1,2

**xBxA:

  ABxx-3,2,1,2
  AxBx-3,2,1
  AxxB-3,2,1,3
  BAxx-1,3,2
  xABx-3,2
  xAxB-2,3,2
  BxAx-1,3
  xBAx-3
  xxAB-2,3
  BxxA-1
  xBxA-
  xxBA-2

**xxBA:

  ABxx-3,2,1,3,2
  AxBx-3,2,1,3
  AxxB-1,2,3
  BAxx-2,3,1,2
  xABx-2,3,2
  xAxB-3,2
  BxAx-2,1,3
  xBAx-2,3
  xxAB-3
  BxxA-2,1
  xBxA-2
  xxBA-

  TABLE OF MOVEMENTS

    |ABxx|AxBx|AxxB|BAxx|xABx|xAxB|BxAx|xBAx|xxAB|BxxA|xBxA|xxBA|
ABxx|   0|   1|   2|   1|   2|   3|   2|   3|   4|   3|   4|   5|
AxBx|   1|   0|   1|   2|   1|   2|   3|   2|   3|   4|   3|   4|
AxxB|   2|   1|   0|   3|   2|   1|   4|   3|   2|   5|   4|   3|
BAxx|   1|   2|   3|   0|   3|   4|   1|   2|   5|   2|   3|   4|
xABx|   2|   1|   2|   3|   0|   1|   2|   1|   2|   3|   2|   3|
xAxB|   3|   2|   1|   4|   1|   0|   3|   2|   1|   4|   3|   2|
BxAx|   2|   3|   4|   1|   2|   3|   0|   1|   4|   1|   2|   3|
xBAx|   3|   2|   3|   2|   1|   2|   1|   0|   3|   2|   1|   2|
xxAB|   4|   3|   2|   5|   2|   1|   4|   3|   0|   3|   2|   1|
BxxA|   3|   4|   5|   2|   3|   4|   1|   2|   3|   0|   1|   2|
xBxA|   4|   3|   4|   3|   2|   3|   2|   1|   2|   1|   0|   1|
xxBA|   5|   4|   3|   4|   3|   2|   3|   2|   1|   2|   1|   0|

YOU CAN GET BLACKBALLED

It is possible for the computer to screw you over.  For instance, if it 
put out, in a cycle, two reds, two oranges, two whites, two blacks, two 
egg bottoms, you would lose very quickly.  It seems self-evident.  In 
order to make any progress, you need to be able to get a bunch of double 
knock-outs in a row, and the way everything falls down, it's not really 
possible.  A proof is below, and I expect it extends to if there were 
only four creatures.

Replace each block with a pair of numbers.  Then note that, if no blocks 
vanish and we have an infinite well, the least the maximum height could 
be is x/2, where x=the number of blocks that come down.
Now, assume that we can never have a height of 9 blocks.  Also note the 
following:  the minimum # of blocks, given what the computer puts out, 
to achieve a height of Y blocks in one row and knock it down again is 
4Y+1.  I.e. if we put in red/orange/red/orange we could knock it down 
with orange/red/orange/red.

Proof:  note the following case establishes the minimum is true.
4Y
4Y-2
4Y-6
....(descend by twos)
2Y+2
2Y-2
....(descend by twos again)
6
2
0
...would make it so there are 2Y total items(0..4Y by 2's, without 2Y)
That there can be no fewer is as follows:  note that you need five 
blocks for one row.  Drop color 0 in, then you'll have to wait for color 
4.  Assume by induction that a height of Y blocks needs at least 4Y+1.  
Then...
1.  You need to cycle through {X+4Y..X} to build up to Y blocks and 
break the blocks down again.
2.  See how to make a height of Y+1 blocks.  Add any number, X+4Y+A, and 
see how we would "counter" that with a block at the bottom--the answer 
is with X-4+(A mod 4).  But A - (-4+(A mod 4)) >= 4.  So each time the 
column height increases, the minimum blocks increase by at least 4.  
Above we showed it doesn't increase by more.

So let X = the # of blocks we put down overall, and let Y = the # of 
blocks in row A that we can vanish.  Then note we can never have a 
height of 9 blocks, so Y < 9/19(# of blocks,) but in some row we have 
over 1/2 the number of blocks.

9/19(# of blocks thrown in well) + 32(this is the max # of blocks 
remaining) <= 1/2(# of blocks thrown in well.)

32 <= (1/2 - 9/19) (# of blocks in well)
# blocks >= 32*38=1216.  So after 1216 blocks we are assured of losing, 
and I know it takes a lot less time than that.  But I should cut the 
proof off here.

END OF FAQ PROPER

================================

VERSIONS/CREDITS

1.0.0 Sent to GameFAQS 8/16/2001