Difference between revisions of "2022 - There is a load game feature but no way of saving a game"
(Created page with "=Issue= The program contains the code required to load a game, but doesn't contain the code to save a game. The LoadGame method of the BreakThrough class can be seen below:...") |
(→What you need to do) |
||
Line 38: | Line 38: | ||
The easiest way to figure out how to save a file is to use the LoadGame sequence, every MyStream.ReadLine() will read one line of the text file. You therefore need to reverse the process. | The easiest way to figure out how to save a file is to use the LoadGame sequence, every MyStream.ReadLine() will read one line of the text file. You therefore need to reverse the process. | ||
+ | |||
+ | =What does a save game need to write= | ||
+ | # the score | ||
+ | # the current lock as a string for the conditions | ||
+ | # the status of the current lock conditions | ||
+ | # the Hand card collection as a string include card numbers | ||
+ | # the Sequence card collection as a string include card numbers | ||
+ | # the Discard card collection as a string include card numbers | ||
+ | # the Deck card collection as a string include card numbers | ||
=What you need to do= | =What you need to do= | ||
− | * | + | ==Lock class== |
− | * | + | * create a method to output the lock conditions as a string |
+ | * create a method to output the status of the conditions as a string | ||
+ | |||
+ | ==CardCollection class== | ||
+ | * create a method to output the entire collection | ||
+ | * remember to include each card number | ||
+ | * make sure you check if the card collection is not empty | ||
+ | |||
+ | ==SaveGame method== | ||
+ | Create a save game method which sets up a StreamWriter, you can copy the StreamReader code and change read for write, now instead of using myStream.ReadLine use myStream.WriteLine(). | ||
+ | |||
+ | The SaveGame method should: | ||
+ | * write the score | ||
+ | * use your method to write the lock condition | ||
+ | * use your method to write the status of each condition | ||
+ | * use your method to write each card collection in order |
Revision as of 18:20, 21 November 2021
Contents
Issue
The program contains the code required to load a game, but doesn't contain the code to save a game.
The LoadGame method of the BreakThrough class can be seen below:
private bool LoadGame(string fileName)
{
string LineFromFile;
string LineFromFile2;
try
{
using (StreamReader MyStream = new StreamReader(fileName))
{
LineFromFile = MyStream.ReadLine();
Score = Convert.ToInt32(LineFromFile);
LineFromFile = MyStream.ReadLine();
LineFromFile2 = MyStream.ReadLine();
SetupLock(LineFromFile, LineFromFile2);
LineFromFile = MyStream.ReadLine();
SetupCardCollectionFromGameFile(LineFromFile, Hand);
LineFromFile = MyStream.ReadLine();
SetupCardCollectionFromGameFile(LineFromFile, Sequence);
LineFromFile = MyStream.ReadLine();
SetupCardCollectionFromGameFile(LineFromFile, Discard);
LineFromFile = MyStream.ReadLine();
SetupCardCollectionFromGameFile(LineFromFile, Deck);
}
return true;
}
catch
{
Console.WriteLine("File not loaded");
return false;
}
}
The easiest way to figure out how to save a file is to use the LoadGame sequence, every MyStream.ReadLine() will read one line of the text file. You therefore need to reverse the process.
What does a save game need to write
- the score
- the current lock as a string for the conditions
- the status of the current lock conditions
- the Hand card collection as a string include card numbers
- the Sequence card collection as a string include card numbers
- the Discard card collection as a string include card numbers
- the Deck card collection as a string include card numbers
What you need to do
Lock class
- create a method to output the lock conditions as a string
- create a method to output the status of the conditions as a string
CardCollection class
- create a method to output the entire collection
- remember to include each card number
- make sure you check if the card collection is not empty
SaveGame method
Create a save game method which sets up a StreamWriter, you can copy the StreamReader code and change read for write, now instead of using myStream.ReadLine use myStream.WriteLine().
The SaveGame method should:
- write the score
- use your method to write the lock condition
- use your method to write the status of each condition
- use your method to write each card collection in order