Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 27 additions & 32 deletions pharaoh/__main__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import pygame, random
from pygame.locals import *
from engine.game import start_sequence
import time

NAME = 'Pharaoh'

Expand All @@ -25,50 +27,43 @@
""" Map constants """

TILESIZE = 20
WIDTH = 30
HEIGHT = 20

gamemap = [[DIRT for w in range(WIDTH)] for h in range(HEIGHT)]
position = [0,0]
WIDTH = 500
HEIGHT = 500
POSITION = [0,0]

""" Main Entry """
def init() -> None:
pygame.init()
screen = pygame.display.set_mode((WIDTH*TILESIZE, HEIGHT*TILESIZE))
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(NAME)

# screen.fill((255, 255, 255))
for rw in range(HEIGHT):
for cl in range(WIDTH):
rnum = random.randint(0,15)
if rnum == 0:
tile = NONE
elif rnum == 1 or rnum == 2:
tile = WATER
elif rnum >= 3 and rnum <= 7:
tile = GRASS
else:
tile = DIRT

gamemap[rw][cl] = tile

done = False

""" Event Loop """

while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
# elif event.type == KEYDOWN:
# if (event.key) == K_RIGHT:
# position[0] += 1
pygame.quit()

start_splash(screen)
start_sequence()


def start_splash(screen):
""" Title """
titlefont = pygame.font.SysFont("comicsansms", 72)
title = titlefont.render("Pharaoh", True, BROWN)
screen.blit(title, (250 - title.get_width() // 2, 200 - title.get_height() // 2))

""" Pyramid """
pygame.draw.polygon(screen, BROWN, ( (25, 400), (250, 250), (475,400), 0))

for row in range(HEIGHT):
for column in range(WIDTH):
pygame.draw.rect(screen, colors[gamemap[row][column]], (column*TILESIZE, row*TILESIZE,TILESIZE,TILESIZE))
""" Credits """
footfont = pygame.font.SysFont("comicsansms", 14)
footer = footfont.render("Created by: Brock Ramsey & Jahan Addison", True, WHITE)
screen.blit(footer, (250 - footer.get_width() // 2, 425 - footer.get_height() // 2))

pygame.display.update()
time.sleep(5)

pygame.display.update()

if __name__ == '__main__':
init()
18 changes: 18 additions & 0 deletions pharaoh/engine/game.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import player.identity


""" Game Handlers """

def start_sequence(screen):
engine_loop()


def engine_loop():
handle_sequences()


def handle_sequences():
gender = player.identity.receive_gender(screen)
name = player.identity.receive_name(screen)
ident = player.identity.establish_ident(gender, name)
print("Welcome, " + ident.name)
42 changes: 42 additions & 0 deletions pharaoh/lib/inputs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import pygame
from pygame.locals import *

""" Input handlers """

def get_key():
while 1:
event = pygame.event.poll()
if event.type == KEYDOWN:
return event.key
else:
pass


def input_box(screen, message):
"Print a message in a box in the middle of the screen"
font = pygame.font.Font(None,18)
pygame.draw.rect(screen, (0,0,0),
((screen.get_width() / 2) - 100,
(screen.get_height() / 2) - 10,
200,20), 0)
pygame.draw.rect(screen, (255,255,255),
((screen.get_width() / 2) - 102,
(screen.get_height() / 2) - 12,
204,24), 1)
if len(message) != 0:
screen.blit(font.render(message, 1, (255,255,255)),
((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10))
pygame.display.update()


def parse_keys():
while 1:
inkey = get_key()
if inkey == K_BACKSPACE:
current_string = current_string[0:-1]
elif inkey == K_RETURN:
break
elif inkey == K_MINUS:
current_string.append("_")
elif inkey <= 127:
current_string.append(chr(inkey))
33 changes: 33 additions & 0 deletions pharaoh/player/identity.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from pygame.locals import *
import pygame, string
import lib.inputs

""" Player Identity """

class Identity:
def __init__(self, gender: str, name: str):
self.gender = gender
self.name = name

def gender(self) -> str:
return self.gender

def name(self) -> str:
return self.name


def receive_gender(screen) -> str:
gender = ''
lib.inputs.input_box(screen, "What is your gender? " + gender)
return gender


def receive_name(screen) -> str:
name = ''
lib.inputs.input_box(screen, "What is your name? " + name)
return name


def establish_ident(gender: str, name: str) -> Identity:
ident = Identity(gender, name)
return ident