Here's a simple implementation of a text-based strategy game called "State of War" in Python. This game involves resource management and strategic decisions to defend your state.

import random
class StateOfWar:
def __init__(self):
self.gold = 100
self.food = 100
self.military = 50
self.turn = 0
self.max_turns = 10
self.events = [
{"name": "Trade Boom", "gold": 30, "food": 0, "military": 0},
{"name": "Drought", "gold": 0, "food": -40, "military": 0},
{"name": "Enemy Raid", "gold": -20, "food": -10, "military": -15},
{"name": "Harvest Festival", "gold": 0, "food": 30, "military": 0},
{"name": "Recruitment Drive", "gold": -20, "food": 0, "military": 30},
{"name": "Corruption Scandal", "gold": -30, "food": 0, "military": 0},
{"name": "Alliance Aid", "gold": 20, "food": 20, "military": 0},
{"name": "Rebellion", "gold": -15, "food": -15, "military": -20}
]
def display_status(self):
print("\n=== STATE STATUS ===")
print(f"Turn: {self.turn}/{self.max_turns}")
print(f"Gold: {self.gold}")
print(f"Food: {self.food}")
print(f"Military: {self.military}")
print("====================")
def allocate_resources(self):
print("\n--- Allocate Resources ---")
print("You have resources to allocate (total must be 100):")
while True:
try:
defense = int(input("Defense (Military): "))
economy = int(input("Economy (Gold/Food): "))
welfare = int(input("Welfare (Food): "))
if defense + economy + welfare != 100:
print("Total allocation must be 100!")
continue
self.military += defense
self.gold += economy
self.food += welfare
break
except ValueError:
print("Please enter valid numbers!")
def random_event(self):
event = random.choice(self.events)
print(f"\nEVENT: {event['name']}")
self.gold += event['gold']
self.food += event['food']
self.military += event['military']
# Clamp resources at 0
self.gold = max(0, self.gold)
self.food = max(0, self.food)
self.military = max(0, self.military)
def check_loss(self):
if self.gold <= 0 or self.food <= 0 or self.military <= 0:
print("\n*** STATE COLLAPSED! ***")
print("Your state has fallen due to resource depletion.")
return True
return False
def play(self):
print("=== STATE OF WAR ===")
print("Defend your state for 10 turns through strategic resource allocation!")
while self.turn < self.max_turns:
self.turn += 1
self.display_status()
self.allocate_resources()
if self.check_loss():
break
self.random_event()
if self.check_loss():
break
if self.turn >= self.max_turns:
print("\n*** VICTORY! ***")
print("You successfully defended your state for 10 turns!")
print("\nFinal State Status:")
self.display_status()
if __name__ == "__main__":
game = StateOfWar()
game.play()
How to Play:
-
Resource Allocation: Each turn, allocate 100 resources among:

- Defense (increases military)
- Economy (increases gold)
- Welfare (increases food)
-
Random Events: After allocation, random events occur that can increase or decrease resources.

-
Victory Condition: Survive all 10 turns without any resource dropping to 0 or below.
-
Loss Condition: If any resource (Gold, Food, or Military) reaches 0, your state collapses.
Game Features:
- Resource management system
- Strategic decision-making
- Random events affecting gameplay
- Turn-based gameplay
- Victory/loss conditions
Installation:
No installation required! This game uses only Python's built-in libraries. Just save the code to a file (e.g., state_of_war.py) and run:
python state_of_war.py
Notes:
- This is a text-based game with no graphics
- Resources can't go below 0 (negative values are clamped to 0)
- Events are randomly selected each turn
- The game lasts exactly 10 turns (can be modified by changing
max_turns)
Enjoy defending your state! 🏛️⚔️