Eli's home
Anonymous
plain_text
09/02/2026 4:00 PM
8.2 KB
2
Indexable
import time
import random
import sys
import os
def clear_screen():
os.system('cls' if os.name == 'nt' else 'clear')
class FnafGame:
def __init__(self):
# Game State Variables
self.hour = 12
self.power = 100.0
self.time_elapsed = 0
self.game_over = False
self.victory = False
# Security Office Controls
self.left_door_closed = False
self.right_door_closed = False
# Animatronic Location Tracking
# Stages: 0 (Stage), 1 (Hallway), 2 (Outside Left Door), 3 (Outside Right Door)
self.bonnie_pos = 0
self.chica_pos = 0
# AI Difficulty Levels (1-20 scale)
self.bonnie_ai = 4
self.chica_ai = 3
def get_power_drain(self):
# Base drain + extra drain for closed doors
drain = 0.1
if self.left_door_closed: drain += 0.25
if self.right_door_closed: drain += 0.25
return drain
def move_animatronics(self):
# Bonnie movement cycle (Prefers Left Door)
if random.randint(1, 20) <= self.bonnie_ai:
if self.bonnie_pos == 0:
self.bonnie_pos = 1
elif self.bonnie_pos == 1:
self.bonnie_pos = 2 if random.random() < 0.7 else 0
elif self.bonnie_pos == 2 and not self.left_door_closed:
self.game_over = True # Jumpscare!
# Chica movement cycle (Prefers Right Door)
if random.randint(1, 20) <= self.chica_ai:
if self.chica_pos == 0:
self.chica_pos = 1
elif self.chica_pos == 1:
self.chica_pos = 3 if random.random() < 0.7 else 0
elif self.chica_pos == 3 and not self.right_door_closed:
self.game_over = True # Jumpscare!
# Reset them if doors successfully blocked them
if self.bonnie_pos == 2 and self.left_door_closed:
if random.random() < 0.4: self.bonnie_pos = 0
if self.chica_pos == 3 and self.right_door_closed:
if random.random() < 0.4: self.chica_pos = 0
def display_cameras(self):
clear_screen()
print("=== SECURITY CAMERA FEED ===")
print(f"CAM 1A (Show Stage): {'Bonnie & Chica present' if self.bonnie_pos == 0 and self.chica_pos == 0 else 'Bonnie present' if self.bonnie_pos == 0 else 'Chica present' if self.chica_pos == 0 else 'Empty'}")
print(f"CAM 2A (West Hallway): {'Static/Footsteps heard' if self.bonnie_pos == 1 else 'Clear'}")
print(f"CAM 3A (East Hallway): {'Static/Kitchen pots clanging' if self.chica_pos == 1 else 'Clear'}")
print("============================")
input("\nPress Enter to lower camera monitor...")
def run(self):
clear_screen()
print("Welcome to your new summer job at Freddy's.")
print("Survive from 12 AM to 6 AM.\n")
print("Controls: \n[L] Toggle Left Door \n[R] Toggle Right Door \n[C] Check Cameras \n[Skip/Enter] Do Nothing\n")
input("Press Enter to start Night 1...")
# Main loop representing ticks of time
while not self.game_over and not self.victory:
self.time_elapsed += 1
# Clock handling (Each hour takes roughly 15-20 loop iterations)
if self.time_elapsed % 15 == 0:
if self.hour == 12:
self.hour = 1
else:
self.hour += 1
# Make AI harder as night progresses
self.bonnie_ai += 1
self.chica_ai += 1
if self.hour == 6:
self.victory = True
break
# Power handling
self.power -= self.get_power_drain()
if self.power <= 0:
self.power = 0
self.left_door_closed = False
self.right_door_closed = False
clear_screen()
print("⚡ POWER OUTAGE... Everything went black.")
time.sleep(3)
print("🎵 *Freddy's music box plays in the dark*")
time.sleep(4)
self.game_over = True
break
# Update Animatronic AI Positions
self.move_animatronics()
if self.game_over:
break
# Render UI
clear_screen()
print(f"⏱️ Time: {self.hour} AM | 🔋 Power: {round(self.power, 1)}% (Usage Drain: {self.get_power_drain() * 10}x)")
print("---------------------------------------------")
print(f"🚪 LEFT DOOR: {'[ CLOSED ]' if self.left_door_closed else '[ OPEN ]'}")
print(f"🚪 RIGHT DOOR: {'[ CLOSED ]' if self.right_door_closed else '[ OPEN ]'}")
print("---------------------------------------------")
# Visual alerts if an animatronic is right at your window
if self.bonnie_pos == 2:
print("⚠️ WARNING: Shadow seen outside your LEFT window!")
if self.chica_pos == 3:
print("⚠️ WARNING: Shadow seen outside your RIGHT window!")
# Player Input Choice
choice = input("\nAction (L/R/C or Enter): ").lower().strip()
if choice == 'l':
self.left_door_closed = not self.left_door_closed
elif choice == 'r':
self.right_door_closed = not self.right_door_closed
elif choice == 'c':
# Looking at cameras drains a tiny bit of extra power instantly
self.power -= 0.5
self.display_cameras()
# Tiny processing buffer delay per round tick
time.sleep(0.2)
# End of Game Scenarios
clear_screen()
if self.victory:
print("🎉 6:00 AM 🎉")
print("Children cheering sound effects... You survived the night!")
else:
print("💥 SCREEEEEECH!!! 💥")
print("An animatronic bit your face off. GAME OVER.")
if __name__ == "__main__":
game = FnafGame()
game.run()Editor is loading...
Leave a Comment