Main applications are contained in the Projects folder.
This project is a web-based version of a word puzzle game called Words Without Friends, written in C. The program runs a simple web server that allows the game to be played through a browser instead of only through the terminal. The game loads words from a dictionary file, selects a master word, and challenges the user to guess smaller words that can be formed from the letters of that master word. Correct guesses are marked as found, while missing words are displayed as blank underscores.
- Built in the C programming language
- Uses a custom socket-based web server
- Runs locally on port 8000
- Handles browser requests using HTTP
- Supports multiple client requests using POSIX threads
- Loads dictionary words from 2of12.txt
- Uses linked lists to store dictionary words and playable game words
- Displays the game using dynamically generated HTML
- Validates user guesses against the list of possible words
2of12.txt- dictionary file used by the gameWordsWithoutFriends1_Rheinard_Zadanowsky.c- early version of the terminal word gameWordsWithoutFriends2_Rheinard_Zadanowsky.c- expanded version using dictionary loading and linked listsWordsWithoutFriends3_Rheinard_Zadanowsky.c- more complete terminal version of the gameWebServer_Rheinard_Zadanowsky.c- standalone C web server implementationWordsWithoutFriends4_Rheinard_Zadanowsky.c- web-based version of the game
The program loads a word list from 2of12.txt and stores the words in a linked list. It then selects a master word and finds smaller words that can be created from the letters of that word. The web version creates an HTML page where the user can enter guesses in a form. Each guess is sent back to the C server through a browser request, checked against the game word list, and then the updated game board is displayed.
- C
- POSIX sockets
- POSIX threads
- HTML generation in C
- File I/O
- Linked lists
- String parsing
- Dictionary-based word validation
This project was created as a class assignment to practice systems-level programming concepts in C, including sockets, threading, memory management, file processing, linked lists, and basic web server behavior.