- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
117 lines
5.0 KiB
Plaintext
117 lines
5.0 KiB
Plaintext
This is a subset of a standard blackjack game. It uses a card VBX control
|
|
to display the cards.
|
|
|
|
Objective: One player and one dealer can play this game.
|
|
The player enters amount of money
|
|
using the "Bankroll" button at the begining of the game.
|
|
After entering the bankroll amount, the player can go on
|
|
pressing "Hit" button until the score is near 21.
|
|
If the player scores more than 21, he looses.
|
|
The trick is to hit "Stand" button when the score is near 21.
|
|
After you loose or win, you can bet again using the "Bet" button.
|
|
Player plays the game until the bankroll is exhausted,
|
|
at that time he can input more money in bankroll.
|
|
|
|
|
|
Buttons Explanation
|
|
-------------------------------------------------------------------------------
|
|
|
|
Bankroll- Hit this button and enter the amount you want to play (Max 9999)
|
|
|
|
Bet - Hit this button when you want to bet part of the money from
|
|
bankroll. No letters, negative numbers are allowed in the
|
|
input dialog, it will not accept the input at all.
|
|
|
|
Play - After you hit the bet button it toggles to a 'Play' button.
|
|
Pressing this button starts the game.
|
|
At start, immediately after betting, the player and the dealer are
|
|
issued 2 cards. If any one of these hand add up to 21 the party
|
|
wins immediately. If both are 21, the game is draw.
|
|
Dealer shows only one card face up all the time, along with the
|
|
points.
|
|
|
|
Hit -Player receives one card from dealer when he hits this button. The
|
|
issued card is immediately displayed with the new total points.
|
|
At this point dealer may choose a card if his total point is less
|
|
than 17, which is not displayed as usual(dealers algorithm to hit
|
|
a card).
|
|
|
|
Stand -This button is hit when the player no longer wishes to play.
|
|
At this point dealer may deal a card to himself if his points are
|
|
less than 17. At the end dealers hand is displayed and the scores
|
|
are announced.
|
|
|
|
Help: Shows help|About dialog.
|
|
|
|
// Design Overview:
|
|
// -----------------
|
|
//
|
|
// Classes:
|
|
// ------------
|
|
// There are 2 cpp files blakjack.cpp and owlmain.cpp
|
|
// blakjack.cpp - contains the engine for the game.
|
|
// owlmain.cpp - contains the windows user interface.
|
|
// blakjack.h - contains the class declarations for the engine.
|
|
// owlmain.h - contains the class declaration for GUI interface.
|
|
// blakjack.rc - contains the dialog resources and card resources(VBX control)
|
|
|
|
// Following objects(classes) are used in this program.
|
|
// These are declared in blakjack.h
|
|
// card - The card object.
|
|
// deck (is implemented in terms of cards, 52)
|
|
// hand - state of a player, cards, points etc.
|
|
// dealer:public hand
|
|
// player:public hand
|
|
// bankroll - amount of money
|
|
// blackjack - the game.
|
|
//
|
|
// The following classes are defined in owlmain.h
|
|
// These are used to implement the User Interface.
|
|
//
|
|
// TBlackjackFrame - Used to move the frame window, in SetupWindow())
|
|
// TBlackjack - This is the dialog which displays all the buttons and
|
|
// the cards.
|
|
// TBlackjackApp - The standard OWL application object.
|
|
// MovableDialog - Is used to move the about box.
|
|
|
|
// General Concepts:
|
|
// -----------------
|
|
// First the Bankroll is entered by the user and stored in the "Bankroll"
|
|
// class. The increment and decrement of the bankroll is done by the
|
|
// member funtions in that class.
|
|
|
|
// 52 cards are "new"-ed of type "TVbxMhCardDeck" and stored in the
|
|
// array "TBlackjack::ppVBXCard[]" in the constructor of
|
|
// "TBlackjack" class.
|
|
// "TVbxMhCardDeck" type of cards are VBX controls.
|
|
// The "Card" object stores only the Suit and Number information.
|
|
// ("Card" object is defined in blakjack.h)
|
|
|
|
// When a "Card" is displayed the Suit and Number informations are
|
|
// taken from the "Card" object, the displayable VBX card is taken from
|
|
// "TBlackjack::ppVBXCard[VBXCardCount]" array. Each VBX card can have 52
|
|
// possible values. The VBX card is displayed according to the
|
|
// above Suit and Number information.
|
|
|
|
// "TBlackjack::VBXCardCount", points to the next VBX card in the
|
|
// "TBlackjack::ppVBXCard[]" array which is available.
|
|
// eg: Count 12 means, cards from ppVBXCard[0] through ppVBXCard[11]
|
|
// have already been dealt and displayed, and ppVBXCard[12] is
|
|
// the next VBX card available.
|
|
|
|
// Suffling and dealing are done using "Card" and "Deck"
|
|
// objects. "TBlackjack::ppVBXCard[]" array only holds the
|
|
// displayable VBX cards. Each "Card" object stores an
|
|
// array index of the "TBlackjack::ppVBXCard[]" array in "Card::pVBXCard"
|
|
// data member.
|
|
// The VBX card at this index( in "TBlackjack::ppVBXCard[]" array)
|
|
// is used to display that particular "Card" object.
|
|
// This keeps the engine and UI part seperate.
|
|
|
|
// Dealer is assumed to have infinite amount of money.
|
|
|
|
// The cards in a particular suit are numbered from 0 - 12
|
|
// eg: Ace->0, Two->1..., Jack->10, King->11, Queen->12
|
|
// These numbers have nothing to do with the actual blackjack
|
|
// points, it is used only to keep track of the cards.
|