' ****** START INCLUDE Blitkrieg Stratagem Icons ******
BigGun:
DATA "BIG GUNS"
DATA "...............................................................X"
DATA "....................X......XXX....XXX....XXXX...XXXX....XXX....."
DATA "......XX.....XXX......XX.....XXX.....XXX.XXXXXXX................"
DATA "XX......X.XXX....XXXXX...XXXXX...XXXXX..X.XXX..................."
CounterAttack:
DATA "COUNTERATTACK"
DATA ".......................X.......X.....X.X....XX.X...XXX.X..XXXX.X"
DATA "........................X.......XX......XXX.....XXXX....XXXXX..."
DATA ".XXXXX.X..XXXX.X...XXX.X....XX.X.....X.X.......X.......X........"
DATA "XXXXXX..XXXXX...XXXX....XXX.....XX......X......................."
EconomicWarfare:
DATA "ECONOMIC WARFARE"
DATA "..............XX.........XX.XX.....XX......XX......XX..X...XX..."
DATA ".........XX.....XX......XX......XX......XX.X....XX..X...X...X..."
DATA "..XXX......X...X......XX.....XXX.....X.X....XXXX....XXXX........"
DATA "....X.....X.X....XX.X...XXXXXX..X.XX.X..XXXXXX..XXXXXX.........."
ForTheGlory:
DATA "FOR THE GLORY"
DATA "......................XX...XXXXX...XXXXX...XXXXX...XXXXX...XXXXX"
DATA "................XX......XXXXX...XXXXX...XXXXX...XXXXX...XXXXX..."
DATA "...XXXXX....XXXX....XXXX.....XXX......XX.......X................"
DATA "XXXXX...XXXX....XXXX....XXX.....XX......X......................."
RapidDeployment:
DATA "RAPID DEPLOYMENT"
DATA ".............XXX......XX......X.......X.......X.......X.......X."
DATA "........XXXXX...XXXXXX..XXXXX.X..XXX..X...X...X..X.X..X.X...X.X."
DATA ".............XX....XXXX.....XXX....X.X....X.X......X............"
DATA ".....XX.XXXXXXX.......X........................................."
ResearchAndDevelopment:
DATA "RESEARCH & DEVELOPMENT"
DATA ".........X.XXXX...XXXXXX.XXX..XX.XX....X.XX....X.XXX..XX..XXXXXX"
DATA "........X...............X.......X.......X.......X..............."
DATA ".X.XXXX...........X...X....XXX.....X.X.....XXX....X...X........."
DATA "X.XXX.X..XXXXX..XX...XX.XX...XX.XX...XX..XXXXX..X.XXX.X........."
Secure:
DATA "SECURE"
DATA ".........X...XXX..X.X......X......X.X.XX.X...X...X..X.X..X..X..X"
DATA "........XXX...X....X.X......X...XX.X.X....X...X..X.X..X.X..X..X."
DATA ".X..X..X.X..X.X..X...X....X.X.XX...X......X.X....X...XXX........"
DATA "X..X..X..X.X..X...X...X.XX.X.X......X......X.X..XXX...X........."
SteamRoll:
DATA "STEAMROLL"
DATA "......X.......XX......XX...XXXXX..XXXXXX.XXXXXXX.XXXX.XX.XXX..XX"
DATA "................X.......XX......XXX.....XX......X...XXX.....XXX."
DATA ".XXX..X..XXX.....XXXX....XXXXXXX..XXXXXX...XXXXX................"
DATA "....XXX.....XXX....XXXX.XXXXXXX.XXXXXX..XXXXX..................."
' ****** END INCLUDE Blitkrieg Stratagem Icons ******
' Program by Charlie Veniot
' for solo players of Paulo Mori's
' Blitzkrieg! World War Two In 20 Minutes
'
' This program randomly chooses a strategem
' for the A.I. Bot player's next turn.
'
' Each turn, the Bot will use a random
' 1 out of 8 available stratagems. However:
' On the Bot's turn, the last stratagem used
' is not available for the current turn.
' i.e. a specific stratagem cannot be used in
' back-to-back turns. UNLESS this turn's
' stratagem = 8 (Repeat Last Stratagem)
'
' For the A.I. Bot's first turn, stratagem "8"
' (Steamroll = repeat last stratagem)
' is not available
_TITLE "BSC"
' 🟠🟠🟠 Declarations
CONST stratagem$(1 TO 8) = {"BigGun","CounterAttack","EconomicWarfare", "ForTheGlory", _
"RapidDeployment","ResearchAndDevelopment","Secure","SteamRoll"}
DIM stratagemCount%( 1 TO 8 )
VAR allStratagems$ = "12345678"
lastStratagem$ = "8"
remainingStratagems$ = REPLACE$( allStratagems$, lastStratagem$, "" )
playedStratagems$ = ""
nTurnCount% = 0
DECLARE SUB PrintStratagem( id%, row%, col%, tfTitle%, tfEnabled% )
' 🟠🟠🟠 Main program
GOSUB A100_💦ShowSplashScreen1
GOSUB A200_💦ShowSplashScreen2
SCREEN _NEWIMAGE(252,240,14)
🏁🏁🏁LoopStart🏁🏁🏁:
PRINT
newStratagem$ = MID$( remainingStratagems$, INT( RND * 7 ) + 1, 1 )
COLOR 7
PRINT " Last Turn: Played Stratagem " + lastStratagem$ : PRINT
CALL PrintStratagem( [lastStratagem$], CSRLIN, 6, TRUE, FALSE )
PRINT : PRINT
PRINT " This Turn: Drew Stratagem " + newStratagem$ : PRINT
CALL PrintStratagem( [newStratagem$], CSRLIN, 6, TRUE, FALSE )
PRINT : PRINT : PRINT
COLOR 63
PRINT " This Turn: " + IFF( newStratagem$ = "8", "REPLAY Stratagem " + lastStratagem$, "Play Stratagem " + newStratagem$ )
LET stratagemCount%(newStratagem$) = stratagemCount%(newStratagem$) + 1
nTurnCount% = nTurnCount% + 1
playedStratagems$ = playedStratagems$ + RIGHT$( " " + STR$( nTurnCount% ), 4) + " " + stratagem$( newStratagem$ )
IF newStratagem$ = "8" _
THEN LET stratagemCount%(lastStratagem$) = stratagemCount%(lastStratagem$) + 1 _
playedStratagems$ = playedStratagems$ + " (" + stratagem$( lastStratagem$ ) + ")"
LET playedStratagems$ = playedStratagems$ + "\n"
PRINT
CALL PrintStratagem( IFF( newStratagem$ = "8", lastStratagem$, newStratagem$ ), CSRLIN, 6, TRUE, TRUE )
PRINT : PRINT : PRINT
LINE (0,87) TO (XMAX,136), ,B : LINE (2,89) TO (XMAX-2,134), ,B
LET remainingStratagems$ = REPLACE$( allStratagems$, newStratagem$, "" )
COLOR 7
PRINT " Available Next Turn: " + remainingStratagems$ : PRINT
LET row% = CSRLIN : col% = 6
FOR i% = 1 TO 8
LET thisStrategem$ = MID$(allStratagems$,i%,1)
COLOR IFF( INSTR( remainingStratagems$, thisStrategem$ ) = 0, 7, 63)
CALL PrintStratagem( [thisStrategem$], [row%], [col%], FALSE, FALSE )
COLOR 7
LOCATE row% + 2, col% : PRINT RIGHT$(" " + stratagemCount%(i%),2);
LET col% = col% + 3
NEXT i%
COLOR 7
LOCATE row% + 2, 1
PRINT " Cnt:"; : PRINT : PRINT
PRINT " Click/Touch:" : PRINT
COLOR 54
LOCATE CSRLIN, 4 : PRINT " NEXT COPY"
PRINT " AI Bot Turn Stats"
PRINT " turn to Clipboard";
LINE (20,205) TO (106,235), ,B : LINE (116,205) TO (219,235), ,B
LET lastStratagem$ = newStratagem$
⏲WaitForUserInput:
SLEEP 0.01
IF _MOUSEBUTTON THEN
LET nowMouseX% = _MOUSEX : nowMouseY% = _MOUSEY
WHILE _MOUSEBUTTON : WEND
IF BETWEEN( nowMouseX%, 20, 106 ) AND BETWEEN( nowMouseY%, 205, 235 ) THEN CLS : GOTO 🏁🏁🏁LoopStart🏁🏁🏁
IF BETWEEN( nowMouseX%, 116, 219 ) AND BETWEEN( nowMouseY%, 205, 235 ) THEN GOSUB C100_📋CopyStatsToClipboard
END IF
GOTO ⏲WaitForUserInput
END
' 🟠🟠🟠 SUB and GOSUB Routines
SUB PrintStratagem( id%, row%, col%, tfTitle%, tfEnabled% )
DIM holdBg% = _BACKGROUND
DIM t$, d1$, d2$, d3$, d4$
RESTORE (stratagem$(id%))
READ t$, d1$, d2$, d3$, d4$
LETCHR$(1, d1$) : LETCHR$(2, d2$) : LETCHR$(3, d3$) : LETCHR$(4, d4$)
COLOR , IFF( tfEnabled%, 60, 56 )
LOCATE row%, col% : PRINT CHR$(1) + CHR$(2);
LOCATE row% + 1, col% : PRINT CHR$(3) + CHR$(4);
COLOR , holdBg% : IF tfTitle% THEN LOCATE row% + 1, col% + 3 : PRINT t$;
END SUB
A100_💦ShowSplashScreen1:
SCREEN _NEWIMAGE(392,176,14)
PRINT
PRINT REPLACE$(" -−-−-−-−-Blitzkrieg Stratagem Chooser", "-", " ")
PRINT REPLACE$(" -−-−-−-−-−-−-−-by Charlie Veniot", "-", " ") : PRINT
PRINT REPLACE$(" -−-−-−-A helper program for solo play of", "-", " ")
PRINT REPLACE$(" -−-−Blitzkrieg! World War Two in 20 Minutes", "-", " ")
LINE (2,2) TO (XMAX,56), ,B : LINE (5,4) TO (XMAX-2,54), ,B
PRINT : PRINT : PRINT
PRINT " This program will randomly choose a stratagem"
PRINT " from the available pool of stratagems, for the"
PRINT " A.I. Bot's next turn." : PRINT
PRINT " A stratagem is selected immediately when this
PRINT " program starts. Click/touch the screen to "
PRINT " generate the stratagem for the A.I. Bot's next"
PRINT " turn." : PRINT
PRINT " The program keeps a count of chosen stratagems." : PRINT
COLOR 62
PRINT " Click/Touch the screen to continue."
SLEEP
RETURN
A200_💦ShowSplashScreen2:
SCREEN _NEWIMAGE(376,144,14)
COLOR 63 : PRINT
PRINT " About the game" : PRINT
PRINT " BLITKRIEG!"
PRINT " World War Two in 20 Minutes" : PRINT
PRINT " Designer: Paolo Mori" : PRINT
PRINT " Solo Designers: Nick Shaw, David Turczi" : PRINT
PRINT " Artists: Alan D'Amico, Paolo Mori, Paul Sizer" : PRINT
PRINT " Publishers: PSC Games, Banana Games,"
PRINT " Giochix.it, Maldito Games,"
PRINT " Matagot, Schwerkraft-Verlag" : PRINT
COLOR 62 : PRINT " Click/Touch the screen to start the program."
SLEEP
RETURN
C100_📋CopyStatsToClipboard:
LET temp$ = ""
FOR i% = 1 TO 8
LET temp$ = temp$ + "\n " + stratagem$(i%) + ": " + stratagemCount%(i%)
NEXT i%
SetClipboardText( "Statistics:" + temp$ + "\n\n" _
+ "Turn Stratagem" + "\n" _
+ "-−-− -−-−-−-−-" + "\n" _
+ playedStratagems$ )
ALERT("Game Stats Copied to Clipboard")
RETURN