//	Creating Hangman game
//	LET'S LEARN: arrays(fixed-length vs dynamic),
//			strings(char[] vs string) and immutability,
//			reading strings from the user

import std.stdio: writeln, write, readln;
import std.string: strip;

void main() {

	/* School event: 10 participants, age and names
		int age1 = 0;
		int age2 = 0;
		...
		int age10 = 0;
	*/

	//------------------------------------

	/*
		data_type[size] name;
		name[index] to access the ith element
		name[0 ... < size]

		int[10] name; 	// [0 ... 9]
		name[6] = ...	// ok, 6 < 10
		name[12] = ... 	// error, 12 > 10
		name[10] = ... 	// error, 10 is not < 10
	*/

	int[10] age = 0; 		// all age variables = 0;
	char[21] oneName; 		// one dimensinal array, we assume name is no longer than 21
	char[10][21] manyNames; 	// an array of one dimesional arrays of characters

	/*
		data_type[size_rows][size_cols] name;
		name[0 ... < size_rows][0 ... < size_cols] = ...
	*/

	string oneName_string; 		// the same as char[]
	string[10] manyNames_string; 	// the same as char[10][]

	//------------------------------------

	// trying to modify a string element
/*	string fruit = "apple";
	fruit[0] = 'A'; 		// error

	fruit = "orange"; 		// fine

	string[] shoppingList = [ "potato", "apples", "milk", "etc..." ];
*/
	//------------------------------------
/*	
	int[] myDynamicArray;
	writeln("Size of myDynamicArray: ", myDynamicArray.length);

	myDynamicArray.length = 3;
	writeln("NEW SIZE of myDynamicArray: ", myDynamicArray.length);

	myDynamicArray ~= 15;
	myDynamicArray ~= 98;
	myDynamicArray ~= 43;

	writeln(myDynamicArray);
*/
	//------------------------------------

/*	write("Hi, what's your name: ");
	//string name = readln(); 		// reads a '\n' new line character
	string name = strip(readln()); 		// use strip to remove '\n'

	writeln("Hi, ", name, ". Nice to meet you!");
*/
	//------------------------------------
/*
	string name = "alex";
	name[0] = 'A'; 			// error, immutable expression

	char[] name = "joshua";
	name[0] = 'J'; 			// fine
*/	
	//------------------------------------
	
	int lives = 3;

	// dictionary contains words that player will have to guess
	string[10] dictionary = [ "apple", "orange", "volleyball", "laptop",
				"universe", "chicken", "theater", "window",
				"violin", "guitar" ];

	// calling main menu function
	mainMenu();

	// when the game is over:
	writeln();
	writeln("Thank you for playing!");

}

void mainMenu() {
	writeln("Hello! Welcome to Hangman game!");
	writeln("(1) Play");
	writeln("(2) Exit");
	write(":_");

	string line = strip(readln());
	if(line == "play" || line == "Play" || line == "1") {
		writeln();
		writeln("let's play!");
	}
}