OFCEdge Get OFCEdge

Open-Face Chinese Pineapple poker

OFCEdge Pineapple OFC Solver Classic · Progressive · Ultimate + jokers

Any street. Any seat. Heads-up or three-handed.

Any street, any seat, heads-up or three-handed. Set up any position and deal the pull. OFCEdge ranks your placements by EV in points, with royalties and fantasy land counted.

$25,000 for two licenses. Buy by email, no account. Windows 10 & 11 and macOS on Apple silicon.

Kings or aces? Three-handed · Progressive

K♦ on top, 2♣ 4♣ in the middle, 8♦ T♦ in the back, and you pull K♠ A♥ A♣. Kings on top, or the aces?

OOPTo act

Rank 1 of 27

+4.01

EV in points

Best

DiscardA♥

Ranked placementsfor OOPEVvs best

  1. 1Top K♠, middle A♣, discard A♥:+4.01Best
  2. 2Middle A♣ A♥, discard K♠:+3.34−0.68
  3. 3Top K♠, middle A♥, discard A♣:+2.43−1.59
  4. 4Top A♣ A♥, discard K♠:+0.87−3.14
Solved in 51 s · Apple M2, 8 cores, 8 GBExplore this solve
  • 5 to 8 mina heads-up opening set, solved in full on an 8 GB laptop
  • 51 sa three-handed first pull, with the fantasy lands that follow counted
  • 14 to 17 cardsfantasy-land hands set for you, the rest discarded
  • Offlineno account; positions and results stay on your computer

Questions it answers

Ask it what you ask at the table

See it solve

Solved OFC spots, ranked by EV in points

Recorded from the app. Seats are named as there: OOP acts first, MID second three-handed, IP last, and a three-handed EV is the total against both opponents. The Progressive and Ultimate examples run with Simulation on, which counts the fantasy lands that follow; with fixed fantasy-land values the three games would score alike.

The recorded examples did not load. The app screenshots further down show the same results screen.

Fantasy land · Simulation

Counts the fantasy lands that follow

Staying in fantasy land makes getting there worth more than one hand’s bonus. With Simulation on, OFCEdge ranks each placement by this hand plus the fantasy-land hands and normal play that follow.

  • Limit on consecutive staysAny number from zero up, or Unlimited. The first fantasy-land hand is not a stay: a limit of 5 allows it plus five stays.
  • Where each player startsIn normal play, or in fantasy land with 14 to 17 cards and the stays already used. After the showdown, the next hand starts from the new states.
  • With Simulation offFantasy land is worth the fixed value you set in Settings for each seat and top row, paid by each opponent like a royalty. Defaults by seat: 10 and 8 heads-up; 11, 8 and 9 three-handed.

The recorded comparison did not load.

Later fantasy-land hands are valued by a model, so their value is an estimate. In the app’s own small check (heads-up, a 17-card fantasy land, three stays used, eight test runs) the model came out about 19 to 21 points below a slower, fuller estimate, with ranges from about 67 points below to 20 to 24 above; it is not an error bound for any one spot. With Simulation on, the showdown counts only this hand’s points; with it off, its totals include the fixed value you set.

Inside the app

Set it up. Solve it. Read it.

The boards sit on the felt beside the ranked placements, with the deck beside them. Here is each part up close.

OFCEdge’s main window on a three-handed Progressive first pull: the deck on the left, three boards on the felt with the top-ranked placement previewed on the board being solved, and 27 ranked placements on the right, the best at +4.01 points
Inside the app · A three-handed Progressive first pull with Simulation on. The top-ranked placement, K♠ on top and the A♣ in the middle for +4.01 points, is pinned and previewed on the board; 27 placements are ranked beside it.

Setup

Set up any position

Click a row, then pick cards from the deck. Or drag them, or type a row as AsKd9h.

  • Heads-up or three-handed, in any of the five games
  • Start on any street, with any seat to act
  • Realistic, where only your own discards are known, or Full information
Setting up a position: the deck with used cards greyed out, and the middle row of a board highlighted as the row being filled, three slots left

Results

Ranked by EV

Each placement shows its cards, the discard, the EV in points and the gap to the best. Badges mark royalties and fantasy land.

Three ranked placements with their cards, discard, EV and gap to the best: one at +2.43; both aces on top with 9 points of royalties and fantasy land with 16 cards at +0.87; a king and an ace on top with 8 points of royalties and fantasy land with 15 cards at −2.24

Fantasy-land hands

14 to 17 cards, set for you

Give a seat its fantasy-land cards and it sets 13 and picks the discards, ranked by EV; the 17-card hand in the examples took 1.3 seconds. It also solves your normal hand while an opponent is in fantasy land.

A 17-card fantasy-land hand arranged on the board: trip threes on top, a nine-high straight in the middle and deuces full of aces in the back

While it solves

Live rankings

Placements appear as they are scored and reorder as the search runs; Cancel keeps what it has found. On the recorded opening sets the first ranking came after 1.5 to 12 seconds of a 5- to 8-minute search; the three-handed pull shown here had updated seven times in a minute. Quick pulls rank with the result.

A solve in progress after 54 seconds: 25 placements shown, seven ranking updates, and the current leader at +4.01 marked Leading

Settings

Your fantasy-land values

With Simulation off, fantasy land is worth the fixed points you set for each seat and top row.

Fantasy-land values in Settings by seat and top row: 10 and 8 heads-up; 11, 8 and 9 three-handed, for queens, kings, aces and trips

Simulation

Fantasy land that keeps going

Counts the fantasy lands that follow. Set the limit on consecutive stays, or Unlimited, and where each player starts: in normal play, or in fantasy land with its cards and the stays already used.

Simulation setup: the maximum consecutive stays with Unlimited ticked, and each player’s current hand, one in normal play and one in a 17-card fantasy land

Search

Four ways to search

  1. Ranked movesDefault · any streetRanks placements by EV. On an opening set it finishes only the sets that stay in contention: on the opener in the examples it screened 232, shortlisted 30 and finished 4.
  2. Best moveAny streetReturns the one placement it recommends.
  3. Complete openingOpening setConsiders every way to set your five, still dropping sets that fall too far behind; it can take several minutes.
  4. All opening setsOpening setScores every way to set your five, which can take hours on a laptop; see solve times.

Compare

Pin and compare

Pin a result, change something (here, one opponent card) and re-run with the same settings. Each placement shows its EV before, after and the difference.

Compare: six placements with their pinned EV, current EV and the difference after one opponent card is changed; the top placement moves from +73.36 to +87.36

Also in the app

  • Any seat’s turnSolve for OOP, MID or IP, not only for yourself.
  • Play mode and hand reviewDeal a hand street by street, then see each street graded.
  • Saved handsA saved run keeps the position, settings and results, and reopens without solving again.
The Share dialog showing a position as a short code beginning OFC1., with Copy and Import buttons
Share a position as a short OFC1. code
The light theme with the four-colour deck, blue diamonds and green clubs, on a heads-up Ultimate first pull
Light theme and a four-colour deck

Play mode · hand review

Play it, then review it

Deal a full hand street by street. Solve any seat’s turn, apply a placement and play on. When the hand is over, the review shows what you played, what ranked best, and the points you gave up on each street.

  • Chosen and bestyour placement beside the top-ranked one, each with its EV
  • EV lossthe points given up on that street: the best EV minus yours
  • The handthe points you gave up in all, and the street that cost most
  • Not gradeda street you played after cancelling the solve

The recorded hand did not load. The app’s own review of it is shown here.

The app’s Hand review for the same hand: “You gave up 1.9 points; 0.95 on street 1”, with each street’s chosen and best placement and the points given up
Inside the app · The hand review for the same hand.

Showdown scoring

Count the hand

When the boards are full, the showdown settles each matchup row by row: rows won, scoops, royalties, fantasy-land bonuses and fouls. Three-handed, every seat gets a total, opponent by opponent.

  • Rows1 point for each row won, less each row lost
  • Scoopall three rows: +3 for the rows and a +3 bonus, 6 in all
  • Royaltiestop from 66 (1) to AAA (22); middle from trips up, back from a straight up
  • Foulpays 6 plus the other board’s royalties and any fantasy-land bonus; if both foul, no one pays
The app’s showdown sheet for the reviewed heads-up hand: a scoop for 6, royalties of 7 and 2, a 10-point fantasy-land value for queens on top, and totals of +25 and −25
Inside the app · The showdown sheet for the heads-up scoop.

The recorded showdown did not load. The app’s own showdown sheet for it is shown here.

Pineapple OFC games

Classic, Progressive and Ultimate OFC

Open-Face Chinese poker (OFC) is played on three rows: three cards on top, five in the middle, five in the back. The back must be at least as strong as the middle, and the middle as the top, or the board fouls. All five games are Pineapple: five cards to start, then three a street, place two, discard one.

Classic OFC 14 cards

Classic Pineapple OFC keeps the original rule. Queens or better on top, or any trips, puts you in fantasy land with 14 cards.

  • QQ, KK, AA or trips on top: 14 cards.

Progressive OFC 14 – 16 cards

In Progressive Pineapple, the better your top row, the more cards you get: queens earn 14, kings 15, aces and trips 16.

  • QQ 14 · KK 15 · AA 16 · trips 16.
  • In OFCEdge, Progressive deals 16 cards for trips on top; the game that deals 17 is Ultimate.

Ultimate OFC 14 – 17 cards

Ultimate Pineapple goes one step further: trips on top earn 17 cards, and a stay keeps the count you earned.

  • QQ 14 · KK 15 · AA 16 · trips 17.

OFC with jokers Progressive & Ultimate

Progressive Jokers and Ultimate Jokers add two wild jokers to the deck, 54 cards in all. Fantasy land follows Progressive or Ultimate.

  • A joker plays as the card that makes your board best without fouling, even one already on the board.
  • A joker hand ties the same natural hand; there is no five of a kind.
  • Jokers count for fantasy-land entry and for staying.
Fantasy land: cards dealt by top row You stay with trips on top, or quads or better in the back, on a board that does not foul.
Top rowClassicProgressiveUltimate
QQ141414
KK141515
AA141616
Trips141617
After a stay1414same count

Specs

Every street, on your own computer

Start from any point in the hand, heads-up or three-handed, and solve for any seat. Late pulls take seconds; an opening set takes minutes.

Every street

  1. Set5 cards · place all five
  2. Street 13 cards · place 2, discard 1
  3. Street 23 cards · place 2, discard 1
  4. Street 33 cards · place 2, discard 1
  5. Street 43 cards · place 2, discard 1 · board complete
  6. Showdownrow by row · royalties · fantasy land
  7. Fantasy land14 to 17 cards at once · set 13, discard the rest

Solve times for the examples on this page Apple M2 laptop, 8 GB

  • Opening set, heads-up

    5–8 minfour complete solves, Classicfirst ranking after 1.5 to 12 seconds
  • First pull

    2 s–3 minheads-up 2 to 164 s; three-handed Progressive 51 s2.3 s against an opponent in fantasy land
  • Later pulls

    6 s or lessstreets 2, 3 and 4, heads-up and three-handedthe last pull: under a second
  • Fantasy-land hand

    2 s or less14 to 17 cards, set in full17 cards: 1.3 and 1.7 s; 14 with jokers: 0.03 s

One slow three-handed Ultimate Jokers opening took 15 to 38 minutes on a 32-core server, depending on the memory it was allowed.

How these were measured

Laptop row: an Apple M2 with 8 cores and 8 GB, running OFCEdge 0.1.7’s solver with Ranked moves on 15 November 2026: 56 complete solves, each timed from the start of the search to its final ranking. They are the examples on this page, the earlier decisions of their hands, and scouting searches whose positions are not shown. The opening sets are heads-up Classic. The first pulls are heads-up Classic (11 to 98 seconds), heads-up Ultimate with and without Simulation (2 to 164 seconds; 2.3 seconds against an opponent in fantasy land) and three-handed Progressive (51 seconds). Two searches did not finish and are not counted: a heads-up Ultimate first pull with Simulation on, stopped after four and a half minutes, and All opening sets on the Classic opening set in the examples, stopped after nine minutes with 3 of its 232 sets fully scored (screening all 232 took under a minute).

The slow opening: one three-handed Ultimate Jokers opening set, middle seat to act, Simulation off, before and after version 0.1.7.

Version and memory budgetComplete solveFirst rankingSolver threads
Before 0.1.7 (0.1.6)7.4 hoursabout 12½ minutes16
0.1.7, 24 GB15 minutes60 seconds16
0.1.7, 4 GB the default on a 16 GB computer21 minutes59 seconds16
0.1.7, 1 GB the default on an 8 GB, 8-core computer38 minutesabout 105 seconds8

These runs were on a shared 32-core Linux server with the app’s solver engine, not on a Windows PC or a Mac, measured from 12 to 14 November 2026 while another job kept the server busy, so the times are upper bounds for that machine. Read them for the size of the gain in version 0.1.7, not as times for your computer. For the same position, settings and seed, each 0.1.7 run returned the same final ranking as the version before it, bit for bit.

The memory budget is extra working memory the solver may use: by default half of your computer’s memory minus 4 GB, and never less than 1 GB. The solve needs memory of its own on top. With the 1 GB budget this opening used up to 4.4 GB, which is tight on an 8 GB computer; with the 24 GB budget it used up to 12 GB.

Covered

  • Heads-up and three-handed, in all five games
  • Any seat’s turn, from any position you set up
  • Cards entered by clicking, dragging or typing (AsKd9h)
  • Realistic mode, where only your own discards are known, or Full information, where everyone’s are
  • Fantasy-land hands of 14 to 17 cards, and opponents who are in fantasy land
  • Fantasy-land values per seat and per top row, or Simulation with a limit on consecutive stays
  • Saved runs (.ofch files) and share strings
  • Compare: pin a result and re-run a what-if with the same settings

Not covered

  • More than three players
  • Exact answers: the EVs are estimates
  • Exact future values: with Simulation on, later fantasy-land hands are valued by a model
  • House rules: notes can record them, but the scoring and fantasy-land rules do not change

Runs on

  • Windows 10 and 11, 64-bit, Intel or AMD
  • macOS on Apple silicon
  • Fits a window of 1024 × 680 or larger
  • Uses more cores and memory when your computer has them

Keeps to itself

  • The solver runs on your computer. Positions, results and saved runs stay there.
  • Works offline, with no account and no server login.
  • On Windows, a one-time activation is for one Windows account on one PC. Updates keep it; a new PC, another account or a reinstalled Windows may need a new one.
  • The activation request holds no username, password or hardware serial number.

Get OFCEdge

The whole solver, on your computer.

Every game, every search mode, play mode and fantasy-land Simulation, for Windows and Mac.

How buying works

  1. Email us at [email protected]. There is no account or registration.
  2. Get the app: the Windows installer (or a ZIP), or the Mac app.
  3. Activate on Windows: on first launch the app shows a request code. Send it to us and paste in the activation code you get back.
  4. Then play offline: after that it runs offline, with no account.

Each Windows license activates one Windows account on one PC and does not expire.

OFCEdge

$25,000 USD

One purchase · two licenses

  • All five games, heads-up and three-handed
  • Any street, any seat, with the four search modes
  • Fantasy-land Simulation, and fantasy-land hands of 14–17 cards
  • Play mode, hand review and the showdown breakdown
  • Windows 10 & 11 and macOS on Apple silicon

Questions

OFC solver FAQ

How do I buy OFCEdge? Do I need an account?

OFCEdge costs $25,000 USD for two licenses. Each license includes all five games, heads-up and three-handed. Email [email protected] to purchase. No account or registration is required, and the solver runs on your own computer.

What do I need to run it?

A Windows 10 or 11 PC (64-bit, Intel or AMD) or a Mac with Apple silicon. The Windows installer includes Microsoft WebView2 and installs it if needed; the portable ZIP needs WebView2 already installed. On an 8 GB computer a solve keeps its extra working memory to 1 GB by default, and larger machines get more. The Windows installer is not yet signed by a publisher, so Windows may show an unknown-publisher warning. The Mac app is not notarized by Apple, so the first time you open it, macOS asks you to approve it in System Settings under Privacy & Security.

How does activation work?

On Windows, the first launch shows a request code. Send it to us and you get an activation code back; paste it in and click Activate OFCEdge. The activation is for that Windows account on that PC, and after that the app works offline with no login. Updates keep your activation. A new PC, a different Windows account or a reinstalled Windows may need a new one.

How long does a solve take?

It depends on the street, the number of players, the search mode and your computer: late pulls take seconds, opening searches from a few minutes to much longer. On an Apple M2 laptop with 8 GB, in 56 complete solves with Ranked moves, a heads-up Classic opening set took 5 to 8 minutes, with the first ranking after 1.5 to 12 seconds; a first pull took 2 seconds to under 3 minutes heads-up and 51 seconds three-handed; later pulls took 6 seconds or less; and fantasy-land hands of 14 to 17 cards took 2 seconds or less. All opening sets, which scores every way to set the five, had fully scored 3 of 232 opening sets after nine minutes, so it can take hours. One slow opening, three-handed Ultimate Jokers with the middle seat to act, took 7.4 hours with the previous version. The current version took 15 minutes with a 24 GB memory budget and 21 minutes with 4 GB, both on 16 solver threads, and 38 minutes with the 1 GB budget and 8 threads that an 8 GB, 8-core computer gets by default. Those runs were on a shared 32-core Linux server, not on Windows or a Mac, and the 1 GB run used up to 4.4 GB, which is tight on an 8 GB computer.

Is it a perfect (“GTO”) solution?

No. OFCEdge ranks each placement by its EV in points, which it finds by dealing out the rest of the hand many times from the current position and scoring how each placement does. That makes the EVs estimates, not a game-theory proof. No margin of error is shown, and the progress figure shows how far the search has got, not how sure the answer is. With Simulation on, the value of later fantasy-land hands comes from a model and is an estimate too.

What is an OFC solver?

An OFC solver works out how to play a hand of Open-Face Chinese poker (OFC), here in its Pineapple form. You give OFCEdge a position: every board, the cards you have been dealt and what is known about the discards. It ranks your possible placements by EV (expected value) in points, the average number of points each one wins from here, with royalties and fantasy land counted.

Is an OFC solver the same as an OFC calculator?

Not quite. A calculator counts a hand that is already set: rows, scoops, royalties and fouls. A solver helps you decide how to set it. OFCEdge does both. Its showdown breakdown scores finished boards row by row, opponent by opponent, and a solve ranks the ways to place the cards you hold now by EV in points.

Which games does it cover?

Pineapple OFC in five games: Classic, Progressive, Progressive Jokers, Ultimate and Ultimate Jokers, heads-up or three-handed. They differ in how many cards a fantasy-land hand gets (14 to 17), what happens when you stay, and whether two wild jokers are in the deck.

Does it work three-handed and with jokers?

Yes. Every game works heads-up or three-handed, and you can solve for any seat. Three-handed, the showdown settles each matchup on its own and totals every seat. In the joker games the deck has 54 cards; a joker plays as whatever card makes the board best without fouling, and the showdown shows the card each joker played as.

Can it solve a fantasy-land hand?

Yes. Set a seat’s fantasy-land state in Simulation and give it the 14 to 17 cards. It ranks the 128 strongest arrangements it finds for setting 13 of them by EV in points, with royalties and the value of staying counted. It also solves normal hands while an opponent is in fantasy land.

How does it value fantasy land?

Two ways. With Simulation off, fantasy land is worth the points you set in Settings for each seat and top row, paid by each opponent like a royalty, and the showdown totals include it; the defaults by seat are 10 and 8 heads-up, and 11, 8 and 9 three-handed. With Simulation on, which counts the fantasy lands that follow, you set a limit on consecutive stays, or Unlimited, and each player’s current fantasy-land state. Placements are then ranked by this hand plus the fantasy-land hands and normal play that can follow, while the showdown counts only the points won in this hand. Those future values are estimates from a model, and each result names the model it used.

Can I practise with it, like an OFC trainer?

Not as a quiz. Play mode deals a full hand street by street: solve any seat’s turn, choose a placement with the ranking on screen, the best one or another, and play on to the showdown. The hand review then grades each of your streets against that ranking, showing your placement beside the best-ranked one and the points you gave up.

Can I save and share hands?

Yes. A saved run is an .ofch file holding the position, the search settings, the finished results and the hand history, so you can reopen it without solving again. A position can also be copied as a short share string, starting OFC1., and pasted into another copy of the app.

How do you get into fantasy land, and how many cards do you get?

Finish a board that does not foul with a pair of queens or better on top, or any trips. In Classic every fantasy-land hand is 14 cards. In Progressive, QQ earns 14, KK 15, and AA or trips 16. In Ultimate, QQ earns 14, KK 15, AA 16 and trips 17. Progressive Jokers and Ultimate Jokers follow Progressive and Ultimate. A fantasy-land hand gets all its cards at once: you set 13 and discard the rest.

How do you stay in fantasy land?

In every game you stay with trips on top or quads or better in the back, on a board that does not foul. Classic and Progressive then deal 14 cards again. Ultimate deals the same number you just played, so a 17-card hand that stays gets 17 again. In the joker games a joker counts toward staying.