Coder Social home page Coder Social logo

fitl's Introduction

Overview

This is a console application that implements the Tru'ng AI Bots for the board game Fire In The Lake, designed by Mark Herman and Volko Ruhnke and published by GMT Games. The Tru'ng Bots were designed by Bruce Mansfield.

Downloading the executable package

You can use this link to download the latest release: Version 1.18

This will download a zip file called fitl-x.x.zip (where x.x is the version number). Extracting the zip file will create a folder called fitl-x.x.

If you are upgrading to a newer version you can continue any games that you started with the previous version. To do so, simply copy the games folder below the older fitl-x.x directory to the new fitl-x.x directory.

Running the program

This is a Scala program, so you will need to have the Java JVM installed and make sure that the java command is on your PATH.

There are two scripts provided that will start the program.

fitl
A bash script used on Mac and Linux
fitl.cmd
A Windows command file

Using the program

When you first run the program, it will prompt you to enter:

  1. The scenario that you wish to play
  2. Whether or not you will be using period events.
  3. Which faction or factions will be played by human players.
  4. A name for your game so that your progress can be saved.

Your game is saved after each turn or Coup! round is completed.

The next time you run the program, it will ask if you want to resume a saved game and will list all of your saved games. You can pick one or start a new game.

Entering commands

The program does not maintain the deck of event cards. You must setup and shuffle the deck and then tell the program which card has been drawn. You will be prompted to enter a card number each time a new event card must be drawn.

The Trung deck is maintained by the program. You will see messages indicating when a Trung card is drawn but you do not need to use the physical Trung cards.

Use the help command to see all of the the available commands. You can get further help for a specific command by typing its name after help. For example for help on the show command type help show.

The show command allows you to inspect the current state of the board, game status, etc.

The history command allow you to review the log for the previous game turns. Each time the game is saved, a new entry is added to the history. With no parameters the history command will show the log for the most recent save point.

The rollback command will let you restart the game from the beginning of any turn.

When it is a Bot faction's turn to play you will use the bot command. The results of the Bot turn are displayed so that you can follow along and update your physical game board.

When it is a human faction's turn to play you will use the act command to take your turn. The program will then ask you how you wish to proceed.

During your turn you can enter abort at most prompts if you wish to cancel what you have done and start your turn over. This will take you back to the start of your turn. And any changes needed to the physical game board will be displayed so you can keep your physical board in sync with the software.

If you enter abort while you are conducting a Special Activity only the special activity is aborted. This allows you to change your mind and select another special activity, or to not perform a special activity at the current moment. Once you have backed out of the special activity, you can enter abort again to abort the entire turn.

Command Abbreviations

All commands can be shortened to the prefix of the command name that is unique. For example hi is shorthand for history.

In fact this use of abbreviated prefixes works at every prompt in the game. For example, if you are executing an operation and the software prompts you for the space in which to perform that operation you could enter sai to indicate Saigon. (You do not need to distinguish between uppercase and lowercase letters)

If you were to enter an ambiguous prefix such as quang, then the software will display a menu to allow you to clarify which space you wish to select.

'quang' is ambiguous.  Choose one:
====================================================
1) Quang Duc-Long Khanh
2) Quang Nam
3) Quang Tin-Quang Ngai
4) Quang Tri-Thua Thien
5) None of the above
----------------------------------------------------
Selection:

Also, when at a prompt, you can see all of choices that are valid for the current operation by entering a question mark ?.

For example if you are playing the VC and are prompted to select a space to Terrorize, you could enter ? and you will see a list of all valid spaces that can be terrorized by the VC faction. Then you will be prompted again to enter a space.

Terrorize which space: ?
Enter one of:
Binh Dinh, Binh Tuy-Binh Thuan, Kien Giang-An Xuyen, Kien Phong, Pleiku-Darlac, Quang Duc-Long Khanh, Tay Ninh, or abort

Terrorize which space: 

Selecting LOC's

The names of LOCs are quite long as they include all endpoints of the LOC. In the software the name of all LOCS begin with the prefix LOC

For example: LOC Ban Me Thuot -- Da Lat

Remembering and typing the entire unique prefix for an LOC would not be very easy since there are many LOCs coming out of the same endpont. So when selecting an LOC you can simply enter "LOC" as the prefix and the software will provide a menu of all LOCs that can be selected for the current game function. You can then simply enter the number next to the LOC that you wish to select.

Terrorize which space: loc

'loc' is ambiguous.  Choose one:
====================================================
1) LOC Hue -- Da Nang
2) LOC Saigon -- An Loc -- Ban Me Thuot
3) None of the above
----------------------------------------------------
Selection:

In the above example, only the LOCs with underground guerrillas are included in the list.

License

Copyright (c) 2023 Curt Sellmer

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

fitl's People

Contributors

sellmerfud avatar

Stargazers

Fabio avatar Sean Roberts avatar Michael McCarty avatar  avatar Richard Archambault avatar

Watchers

 avatar  avatar  avatar  avatar

fitl's Issues

Before asking me if I want to do my Pivotal, show me the summary

In particular, I'd like to see this part, as it will help in my decision-making:

----------------------------------------------------
Campaign       : 6th of 6  -- Final campaign
Cards/Pile     : 13
Cards drawn    : 72
Coup card      : 6th Coup! has not yet been seen
Coup chance    : 16.67%  (6 cards remaining in 6th pile of 13)
----------------------------------------------------
Human Victory  : Not allowed until final Coup! round

ARVN did 2 different Specials in 1 turn

US Short.zip

I don't think they were allowed to do this!

  1. Govern special in 2 spaces
  2. Patrol Op - skipped as not effective
  3. Transport special to go along with patrol
  4. Train Op
>>> ARVN turn <<<
====================================================
Current card  : #73 - Great Society (ARVN, NVA, US, VC)
Eligible      : ARVN, VC
Acted         : none
Passed        : none
Ineligible    : NVA, US
(bot or ?): bot

Drawing Trung Card for ARVN
----------------------------------------------------
Trung: ARVN - K
Trung check: Support + Available >= 42? [Yes]

ARVN chooses Govern special activity
====================================================

ARVN Governs in Binh Dinh (population: 2)
----------------------------------------------------
Transfer population value from Aid to Patronage
Decrease US Aid by -2 to 5
Increase Patronage by +2 to 19
Flip Active Support marker in Binh Dinh to Passive Support

Score Marker Changes
----------------------------------------------------
Move the 'Support + Avail US' marker from 47 to 45
Move the 'COIN Control + Patronage' marker from 42 to 44

>>>>> [ Press Enter to continue... ] <<<<<

ARVN Governs in Quang Tin-Quang Ngai (population: 2)
----------------------------------------------------
Transfer population value from Aid to Patronage
Decrease US Aid by -2 to 3
Increase Patronage by +2 to 21
Flip Active Support marker in Quang Tin-Quang Ngai to Passive Support

Score Marker Changes
----------------------------------------------------
Move the 'Support + Avail US' marker from 45 to 43
Move the 'COIN Control + Patronage' marker from 44 to 46

>>>>> [ Press Enter to continue... ] <<<<<

----------------------------------------------------
End of ARVN Govern activity

ARVN chooses Patrol operation
====================================================
Decrease ARVN resources by -3 to 26

ARVN Patrol - Activating guerrillas on LOCs
----------------------------------------------------
No guerrillas are activated

Skipping ARVN Patrol as it would not be effective
----------------------------------------------------
Increase ARVN resources by +3 to 29

Drawing Trung Card for ARVN
----------------------------------------------------
Trung: ARVN - H
Trung check: 5+ ARVN Troops + Rangers in any one space? [Yes]

ARVN chooses Transport special activity
====================================================

ARVN selects Kien Phong as Transport destination
----------------------------------------------------
Move 3 ARVN Troops from Saigon to Kien Phong

Control Changes
----------------------------------------------------
Place COIN Control marker in Kien Phong

Score Marker Changes
----------------------------------------------------
Move the 'COIN Control + Patronage' marker from 46 to 48

>>>>> [ Press Enter to continue... ] <<<<<

ARVN selects Tay Ninh as Transport destination
----------------------------------------------------
Move 3 ARVN Troops from Saigon to Tay Ninh

>>>>> [ Press Enter to continue... ] <<<<<

Flip all Rangers underground
----------------------------------------------------
There are no Active Rangers on the map

----------------------------------------------------
End of ARVN Transport activity
Trung check: ARVN Assault would add COIN Control? [No]
Trung check: ARVN Assault would unblock LoC route between Can Tho and Hue? [No]

Trung card flipped to its back side
----------------------------------------------------
Trung: ARVN - HH
Trung check: 3d6 <= Available ARVN pieces (15): 15 [Yes]

ARVN chooses Train operation
====================================================

ARVN selects Saigon for Train
----------------------------------------------------
Decrease ARVN resources by -3 to 26
Place 3 ARVN Troops from AVAILABLE into Saigon
Place 3 ARVN Police from AVAILABLE into Saigon

>>>>> [ Press Enter to continue... ] <<<<<

ARVN activation roll against activation number of 3
----------------------------------------------------
Die roll: 4 [Success!]

ARVN selects Hue for Train
----------------------------------------------------
Decrease ARVN resources by -3 to 23
Place 3 ARVN Troops from AVAILABLE into Hue
Place 3 ARVN Police from AVAILABLE into Hue

>>>>> [ Press Enter to continue... ] <<<<<

ARVN will place a base in Quang Tin-Quang Ngai
----------------------------------------------------
Decrease ARVN resources by -3 to 20
Remove 3 ARVN Police from Quang Tin-Quang Ngai to AVAILABLE
Place 1 ARVN Base from AVAILABLE into Quang Tin-Quang Ngai

Move the ARVN cylinder to the Op/Special Activity box

Finished with ARVN turn


>>> VC turn <<<
====================================================
Current card  : #73 - Great Society (ARVN, NVA, US, VC)
Eligible      : VC
Acted         : ARVN -> Op/Special Activity
Passed        : none
Ineligible    : NVA, US
(bot or ?): quit

When Moving pieces, limit selection to what is actually movable

After issue #17 I decided to adjust and move my pieces. Even though I only have Underground VC and a base, I was given more options. Maybe limit it to only what's there, and include an "All" choice"? Though I get it, you're giving me more options to save a step later. Not sure this is the best place for that kind of efficiency, though.

Improve display of game state differences.

After aborting a turn or rolling back to a previous turn, we display the differences in the board state so the user can reset their physical board.

Instead of showing only the new state of each space we should first provide instructions on which pieces to remove to available, then provide instructions on which pieces should be placed in each space so that the physical board matches the game state that we have roll back to.

US did 2 specials in 1 turn

Similar to #14. US did an Airlift, and then an Advise, after discounting a Patrol.

Same log as #15 but uploading it here for reference anyway.

I'll wait for the fix before Rolling back and continuing to play! No rush :)

VC Long.zip

The game does not handle every faction being ineligible.

US and ARVn were already ineligible. VC 1st, NVA 2nd eligible. Card in play: # 67 (Amphib Landing). VC did Op+SA, and to test the program, I did Event.

NVA executes the Shaded Event: Amphib Landing
----------------------------------------------------
VC chooses to not relocate any pieces

US is ineligible through the next card

ARVN is ineligible through the next card

Finished with NVA turn

Adjust eligiblity
----------------------------------------------------
Move the VC and NVA cylinders to the Ineligible box

Draw event card
----------------------------------------------------
Enter the number of the next On Deck Event card: 108

Current card: #90 - Walt Rostow
On Deck card: #108 - Draft Dodgers
Exception in thread "main" java.util.NoSuchElementException: None.get
	at scala.None$.get(Option.scala:627)
	at scala.None$.get(Option.scala:626)
	at fitl.FireInTheLake$.processActorCommand(FireInTheLake.scala:3653)
	at fitl.FireInTheLake$.mainLoop(FireInTheLake.scala:3822)
	at fitl.FireInTheLake$.main(FireInTheLake.scala:2633)
	at fitl.FireInTheLake.main(FireInTheLake.scala)

I'm attaching the save game, and will avoid doing the event when I replay this turn. ;)
NVA - Long game - Amphib Landing.zip

Card #116 - Cadres (Shaded text) used twice in one turn

My understanding of the shaded text (and confirmed by this thread) is that the Agitation can only happen in 1 space per turn. However, I just had it happen twice. (I will adjust the 2nd one back to what it was):

>>> VC turn <<<
====================================================
Current card  : #98 - Long Tan (VC, US, ARVN, NVA)
Eligible      : VC, US, ARVN, NVA
Acted         : none
Passed        : none
Ineligible    : none
(bot or ?): bot

Drawing Trung Card for VC
----------------------------------------------------
Trung: VC - V
Trung check: Underground VC Guerrillas in space not at Active Opposition? [Yes]
Trung check: 3d6 <= Available VC pieces (23): 10 [Yes]

VC chooses Rally operation
====================================================

VC selects Quang Tri-Thua Thien for Rally
----------------------------------------------------
Place 3 VC Underground Guerrillas from AVAILABLE into Quang Tri-Thua Thien

VC Agitates 1 level in Quang Tri-Thua Thien [#116 Cadres (shaded)]
----------------------------------------------------
Flip Passive Opposition marker in Quang Tri-Thua Thien to Active Opposition
Decrease Agitate Total by -1 to 7

Score Marker Changes
----------------------------------------------------
Move the 'Total Opposition + VC Bases' marker from 30 to 32

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 6 [Success!]

VC selects Binh Dinh for Rally
----------------------------------------------------
Place 4 VC Underground Guerrillas from AVAILABLE into Binh Dinh

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 5 [Success!]

VC selects Quang Tin Quang Ngai for Rally
----------------------------------------------------
Place 3 VC Underground Guerrillas from AVAILABLE into Quang Tin Quang Ngai

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 3 [Success!]

VC selects Tay Ninh for Rally
----------------------------------------------------
Place 3 VC Underground Guerrillas from AVAILABLE into Tay Ninh

VC Agitates 1 level in Tay Ninh [#116 Cadres (shaded)]
----------------------------------------------------
Flip Passive Opposition marker in Tay Ninh to Active Opposition
Decrease Agitate Total by -1 to 6

Score Marker Changes
----------------------------------------------------
Move the 'Total Opposition + VC Bases' marker from 32 to 34

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 3 [Success!]

VC selects Kien Phong for Rally
----------------------------------------------------
Place 1 VC Underground Guerrilla from AVAILABLE into Kien Phong

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 5 [Success!]

VC selects Kien Giang-An Xuyen for Rally
----------------------------------------------------
Place 1 VC Underground Guerrilla from AVAILABLE into Kien Giang-An Xuyen

>>>>> [ Press Enter to continue... ] <<<<<

VC activation roll against activation number of 2
----------------------------------------------------
Die roll: 1 [Failure]

Move the VC cylinder to the Op Only box

Finished with VC turn

Crash with ARVN bot

ARVN turn <<<
====================================================
Current card : #87 - Nguyen Chanh Thi (ARVN, VC, NVA, US)
ARVN -> (Critical, Shaded), US -> (Critical, Unshaded)
On Deck card : #105 - Rural Pressure (VC, NVA, US, ARVN)
US -> (Critical, Unshaded), ARVN -> (Critical, Shaded)
Eligible : ARVN, US
Acted : none
Passed : none
Ineligible : VC, NVA
(bot or ?):

When bot is selected the program crash. Bug?

Identify upcoming Critical events

Not sure the best way to implement this, but when I play using the physical cards and charts, I definitely check the event list to see if the bot will play the critical event or not on the next card, and that informs my decisions. I don't want to overload the information display on every turn though. This issue is intended to spark a conversation and maybe your imagination on how you might want to do this (if you want to do this!).

US Card BB - "Trung check: All LOC routes from Can Tho to Hue blocked and Shaded M48 not in effect?"

In my game, I get:

Trung check: All LOC routes from Can Tho to Hue blocked and Shaded M48 not in effect? [Yes]

But... I have no-one at all on any LoCs on the whole map. So the answer here should have no [No] then, right? Or am I misunderstanding this card?


After looking at the "Important Terms" in the rules, it says:

Blocked LoC Route (from Can Tho to Hue)
A blocked LoC route is any continuous chain of adjacent
LoCs and Cities where any LoC or City in the chain has
enemy pieces.

In my case, Saigon has 1 enemy piece, and therefore it is "Blocked" and the correct answer is [Yes]. I will submit then close this Issue just in case someone else comes across this one day and makes the same mistake I did.

Card #80 - Light at the end of the tunnel - no Support change indicated

ARVN executes the Event: Light at the End of the Tunnel
----------------------------------------------------
Remove 1 US Troop from Phu Bon-Phu Yen to AVAILABLE
Remove 1 US Troop from Phu Bon-Phu Yen to AVAILABLE
Remove 1 US Troop from Kien Giang-An Xuyen to AVAILABLE

Increase Patronage by +6 to 17

Flip Active Support marker in An Loc to Passive Support
Flip Active Support marker in Qui Nhon to Passive Support
Flip Active Support marker in Khanh Hoa to Passive Support

Place 10 NVA Troops from AVAILABLE into North Vietnam

Score Marker Changes
----------------------------------------------------
Move the 'COIN Control + Patronage' marker from 32 to 38

ARVN will remain eligible for the next card

Move the ARVN cylinder to the Event box

Finished with ARVN turn

No mention of changing the Support + Avail marker.

Can't adjust NVA tunneled bases

I imagine this won't come up very often, but I wanted to Infiltrate the VC Tunneled Base but instead I chose the regular base (because of the order of questions here):

----------------------------------------------------
Select 1 piece among the following:
  3 VC Active Guerrillas, 1 VC Base, 1 VC Tunneled Base

How many VC Bases (0 - 1): 1
Remove 1 VC Base from Tay Ninh to AVAILABLE

I realized after that I should have put 0 as response, and (I presume) the next question would have been "How many VC Tunneled Bases (0-1)". In any case, I figured it was no big deal, I would simply adjust afterwards. However, when I tried to adjust it, I couldn't.

Pieces in Tay Ninh
----------------------------------------------------
3 US Troops, 4 ARVN Troops, 6 NVA Troops, 1 NVA Underground Guerrilla, 
2 NVA Active Guerrillas, 1 NVA Base, 3 VC Active Guerrillas, 
1 VC Tunneled Base

Available Pieces
----------------------------------------------------
6 US Troops, 1 ARVN Base, 21 NVA Troops, 4 NVA Underground Guerrillas, 
3 VC Underground Guerrillas, 1 VC Base

Select type of piece to adjust:
====================================================
 1) US Troops
 2) ARVN Troops
 3) NVA Troops
 4) NVA Underground Guerrillas
 5) NVA Active Guerrillas
 6) NVA Bases
 7) VC Underground Guerrillas
 8) VC Active Guerrillas
 9) VC Tunneled Bases
10) Finished adjusting pieces in Tay Ninh
----------------------------------------------------
Selection: 

I would expect there to be an option for NVA tunneled bases since, although rare, it is possible to make them tunneled (such as with infiltrating an already-tunneled VC base). I consider this a bug and not an enhancement, since it's something that's missing.

Pivotal Events handled?

Speaking of Pivotal Events (see #7), the VC could have attempted the die roll to play it's pivotal (it's been 2nd Eligible a few times while it has >20 VC on the map), yet I haven't seen any mention of it. Does it need to be 1st Eligible in order to do the die roll? Or is it happening in the background and now being displayed? So far it's the only faction whose Pivotal has been Playable, and it's never been 1st Eligible in the time it's been Playable, so maybe that's the factor I'm missing?

Card Amphib Landing: couldn't say where I was relocating my pieces

As you can see, I said I wanted to relocate 3 out of the space, but I was not given an opportunity to say where I wanted them after. As per the Plabook:

The named Faction decides where to relocate its pieces (VC to any map spaces). “Pieces” includes Bases.

VC executes the Shaded Event: Amphib Landing
----------------------------------------------------
VC relocates up to 3 pieces out of a coastal space

Relocate VC pieces from which space:
====================================================
 1) Hue
 2) Saigon
 3) Ba Xuyen
 4) Binh Dinh
 5) Binh Tuy-Binh Thuan
 6) Kien Giang-An Xuyen
 7) Phu Bon-Phu Yen
 8) Quang Nam
 9) Quang Tin-Quang Ngai
10) Quang Tri-Thua Thien
11) Do not relocate any VC pieces
----------------------------------------------------
Selection: 5
Relocate how many pieces out of Binh Tuy-Binh Thuan (0 - 3): 3

US is ineligible through the next card

ARVN is ineligible through the next card

Finished with VC turn

Adjust eligiblity
----------------------------------------------------
Move the NVA cylinder to the Eligible box
Move the ARVN and VC cylinders to the Ineligible box

Draw event card
----------------------------------------------------
Enter the number of the next On Deck Event card: 

Game stalled

Since the turn isn't over (and it was a heft turn; I played Easter Offensive), I don't have a Zip of the saved game to send you. The game has just stalled.

>>> US turn <<<
====================================================
Current card  : #122 - Easter Offensive (NVA, VC, ARVN, US)
Eligible      : US
Acted         : NVA -> Event
Passed        : none
Ineligible    : VC, ARVN
(bot or ?): bot

Drawing Trung Card for US
----------------------------------------------------
Trung: US - D
Trung check: 2 or more spaces with Support and Underground Guerrillas? [No]

Drawing Trung Card for US
----------------------------------------------------
Trung: US - E
Trung check: US pieces in any space with vulnerable enemies? [Yes]
Trung check: US pieces in space with 4+ NVA Troops or vulnerable Base? [Yes]

US chooses Assault operation
====================================================

US assaults in Kien Hoa-Vinh Binh
----------------------------------------------------
The assault inflicts 8 hits

Remove 1 VC Active Guerrilla from Kien Hoa-Vinh Binh to AVAILABLE

>>>>> [ Press Enter to continue... ] <<<<<
Trung check: Any space were COIN FP < NVA Troops where US Troops or US Base? [Yes]

US chooses Air Lift special activity
====================================================

US selects Saigon as Air Lift destination
----------------------------------------------------
Move 1 US Troop from Kien Hoa-Vinh Binh to Saigon

>>>>> [ Press Enter to continue... ] <<<<<

US selects Quang Tri-Thua Thien as Air Lift destination
----------------------------------------------------
Move 2 US Troops from Kien Hoa-Vinh Binh to Quang Tri-Thua Thien





The empty space at the end is me just pressing Enter a few times to see if anything happens. Nothing did. What should I do? Quit Terminal and start the game again? Not that big a deal to do so. Or is there anything else I can try? Leaving it as is for now.

Occasional Duplicate "Press enter to continue"

VC Long.zip

See the ARVN turn on the first card:

Leader: Duong Van Minh effect triggers
----------------------------------------------------
Increase US Aid by +5 to 20

>>>>> [ Press Enter to continue... ] <<<<<

>>>>> [ Press Enter to continue... ] <<<<<

ARVN executes 2nd of 2 Limited Operations

This duplication happened twice. I had to hit Enter twice.

When selecting Special Activity, offer option to change selection if possible

In this case, once the program confirmed that there was only 1 space that I could Bombard, I didn't have a way of going back to the "Choose special activity:" step. I changed my mind and wanted to Infiltrate instead. The program should have an easy way to back out of this choice that doesn't involve a full rollback to the start of the turn.

Choose special activity:

  1. Infiltrate
  2. Bombard
  3. Do not perform a Special Activity now

Selection: 2

NVA chooses Bombard special activity

0 spaces of 2 selected for Bombard

Choose 1st space to Bombard:

  1. Quang Tri-Thua Thien
  2. Finished with Bombard special activity

Selection: 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.