Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .vs/Posers/DesignTimeBuild/.dtbcache.v2
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file.
Binary file added .vs/Posers/v17/.suo
Binary file not shown.
Binary file added .vs/ProjectEvaluation/posers.metadata.v2
Binary file not shown.
Binary file added .vs/ProjectEvaluation/posers.projects.v2
Binary file not shown.
66 changes: 63 additions & 3 deletions FigureForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

206 changes: 180 additions & 26 deletions FigureForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,21 @@ public partial class FigureForm : Form
{
public List<string> images = new List<string>();
public List<string> imageHolder = new List<string>();
private List<int> quantityList = new List<int>();

public List<Interval> intervals = new List<Interval>();
public List<int> times = new List<int>();
public int startTime;
private bool playPauseToggle = true;

private bool wasSkip = false;

private int secondsSpent = 0;
private int figuresCompleted = 0;

private int currentTimeInterval = 0;

private int figCount = 0;

public FigureForm()
{
Expand All @@ -28,6 +39,7 @@ private void buildTimes()
{
foreach (Interval interval in intervals)
{
quantityList.Add(interval.getQuantity());
for (int i = 0; i < interval.getQuantity(); i++)
{
if (interval.getUnit().Equals("Minutes"))
Expand All @@ -43,9 +55,34 @@ private void buildTimes()
}
}

private void shuffle(IList<string> listIn)
{
Random rand = new Random();

for (int i = listIn.Count - 1; i > 0; i--)
{
int k = rand.Next(i + 1);
string value = listIn[k];
listIn[k] = listIn[i];
listIn[i] = value;
}
}

private void FigureForm_FormClosing(object sender, FormClosingEventArgs e)
{
FigureTimer.Stop();
FigureTimer.Tick -= timerTick;
FigureTimer = new System.Windows.Forms.Timer();
}

private void FigureForm_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.FormClosing += new FormClosingEventHandler(FigureForm_FormClosing);
PausePlayButton.Text = "⏸";

shuffle(images);

figureImage.Image = Image.FromFile(images[0]);
imageHolder.Add(images[0]);
images.RemoveAt(0);
Expand All @@ -54,53 +91,170 @@ private void FigureForm_Load(object sender, EventArgs e)
buildTimes();

startTime = times[0];
figCount = quantityList[0];
currentTimeInterval = startTime;
times.RemoveAt(0);
quantityList.RemoveAt(0);

FiguresLeftLabel.Text = "Figures Left: " + figCount.ToString();

FigureTimer.Tick += timerTick;
FigureTimer.Interval = 1000;
FigureTimer.Start();

}

private void timerTick(object sends, EventArgs e)
private void nextImage()
{
startTime--;
TimeLabel.Text = startTime.ToString();
if (images.Count != 0)
{
figureImage.Image = Image.FromFile(images[0]);
imageHolder.Add(images[0]);
images.RemoveAt(0);
}
else
{
foreach (string image in imageHolder)
{
images.Add(image);
}

if (startTime == 0)
imageHolder = new List<string>();
shuffle(images);
figureImage.Image = Image.FromFile(images[0]);
imageHolder.Add(images[0]);
images.RemoveAt(0);
}
if (!wasSkip)
{
FigureTimer.Stop();
figuresCompleted += 1;
}
}

if (times.Count != 0)
{
startTime = times[0] + 1;
times.RemoveAt(0);
private void updateStats()
{

if (File.Exists("stats.txt"))
{
int currentSeconds = 0;
int currentSessions = 0;
int currentFigures = 0;
int lineNum = 0;

if (images.Count != 0)
IEnumerable<string> lines = File.ReadLines("stats.txt");

foreach (string line in lines)
{
if (lineNum == 0)
{
figureImage.Image = Image.FromFile(images[0]);
imageHolder.Add(images[0]);
images.RemoveAt(0);
}
else
currentSeconds = Int32.Parse(line.Substring(line.IndexOf("]") + 1));
}else if (lineNum == 1)
{
currentSessions = Int32.Parse(line.Substring(line.IndexOf("]") + 1));
}else if (lineNum == 2)
{
foreach(string image in imageHolder)
{
images.Add(image);
}
currentFigures = Int32.Parse(line.Substring(line.IndexOf("]") + 1));
}

lineNum++;
}

File.Delete("stats.txt");

FigureTimer.Start();
using (StreamWriter writer = new StreamWriter("stats.txt"))
{
writer.WriteLine("[TimeSpentDrawing]" + (currentSeconds + secondsSpent).ToString());
writer.WriteLine("[NumberOfSessions]" + (currentSessions + 1).ToString());
writer.WriteLine("[NumberOfFigures]" + (figuresCompleted + currentFigures).ToString());
}
else
}
else
{
using (StreamWriter writer = new StreamWriter("stats.txt"))
{
MessageBox.Show("Session completed!");
this.Close();
writer.WriteLine("[TimeSpentDrawing]" + secondsSpent.ToString());
writer.WriteLine("[NumberOfSessions]1");
writer.WriteLine("[NumberOfFigures]" + figuresCompleted.ToString());
}


}
}

private void updateTime()
{
FigureTimer.Stop();

if (times.Count != 0)
{
startTime = times[0];
currentTimeInterval = startTime;
times.RemoveAt(0);

nextImage();

FigureTimer.Start();
}
else
{
MessageBox.Show("Session completed!");
FigureTimer.Tick -= timerTick;
updateStats();
this.Close();
}

figCount -= 1;

if (figCount == 0 && quantityList.Count != 0)
{
figCount = quantityList[0];
quantityList.RemoveAt(0);
}

FiguresLeftLabel.Text = "Figures Left: " + figCount.ToString();


}

private void timerTick(object sends, EventArgs e)
{
startTime--;
secondsSpent += 1;
TimeLabel.Text = startTime.ToString();

if (startTime == 0)
{
updateTime();
}
}

private void PausePlayButton_Click(object sender, EventArgs e)
{
if (playPauseToggle)
{
PausePlayButton.Text = "▶";
playPauseToggle = false;
FigureTimer.Stop();
}
else
{
PausePlayButton.Text = "⏸";
playPauseToggle = true;
FigureTimer.Start();
}
}

private void SkipImageButton_Click(object sender, EventArgs e)
{
FigureTimer.Stop();
wasSkip = true;
nextImage();
wasSkip = false;

startTime = currentTimeInterval;
FigureTimer.Start();
}

private void SkipTimeButton_Click(object sender, EventArgs e)
{
updateTime();
}
}
}
Loading