Enhance README and main.py for improved usability and functionality

This commit is contained in:
Kyler Olsen 2025-04-28 17:28:25 -06:00
parent 47275971de
commit b2f4f69937
3 changed files with 61 additions and 5 deletions

View File

@ -1,7 +1,41 @@
# CS 2450 Final Project
*Kyler Olsen* - *Spring 2025*
__Scripture Chase Game__
## Scripture Chase Game
- Repo: [git.purplecello.org/KylerOlsen/CS2450-Final-Project](https://git.purplecello.org/KylerOlsen/CS2450-Final-Project.git)
- Mirror: [github.com/KylerOlsen/CS2450-Final-Project](https://github.com/KylerOlsen/CS2450-Final-Project.git)
## Dependencies
Python 3.10 or greater is recommended.
In the root of the repo run this command.
```pip install -r requirements.txt```
## Running
The following command with run the server.
```python3 main.py -s```
The following command with run the client.
```python3 main.py```
Here are the options for running.
```
$ python3 main.py -h
usage: main.py [-h] [-s] [-H HOST] [-p PORT] [-n PLAYERNAME]
Run the server or client.
options:
-h, --help show this help message and exit
-s, --server Run as server
-H HOST, --host HOST Host address (default: '')
-p PORT, --port PORT Port number (default: 7788)
-n PLAYERNAME, --playername PLAYERNAME
Player name (for client)
```

29
main.py
View File

@ -2,6 +2,7 @@
# CS 2450 Final Project
# Apr 2025
import argparse
import random
def name_gen():
@ -51,13 +52,33 @@ def server(host: str='', port: int=7788):
lib = Library(host, port)
lib.serve_forever()
def client(playername: str, host: str='localhost', port: int=7788):
def client(playername: str = "", host: str='localhost', port: int=7788):
from ui import UI
if not playername: playername = name_gen()
ui = UI(playername, host, port)
ui.loop()
def main():
client(name_gen())
def main(argv):
parser = argparse.ArgumentParser(description="Run the server or client.")
parser.add_argument(
"-s", "--server", action="store_true", help="Run as server"
)
parser.add_argument(
"-H", "--host", type=str, default="", help="Host address (default: '')"
)
parser.add_argument(
"-p", "--port", type=int, default=7788, help="Port number (default: 7788)"
)
parser.add_argument(
"-n", "--playername", type=str, default="", help="Player name (for client)"
)
args = parser.parse_args(argv[1:])
if args.server:
server(host=args.host, port=args.port)
else:
client(playername=args.playername, host=args.host or 'localhost', port=args.port)
if __name__ == "__main__":
main()
from sys import argv
main(argv)

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
blessed==1.21.0