Jump to content

Random letter based on a distribution


GeekyLass

Recommended Posts

Hello.

I'm posting because I have some questions as to how I could go about making a "simple" script that will generate a letter or letters based on the 100 letter tiles in scrabble. My skills with PHP are extremely limited. I was fairly adept a few years ago but I stopped practicing and grew rusty.

 

I listed the distribution at the end of this message.

 

I'm thinking that creating an array named "bag" to represent the bag of letters in scrabble. As random letters or letter are generated they would need to be removed from the bag.

 

There would also need to be a "reset bag" function of some kind in order to start a new game and thus start with a fresh bag of letters.

 

My co-worker and I work in the same office. I expect we'll be the only ones using this script so for now it only needs to handle one game at a time.

 

 

Are there any suggestions on what PHP functions I should use?

 

I am expecting to use array(), rand().

 

I will post my progress as I stumble through. As it is, I don't have a test server accessible to me, however, when I get home from work I'll be able to try out my code.

 

Distribution:

2 blank tiles (scoring 0 points)

1 point: E ×12, A ×9, I ×9, O ×8, N ×6, R ×6, T ×6, L ×4, S ×4, U ×4

2 points: D ×4, G ×3

3 points: B ×2, C ×2, M ×2, P ×2

4 points: F ×2, H ×2, V ×2, W ×2, Y ×2

5 points: K ×1

8 points: J ×1, X ×1

10 points: Q ×1, Z ×1

 

Link to comment
Share on other sites

My code thus far in between working is at the bottom of this reply.

 

I'm not sure how to make it "remember" if two people are playing scrabble together via two different computers.

 

@Mchl recommended I use $_SESSION is that the best way?

 

<?php
$noofletters = $_POST["nooflet"];
if (!isset($_POST['submit'])) { 
?>

<html>
<head>
<title>Untitled Document</title>
</head>

<body>

<form method="post" action="<?php echo $PHP_SELF;?>" >
    Take of 
    <select name="nooflet" dir="ltr" lang="en">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
    </select>
    letters from bag.
    <br />
    <input type="submit" value="submit" name="submit">
</form>
<?
  } 
  else 
  {
  
function endKey($array)
{
  end($array);
  return key($array);
}

print strftime('%c');
print "<br><br>";
$bag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "*", "*");
shuffle($bag);
$maxi = endKey($bag); 
print "max = " . $maxi . "<br>";
print "No of letters requested: " . $noofletters . "<br>";
print "Your letters are : ";
for ($i = 1; $i <= $noofletters; $i++)
{
	$random = rand(0,$maxi);
	$myletter = $bag[$random];
	print $myletter . " ";	
	$usedbag = array();
	$usedbag[] = $myletter;
	unset($bag[$random]); 
	shuffle($bag);

}
$maxi = endKey($bag) - 1; 
print "<br>max = " . $maxi . "<br>";
print_r ($bag);
  }
?>

Link to comment
Share on other sites

Between two players you should use a database and tag on some fields like game_id,letters_remaining

 

game_id would be relevant to another table with some fields like uid1,uid2 (for users player), status (0=not started, 1=playing, 2=finished), winner (would be uid1 or uid2)

 

etc..

Link to comment
Share on other sites

If they're playing on two different computers you'll need to store game data in a file or database (file might be easier for start). Sessions are for storing information between requests from one computer. See here: http://www.phpfreaks.com/tutorial/sessions-and-cookies-adding-state-to-a-stateless-protocol

 

Your

	

function endKey($array)
{
  end($array);
  return key($array);
}

will work fine, but using

count($array)-1;

will do the work just as fine in this case.

 

For sake of your own sanity please don't use short open tags ( <? ), use <?php everywhere.

Link to comment
Share on other sites

Between two players you should use a database

 

Admittedly, I'd like to avoid using database.

 

If they're playing on two different computers you'll need to store game data in a file or database (file might be easier for start).

Do you have any tutorials you'd recommend for using the file method? I've been looking but haven't had much luck finding any.

I also made the corrections to my code you suggested. :) Why use 5 lines when 1 line of code can do? ;)

Link to comment
Share on other sites

Do you have any tutorials you'd recommend for using the file method? I've been looking but haven't had much luck finding any.

I also made the corrections to my code you suggested. :) Why use 5 lines when 1 line of code can do? ;)

 

Start with manual for fopen, fwrite, fread and also maybe serialize and unserialize

 

Just make a note, that the mothod I gave you for finding last array key will only work for enumerated arrays where all keys from 0 to count($array) -1 are present.

Link to comment
Share on other sites

Start with manual for fopen, fwrite, fread and also maybe serialize and unserialize

 

I'm looking at fopen and I think my brain exploded. XD I'll have to find an example that's closer to my purposes to understand how I could use it.

 

In the way I'm thinking, I have to get my script to check if a file exists, if it exists to open it, and if it doesn't exist to create it. I think I have to save the array $bag to the file so the script can "remembers"what tiles/letters are left for the other player on the other computer. Does that make sense?

 

I find sometimes that it's wrapping my head around a sort of plan of how the script will work.

Link to comment
Share on other sites

Start with manual for fopen, fwrite, fread and also maybe serialize and unserialize

 

I'm looking at fopen and I think my brain exploded. XD I'll have to find an example that's closer to my purposes to understand how I could use it.

 

In the way I'm thinking, I have to get my script to check if a file exists, if it exists to open it, and if it doesn't exist to create it. I think I have to save the array $bag to the file so the script can "remembers"what tiles/letters are left for the other player on the other computer. Does that make sense?

 

I find sometimes that it's wrapping my head around a sort of plan of how the script will work.

 

I would start with file_get_contents() and file_put_contents().  Much easier and straight forward in my opinion.  And as Mchl said, you'll probably want to serialize() to save to the file and unserialize() out.

Link to comment
Share on other sites

I ended up giving up on the concept of saving data to a file. I have worked with DBs before and it's more familiar to me so... I did that.

 

Just to explain, I'm working on the section of code for case 0 as it's probably the simplest.  I have not put in the handling for returning letters to a bag and getting the same number of letters from the bag. I have not yet put in a verification of if the bag has less letters than needed to just take what's left and set gamestatus to 0.

 

I am getting errors with the code below.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in htdocs/scrabblescript.php on line 139

 

print "<br>There are " . $maxi . " letter tiles left.<br>";

$result = mysql_query("SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and 'gamestatus'=1");

while($row = mysql_fetch_array($result)) /* this is line #139 */
{
$gameid = $row['gameid'];
}

 

Here is the full code.

 

<?php
if (!isset($_POST['submit'])) 
{ 
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>

<form method="post" action="<?php echo $PHP_SELF;?>" >
<p>Player 1:
<input name="player1" type="text" maxlength="26"><br />
Player 2: <input name="player2" type="text" maxlength="26"><br />
Game Status: 
<select name="gamestatus">
<option value="1" selected>playing</option>
<option value="0">game over</option>
</select>
</p>
<p><strong>To Take Letters from bag select number of letters.</strong><br>
<br>
Take of 
<select name="nooflet" dir="ltr" lang="en">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
letters from bag.    <br>
</p>
<p><strong>To return letters to bag and get same amount of letters select number of letters and select your letters.</strong></p>
<p>Return 
<select name="nooflet2" dir="ltr" lang="en">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
to bag. <br>
Select letters to return: 
<select name="select" size="8" multiple id="select">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
<option value="*">Blank</option>
</select>
<br />
<input type="submit" value="submit" name="submit">
</p>
</form>
<?php
} 
else 
{
$host = "localhost";
$user = "217397_scrabble";
$pass = "iH3@rt5crabble";
$dbname = "geekylass_zqx_stuff";
$startbag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "*", "*");
$noofletters = $_POST["nooflet"];
$noofretlets = $_POST["nooflet2"];
$player1 = $_POST["player1"];
$player2 = $_POST["player2"];
$gamestatus = $_POST["gamestatus"];

$con = mysql_connect($host,$user,$pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

if ($num >= 2)
{
$num = 2;	
}

switch ($num)
{
case 0 :
/*insert info in db, create new game */
print "case is 0";
  mysql_select_db($dbname, $con);
$result = mysql_query("INSERT INTO scrabble (player1, player2, gamestatus)
VALUES ($player1, $player2, $gamestatus)");

$startbag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "*", "*");
shuffle($startbag);
$maxi = count($startbag)-1;

print "Your letter(s) are : ";
for ($i = 1; $i <= $noofletters; $i++)
{
$random = rand(0,$maxi);
$myletter = $startbag[$random];
print $myletter . " ";	
unset($startbag[$random]); 
shuffle($startbag);
}
$maxi = count($startbag)-1; 
print "<br>There are " . $maxi . " letter tiles left.<br>";

$result = mysql_query("SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and 'gamestatus'=1");

while($row = mysql_fetch_array($result))
{
$gameid = $row['gameid'];
}

foreach ($startbag as $key => $value)
{
$result = mysql_query("INSERT INTO scrabblebag (letter, gameid)
VALUES ($startbag[$key], $gameid)");
}

break;

case 1:
break;
case 2:
break;
}
mysql_close($con);
}
?>

Link to comment
Share on other sites

This error usually means that your query failed. To find out why it happened you canuse code like this:

$result = mysql_query("SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and 'gamestatus'=1") or die(mysql_error());

 

This useful for debugging purposes, but should be avoided in production code.

 

In your case the reason is pretty obvious. You have unnecsarry quotes ' around 'gamestatus'.

Link to comment
Share on other sites

I made the changes you suggested.

 

I have noticed that the script is not inserting the information into the scrabble database.

The query is:

mysql_query("INSERT INTO scrabble (player1, player2, gamestatus)VALUES ($player1, $player2, $gamestatus)") or die(mysql_error());

Query was: INSERT INTO scrabble (player1, player2, gamestatus)VALUES (Kristina, Kristina, 1)

 

I'm also getting:

Unknown column 'Kristina' in 'field list'

For this query:

$result = mysql_query("SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and gamestatus=1") or die(mysql_error());

 

Here's the full code:

<?php
if (!isset($_POST['submit']))
{ 
?>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>" >
<p>Player 1:<input name="player1" type="text" maxlength="26"><br />
Player 2: <input name="player2" type="text" maxlength="26"><br />
Game Status: 
<select name="gamestatus">
<option value="1" selected>playing</option>
    <option value="0">game over</option>
</select></p>

<p><strong>To Take Letters from bag select number of letters.</strong><br><br>
Take of 
<select name="nooflet" dir="ltr" lang="en">
<option value="1">1</option><option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
</select>letters from bag.    <br></p>

<p><strong>To return letters to bag and get same amount of letters select number of letters and select your letters.</strong></p>

<p>Return 
<select name="nooflet2" dir="ltr" lang="en">
<option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
</select>to bag. <br>
Select letters to return: 
<select name="select" size="8" multiple id="select">
<option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    <option value="E">E</option>
    <option value="F">F</option>
    <option value="G">G</option>
    <option value="H">H</option>
    <option value="I">I</option>
    <option value="J">J</option>
    <option value="K">K</option>
    <option value="L">L</option>
    <option value="M">M</option>
    <option value="N">N</option>
    <option value="O">O</option>
    <option value="P">P</option>
    <option value="Q">Q</option>
    <option value="R">R</option>
    <option value="S">S</option>
    <option value="T">T</option>
    <option value="U">U</option>
    <option value="V">V</option>
    <option value="W">W</option>
    <option value="X">X</option>
    <option value="Y">Y</option>
    <option value="Z">Z</option>
    <option value="?">Blank</option>
</select><br />
<input type="submit" value="submit" name="submit"></p>
</form>

<?php
} 
else 
{
$host = "mysql14.000webhost.com";
$user = "a4143142_scrabbl";
$pass = "iH3@rt5crabble";
$dbname = "a4143142_mystuff";
$startbag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "?", "?");
$noofletters = $_POST["nooflet"];
$noofretlets = $_POST["nooflet2"];
$player1 = $_POST["player1"];
$player2 = $_POST["player2"];
$gamestatus = $_POST["gamestatus"];
$con = mysql_connect($host,$user,$pass);

if (!$con)
{
	die('Could not connect: ' . mysql_error());
}

if ($num >= 2)
{
	$num = 2;	
}

switch ($num)
{
	case 0 :
		/*insert info in db, create new game */
		print "case is 0";  
		mysql_select_db($dbname, $con); 
		mysql_query("INSERT INTO scrabble (player1, player2, gamestatus)VALUES ($player1, $player2, $gamestatus)") or die(mysql_error());
		shuffle($startbag);
		$maxi = count($startbag)-1;
		print "Your letter(s) are : ";

		for ($i = 1; $i <= $noofletters; $i++)
		{
			$random = rand(0,$maxi);
			$myletter = $startbag[$random];	print $myletter . " ";
			unset($startbag[$random]);
			shuffle($startbag);
		}

		$maxi = count($startbag)-1; 
		print "<br>There are " . $maxi . " letter tiles left.<br>";

		$result = mysql_query("SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and gamestatus=1") or die(mysql_error());

		while($row = mysql_fetch_array($result))
		{
			$gameid = $row['gameid'];
		}

		foreach ($startbag as $key => $value)
		{
			$result = mysql_query("INSERT INTO scrabblebag (letter, gameid)VALUES ($startbag[$key], $gameid)") or die(mysql_error());
		}

		break;
	case 1:
		break;
	case 2:
		break;
}
mysql_close($con);
}
?>

Link to comment
Share on other sites

Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

 

Query was: SELECT gameid FROM scrabble WHERE player1='Kristina' and player2='Kristina' and gamestatus=1)

 

$gameidquery = "SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and gamestatus=1)";
...
$result = mysql_query($gameidquery) or trigger_error(mysql_error().'<br />Query was:'.$gameidquery,E_USER_ERROR);

 

Full Code:

<?php
if (!isset($_POST['submit']))
{ 
?>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>" >
<p>Player 1:<input name="player1" type="text" maxlength="26"><br />
Player 2: <input name="player2" type="text" maxlength="26"><br />
Game Status: 
<select name="gamestatus">
<option value="1" selected>playing</option>
    <option value="0">game over</option>
</select></p>

<p><strong>To Take Letters from bag select number of letters.</strong><br><br>
Take of 
<select name="nooflet" dir="ltr" lang="en">
<option value="1">1</option><option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
</select>letters from bag.    <br></p>

<p><strong>To return letters to bag and get same amount of letters select number of letters and select your letters.</strong></p>

<p>Return 
<select name="nooflet2" dir="ltr" lang="en">
<option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
</select>to bag. <br>
Select letters to return: 
<select name="select" size="8" multiple id="select">
<option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    <option value="E">E</option>
    <option value="F">F</option>
    <option value="G">G</option>
    <option value="H">H</option>
    <option value="I">I</option>
    <option value="J">J</option>
    <option value="K">K</option>
    <option value="L">L</option>
    <option value="M">M</option>
    <option value="N">N</option>
    <option value="O">O</option>
    <option value="P">P</option>
    <option value="Q">Q</option>
    <option value="R">R</option>
    <option value="S">S</option>
    <option value="T">T</option>
    <option value="U">U</option>
    <option value="V">V</option>
    <option value="W">W</option>
    <option value="X">X</option>
    <option value="Y">Y</option>
    <option value="Z">Z</option>
    <option value="?">Blank</option>
</select><br />
<input type="submit" value="submit" name="submit"></p>
</form>

<?php
} 
else 
{
$host = "mysql14.000webhost.com";
$user = "a4143142_scrabbl";
$pass = "iH3@rt5crabble";
$dbname = "a4143142_mystuff";
$startbag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "?", "?");
$noofletters = $_POST["nooflet"];
$noofretlets = $_POST["nooflet2"];
$player1 = $_POST["player1"];
$player2 = $_POST["player2"];
$gamestatus = $_POST["gamestatus"];
$con = mysql_connect($host,$user,$pass);
$insertquery = "INSERT INTO scrabble (player1, player2, gamestatus) VALUES('$player1', '$player2', '$gamestatus')";
$gameidquery = "SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and gamestatus=1)";
$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$startbag[$key]', '$gameid')";

if (!$con)
{
	die('Could not connect: ' . mysql_error());
}

if ($num >= 2)
{
	$num = 2;	
}

switch ($num)
{
	case 0 :
		/*insert info in db, create new game */
		print "case is 0";  
		mysql_select_db($dbname, $con); 
		mysql_query($insertquery) or trigger_error(mysql_error().'<br />Query was:'.$insertquery,E_USER_ERROR);
		shuffle($startbag);
		$maxi = count($startbag)-1;
		print "Your letter(s) are : ";

		for ($i = 1; $i <= $noofletters; $i++)
		{
			$random = rand(0,$maxi);
			$myletter = $startbag[$random];	print $myletter . " ";
			unset($startbag[$random]);
			shuffle($startbag);
		}

		$maxi = count($startbag)-1; 
		print "<br>There are " . $maxi . " letter tiles left.<br>";

		$result = mysql_query($gameidquery) or trigger_error(mysql_error().'<br />Query was:'.$gameidquery,E_USER_ERROR);

		while($row = mysql_fetch_array($result))
		{
			$gameid = $row['gameid'];
		}

		foreach ($startbag as $key => $value)
		{
			$result = mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
		}

		break;
	case 1:
		break;
	case 2:
		break;
}
mysql_close($con);
}
?>

 

 

 

Link to comment
Share on other sites

I got the code working this weekend. :) I broke up the code into two parts - the form and the script to "handle" the form.

 

I'd love some suggestions on how to clean up, simplify, make the code more streamlined and make the UI more user-friendly. :)

 

I do plan to add a board eventually but for now this will work for my purposes.

 

Form:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Scrabble - Letter Generator</title>
</head>

<body>

  <form method="post" action="scrabblecode.php" >
  <p>Player 1:<input name="player1" type="text" maxlength="26"><br />
  Player 2: <input name="player2" type="text" maxlength="26"><br />
  Game Status: 
  <select name="gamestatus">
      <option value="1" selected>playing</option>
      <option value="0">game over</option>
  </select></p>
  
  <p><strong>To Take Letters from bag select number of letters.</strong><br><br>
  Take of 
  <select name="nooflet" dir="ltr" lang="en">
      <option value="1">1</option><option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
  </select>letters from bag.    <br></p>
  
  <p><strong>To return letters to bag and get same amount of letters select number of letters and select your letters.</strong></p>
  
  <p>Return 
  <select name="nooflet2" dir="ltr" lang="en">
      <option value="0">0</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
  </select>to bag. </p>
  <table width="100%" border="0">
    <tr>
      <td width="19%">Select letters to return:</td>
      <td width="9%" align="center">Letter 1</td>
      <td width="9%" align="center">Letter 2</td>
      <td width="9%" align="center">Letter 3</td>
      <td width="9%" align="center">Letter 4</td>
      <td width="9%" align="center">Letter 5</td>
      <td width="9%" align="center">Letter 6</td>
      <td width="9%" align="center">Letter 7</td>
      <td width="9%" align="center">Letter 8</td>
      <td width="9%" align="center">Letter 9</td>
    </tr>
    <tr>
      <td> </td>
      <td align="center"><select name="returnlet1" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet2" size="8">
          <option>None</option>
          <option value="A">A</option>
          <option value="B">B</option>
          <option value="C">C</option>
          <option value="D">D</option>
          <option value="E">E</option>
          <option value="F">F</option>
          <option value="G">G</option>
          <option value="H">H</option>
          <option value="I">I</option>
          <option value="J">J</option>
          <option value="K">K</option>
          <option value="L">L</option>
          <option value="M">M</option>
          <option value="N">N</option>
          <option value="O">O</option>
          <option value="P">P</option>
          <option value="Q">Q</option>
          <option value="R">R</option>
          <option value="S">S</option>
          <option value="T">T</option>
          <option value="U">U</option>
          <option value="V">V</option>
          <option value="W">W</option>
          <option value="X">X</option>
          <option value="Y">Y</option>
          <option value="Z">Z</option>
          <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet3" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet4" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet5" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet6" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet7" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet8" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
      <td align="center"><select name="returnlet9" size="8">
        <option>None</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
        <option value="F">F</option>
        <option value="G">G</option>
        <option value="H">H</option>
        <option value="I">I</option>
        <option value="J">J</option>
        <option value="K">K</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="N">N</option>
        <option value="O">O</option>
        <option value="P">P</option>
        <option value="Q">Q</option>
        <option value="R">R</option>
        <option value="S">S</option>
        <option value="T">T</option>
        <option value="U">U</option>
        <option value="V">V</option>
        <option value="W">W</option>
        <option value="X">X</option>
        <option value="Y">Y</option>
        <option value="Z">Z</option>
        <option value="?">Blank</option>
      </select></td>
    </tr>
  </table>
  <p>
    <input type="submit" value="submit" name="submit">
  </p>
  </form>

</body>
</html>

 

The Script:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Scrabble - Letter Generator</title>
</head>

<body>

<?php
$noofletters = $_POST["nooflet"];
$noofretlet2 = $_POST["nooflet2"];
$player1 = $_POST["player1"];
$player2 = $_POST["player2"];
$gamestatus = $_POST["gamestatus"];
$rlet1 = $_POST["returnlet1"];
$rlet2 = $_POST["returnlet2"];
$rlet3 = $_POST["returnlet3"];
$rlet4 = $_POST["returnlet4"];
$rlet5 = $_POST["returnlet5"];
$rlet6 = $_POST["returnlet6"];
$rlet7 = $_POST["returnlet7"];
$rlet8 = $_POST["returnlet8"];
$rlet9 = $_POST["returnlet9"];

$insertquery = "INSERT INTO scrabble (player1, player2, gamestatus) VALUES('$player1', '$player2', '$gamestatus')";
$gameidquery = "SELECT gameid FROM scrabble WHERE player1='$player1' and player2='$player2' and gamestatus=1";

function dbconnect()
{
  global $host;
  global $user;
  global $pass;
  global $dbname;
  global $con;
  
  $host = "localhost";
  $user = "kristina_scrabbl";
  $pass = "scrabbl";
  $dbname = "kristina_scrabble";
  
  /*$host = "mysql14.000webhost.com";
  $user = "a4143142_scrabbl";
  $pass = "iH3@rt5crabble";
  $dbname = "a4143142_mystuff";*/
  
  $con = mysql_connect($host,$user,$pass) or die ("Couldn't connect to server<br>");
  mysql_select_db($dbname)  or die ("Couldn't connect to db<br>");
}

function dbdisconnect()
{
  global $host;
  global $user;
  global $pass;
  global $dbname;
  global $con;
  
  $host = "localhost";
  $user = "scrabble";
  $pass = "iH3@rt5crabble";
  $dbname = "mystuff";

  /*$host = "mysql14.000webhost.com";
  $user = "a4143142_scrabbl";
  $pass = "iH3@rt5crabble";
  $dbname = "a4143142_mystuff";*/
  
  mysql_close($con);
}

dbconnect();	
$result = mysql_query($gameidquery);

if (empty($result))
{
  $num = 0;	
}
else
{
  $num = mysql_num_rows($result);
}

if ($num >= 2)
{
  print "Num before if: " . $num . "<br>";
  $num = 2;
  print "Num after if: " . $num . "<br>";
}
dbdisconnect();

switch ($num)
{
  case 0:
$bag = array("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "F", "F", "G", "G", "G", "H", "H", "I", "I", 	"I", "I", "I", "I", "I", "I", "I", "J", "K", "L", "L", "L", "L", "M", "M", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "O", "O", "O", "O", "P", "P", "Q", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "T", "T", "T", "T", "T", "T", "U", "U", "U", "U", "U", "U", "V", "V", "W", "W", "X", "Y", "Y", "Z", "?", "?");
dbconnect();
mysql_query($insertquery) or trigger_error(mysql_error().'<br />Query was:'.$insertquery,E_USER_ERROR);
shuffle($bag);
$maxi = count($bag);

if ($maxi < $noofletters)
{
  print "Your letter(s) are : ";
  for ($i = 1; $i <= $maxi; $i++)
  {
	$random = rand(0,$maxi);
	$myletter = $bag[$random];	
$myletters[$i]=$myletter;	print $myletter . " ";
	unset($bag[$random]);
	shuffle($bag);
  }
}
else
{
  print "Your letter(s) are : ";
  for ($i = 1; $i <= $noofletters; $i++)
  {
	$random = rand(0,$noofletters);
	$myletter = $bag[$random];	
$myletters[$i]=$myletter;	print $myletter . " ";
	unset($bag[$random]);
	shuffle($bag);
  }
}

$maxi = count($bag);
print "<br>There are " . $maxi . " letter tiles left.<br>";
$result = mysql_query($gameidquery) or trigger_error(mysql_error().'<br />Query was:'.$gameidquery,E_USER_ERROR);	  

while($row = mysql_fetch_array($result))
{
  $gameid=$row['gameid'];
}

if ($maxi = 0)
{
  $gamestatus = 0;
  $updategame = "UPDATE scrabble SET gamestatus='$gamestatus' WHERE player1='$player1' AND player2='$player2'";
  mysql_query($updategame) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
}

foreach ($bag as $k => $v)
{
  $insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$bag[$k]', '$gameid')";
  mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
}

  break;
  case 1:
dbconnect();
if ($noofretlet2 > 0)
{
  $result = mysql_query($gameidquery) or trigger_error(mysql_error().'<br />Query was:'.$gameidquery,E_USER_ERROR);
  
  while($row = mysql_fetch_array($result))
  {
	$gameid = $row['gameid'];
  }
  
  $fetchbagquery = "SELECT letter FROM scrabblebag WHERE gameid = '$gameid'";
  $result = mysql_query($fetchbagquery) or trigger_error(mysql_error().'<br />Query was:'.$fetchbagquery,E_USER_ERROR);
  $i = 0;
  
  while($row = mysql_fetch_array($result)) 
  {
	$bag[$i] = $row['letter'];
	$i++;
  }
  $deletebag = "DELETE FROM scrabblebag WHERE gameid = '$gameid'";
  mysql_query($deletebag) or trigger_error(mysql_error().'<br />Query was:'.$fetchbagquery,E_USER_ERROR);
  shuffle($bag);
  $maxi = count($bag);
  print "Your letter(s) are : ";
  
  if ($maxi < $noofretlet2)
  {
  
  print "Your letter(s) are : ";
  for ($i = 1; $i <= $maxi; $i++)
  {
  $random = rand(0,$maxi);
  $myletter = $bag[$random];	
$myletters[$i]=$myletter;	print $myletter . " ";
  unset($bag[$random]);
  shuffle($bag);
  }
  
  }
  else
  {
	print "Your letter(s) are : ";

	for ($i = 1; $i <= $noofretlet2; $i++)
	{
	  $random = rand(0,$noofretlet2);
	  $myletter = $bag[$random];	
	  $myletters[$i]=$myletter;
	  print $myletter . " ";
	  unset($bag[$random]);
	  shuffle($bag);
	}
  }
  print "<br><br>";
  
  print "The letter(s) you returned are: ";
  
  if (!empty($rlet1))
  {
	print $rlet1 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet1', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet2))
  {
	print $rlet2 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet2', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet3))
  {
	print $rlet3 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet3', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet4))
  {
	print $rlet4 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet4', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  if (!empty($rlet5))
  {
	print $rlet5 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet5', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet6))
  {
	print $rlet6 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet6', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet7))
  {
	print $rlet7 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet7', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  if (!empty($rlet8))
  {
	print $rlet8 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet8', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  if (!empty($rlet9))
  {
	print $rlet9 . " ";
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$rlet9', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  print "<br>";
  
  $maxi = count($bag);
  print "<br>There are " . $maxi . " letter tiles left.<br>";
  if ($maxi = 0)
  {
	$gamestatus = 0;
	$updategame = "UPDATE scrabble SET gamestatus='$gamestatus' WHERE player1='$player1' AND player2='$player2'";
	mysql_query($updategame) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }
  
  foreach ($bag as $k => $v)
  {
	$insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$bag[$k]', '$gameid')";
	mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
  }	  
}
else
{
  $result = mysql_query($gameidquery) or trigger_error(mysql_error().'<br />Query was:'.$gameidquery,E_USER_ERROR);
  
  while($row = mysql_fetch_array($result))
  {
	$gameid = $row['gameid'];
  }
  $fetchbagquery = "SELECT letter FROM scrabblebag WHERE gameid = '$gameid'";
  $result = mysql_query($fetchbagquery) or trigger_error(mysql_error().'<br />Query was:'.$fetchbagquery,E_USER_ERROR);
  
  while($row = mysql_fetch_array($result)) 
  {
	$bag[] = $row['letter'];
  }
  
  $deletebag = "DELETE FROM scrabblebag WHERE gameid = '$gameid'";
  mysql_query($deletebag) or trigger_error(mysql_error().'<br />Query was:'.$fetchbagquery,E_USER_ERROR);
  
  shuffle($bag);
  $maxi = count($bag);
  print "Your letter(s) are : ";
  
  if ($maxi < $noofletters)
  {
  	print "Your letter(s) are : ";
	for ($i = 1; $i <= $maxi; $i++)
	{
	  $random = rand(0,$maxi);
	  $myletter = $bag[$random];	
$myletters[$i]=$myletter;	print $myletter . " ";
	  unset($bag[$random]);
	  shuffle($bag);
	}	  
}
else
{
  print "Your letter(s) are : ";
  for ($i = 1; $i <= $noofletters; $i++)
  {
	$random = rand(0,$noofletters);
	$myletter = $bag[$random];	
$myletters[$i]=$myletter;	print $myletter . " ";
	unset($bag[$random]);
	shuffle($bag);
  }
}
print "<br>";

$maxi = count($bag);
print "<br>There are " . $maxi . " letter tiles left.<br>";
if ($maxi = 0)
{
  $gamestatus = 0;
  $updategame = "UPDATE scrabble SET gamestatus='$gamestatus' WHERE player1='$player1' AND player2='$player2'";
  mysql_query($updategame) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
}



foreach ($bag as $k => $v)
{
  $insertletquery = "INSERT INTO scrabblebag (letter, gameid) VALUES('$bag[$k]', '$gameid')";
  mysql_query($insertletquery) or trigger_error(mysql_error().'<br />Query was:'.$insertletquery,E_USER_ERROR);
}				
}
  break;
  
  case 2:
print "Contact Kristina at khall@cegep-heritage.qc.ca as you have too many active games";
  break;
}
?>
<p><a href="scrabble_form.html">Return to form</a></p>
<p>E-mail Kristina at <a href="mailto:khall@cegep-heritage.qc.ca">khall@cegep-heritage.qc.ca</a> if you have comments, suggestions or complaints</p>
</body>
</html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.