diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1ff0c42
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7964536
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,189 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+# User-specific files
+*.suo
+*.user
+*.sln.docstates
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+x64/
+build/
+bld/
+[Bb]in/
+[Oo]bj/
+
+# Roslyn cache directories
+*.ide/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+#NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding addin-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+## TODO: Comment the next line if you want to checkin your
+## web deploy settings but do note that will include unencrypted
+## passwords
+#*.pubxml
+
+# NuGet Packages Directory
+packages/*
+## TODO: If the tool you use requires repositories.config
+## uncomment the next line
+#!packages/repositories.config
+
+# Enable "build/" folder in the NuGet Packages folder since
+# NuGet packages use it for MSBuild targets.
+# This line needs to be after the ignore of the build folder
+# (and the packages folder if the line above has been uncommented)
+!packages/build/
+
+# Windows Azure Build Output
+csx/
+*.build.csdef
+
+# Windows Store app package directory
+AppPackages/
+
+# Others
+sql/
+*.Cache
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.pfx
+*.publishsettings
+node_modules/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+*.mdf
+*.ldf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# LightSwitch generated files
+GeneratedArtifacts/
+_Pvt_Extensions/
+ModelManifest.xml
\ No newline at end of file
diff --git a/Frog/Frog.sln b/Frog/Frog.sln
new file mode 100644
index 0000000..4ef93ec
--- /dev/null
+++ b/Frog/Frog.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.31101.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Frog", "Frog\Frog.csproj", "{FB5290C6-97C0-4075-A376-AC6BA4894C3F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FB5290C6-97C0-4075-A376-AC6BA4894C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FB5290C6-97C0-4075-A376-AC6BA4894C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FB5290C6-97C0-4075-A376-AC6BA4894C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FB5290C6-97C0-4075-A376-AC6BA4894C3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Frog/Frog/AboutBox1.Designer.cs b/Frog/Frog/AboutBox1.Designer.cs
new file mode 100644
index 0000000..db11c52
--- /dev/null
+++ b/Frog/Frog/AboutBox1.Designer.cs
@@ -0,0 +1,187 @@
+namespace Frog
+{
+ partial class AboutBox1
+ {
+ ///
+ /// 設計工具所需的變數。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清除任何使用中的資源。
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form 設計工具產生的程式碼
+
+ ///
+ /// 此為設計工具支援所需的方法 - 請勿使用程式碼編輯器
+ /// 修改這個方法的內容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1));
+ this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.logoPictureBox = new System.Windows.Forms.PictureBox();
+ this.labelProductName = new System.Windows.Forms.Label();
+ this.labelVersion = new System.Windows.Forms.Label();
+ this.labelCopyright = new System.Windows.Forms.Label();
+ this.labelCompanyName = new System.Windows.Forms.Label();
+ this.textBoxDescription = new System.Windows.Forms.TextBox();
+ this.okButton = new System.Windows.Forms.Button();
+ this.tableLayoutPanel.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tableLayoutPanel
+ //
+ this.tableLayoutPanel.ColumnCount = 2;
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
+ this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
+ this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
+ this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
+ this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
+ this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
+ this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
+ this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel.Location = new System.Drawing.Point(9, 8);
+ this.tableLayoutPanel.Name = "tableLayoutPanel";
+ this.tableLayoutPanel.RowCount = 6;
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
+ this.tableLayoutPanel.Size = new System.Drawing.Size(417, 245);
+ this.tableLayoutPanel.TabIndex = 0;
+ //
+ // logoPictureBox
+ //
+ this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
+ this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
+ this.logoPictureBox.Name = "logoPictureBox";
+ this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
+ this.logoPictureBox.Size = new System.Drawing.Size(131, 239);
+ this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.logoPictureBox.TabIndex = 12;
+ this.logoPictureBox.TabStop = false;
+ //
+ // labelProductName
+ //
+ this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelProductName.Location = new System.Drawing.Point(143, 0);
+ this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelProductName.MaximumSize = new System.Drawing.Size(0, 16);
+ this.labelProductName.Name = "labelProductName";
+ this.labelProductName.Size = new System.Drawing.Size(271, 16);
+ this.labelProductName.TabIndex = 19;
+ this.labelProductName.Text = "產品名稱";
+ this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelVersion
+ //
+ this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelVersion.Location = new System.Drawing.Point(143, 24);
+ this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelVersion.MaximumSize = new System.Drawing.Size(0, 16);
+ this.labelVersion.Name = "labelVersion";
+ this.labelVersion.Size = new System.Drawing.Size(271, 16);
+ this.labelVersion.TabIndex = 0;
+ this.labelVersion.Text = "版本";
+ this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCopyright
+ //
+ this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCopyright.Location = new System.Drawing.Point(143, 48);
+ this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 16);
+ this.labelCopyright.Name = "labelCopyright";
+ this.labelCopyright.Size = new System.Drawing.Size(271, 16);
+ this.labelCopyright.TabIndex = 21;
+ this.labelCopyright.Text = "著作權";
+ this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // labelCompanyName
+ //
+ this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.labelCompanyName.Location = new System.Drawing.Point(143, 72);
+ this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
+ this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 16);
+ this.labelCompanyName.Name = "labelCompanyName";
+ this.labelCompanyName.Size = new System.Drawing.Size(271, 16);
+ this.labelCompanyName.TabIndex = 22;
+ this.labelCompanyName.Text = "公司名稱";
+ this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // textBoxDescription
+ //
+ this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.textBoxDescription.Location = new System.Drawing.Point(143, 99);
+ this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
+ this.textBoxDescription.Multiline = true;
+ this.textBoxDescription.Name = "textBoxDescription";
+ this.textBoxDescription.ReadOnly = true;
+ this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.textBoxDescription.Size = new System.Drawing.Size(271, 116);
+ this.textBoxDescription.TabIndex = 23;
+ this.textBoxDescription.TabStop = false;
+ this.textBoxDescription.Text = "描述";
+ //
+ // okButton
+ //
+ this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.okButton.Location = new System.Drawing.Point(339, 221);
+ this.okButton.Name = "okButton";
+ this.okButton.Size = new System.Drawing.Size(75, 21);
+ this.okButton.TabIndex = 24;
+ this.okButton.Text = "確定(&O)";
+ this.okButton.Click += new System.EventHandler(this.okButton_Click);
+ //
+ // AboutBox1
+ //
+ this.AcceptButton = this.okButton;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(435, 261);
+ this.Controls.Add(this.tableLayoutPanel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "AboutBox1";
+ this.Padding = new System.Windows.Forms.Padding(9, 8, 9, 8);
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "AboutBox1";
+ this.tableLayoutPanel.ResumeLayout(false);
+ this.tableLayoutPanel.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+ private System.Windows.Forms.PictureBox logoPictureBox;
+ private System.Windows.Forms.Label labelProductName;
+ private System.Windows.Forms.Label labelVersion;
+ private System.Windows.Forms.Label labelCopyright;
+ private System.Windows.Forms.Label labelCompanyName;
+ private System.Windows.Forms.TextBox textBoxDescription;
+ private System.Windows.Forms.Button okButton;
+ }
+}
diff --git a/Frog/Frog/AboutBox1.cs b/Frog/Frog/AboutBox1.cs
new file mode 100644
index 0000000..834427e
--- /dev/null
+++ b/Frog/Frog/AboutBox1.cs
@@ -0,0 +1,110 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Frog
+{
+ partial class AboutBox1 : Form
+ {
+ public AboutBox1()
+ {
+ InitializeComponent();
+ this.Text = String.Format("關於 {0}", AssemblyTitle);
+ this.labelProductName.Text = AssemblyProduct;
+ this.labelVersion.Text = String.Format("版本 {0}", AssemblyVersion);
+ this.labelCopyright.Text = AssemblyCopyright;
+ this.labelCompanyName.Text = AssemblyCompany;
+ this.textBoxDescription.Text = AssemblyDescription;
+ }
+
+ #region 組件屬性存取子
+
+ public string AssemblyTitle
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ if (attributes.Length > 0)
+ {
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ if (titleAttribute.Title != "")
+ {
+ return titleAttribute.Title;
+ }
+ }
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ public string AssemblyDescription
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ public string AssemblyProduct
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+
+ public string AssemblyCopyright
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+
+ public string AssemblyCompany
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+ #endregion
+
+ private void okButton_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+ }
+}
diff --git a/Frog/Frog/AboutBox1.resx b/Frog/Frog/AboutBox1.resx
new file mode 100644
index 0000000..3477e99
--- /dev/null
+++ b/Frog/Frog/AboutBox1.resx
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+
+
+
\ No newline at end of file
diff --git a/Frog/Frog/App.config b/Frog/Frog/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/Frog/Frog/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frog/Frog/App.xaml b/Frog/Frog/App.xaml
new file mode 100644
index 0000000..090b81d
--- /dev/null
+++ b/Frog/Frog/App.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Frog/Frog/App.xaml.cs b/Frog/Frog/App.xaml.cs
new file mode 100644
index 0000000..6d0dddf
--- /dev/null
+++ b/Frog/Frog/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Frog
+{
+ ///
+ /// App.xaml 的互動邏輯
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/Frog/Frog/Frog.csproj b/Frog/Frog/Frog.csproj
new file mode 100644
index 0000000..3b8dae5
--- /dev/null
+++ b/Frog/Frog/Frog.csproj
@@ -0,0 +1,131 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {FB5290C6-97C0-4075-A376-AC6BA4894C3F}
+ WinExe
+ Properties
+ Frog
+ Frog
+ v4.5
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ Form
+
+
+ AboutBox1.cs
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ AboutBox1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frog/Frog/MainWindow.xaml b/Frog/Frog/MainWindow.xaml
new file mode 100644
index 0000000..dfd6a4f
--- /dev/null
+++ b/Frog/Frog/MainWindow.xaml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Frog/Frog/MainWindow.xaml.cs b/Frog/Frog/MainWindow.xaml.cs
new file mode 100644
index 0000000..39a3237
--- /dev/null
+++ b/Frog/Frog/MainWindow.xaml.cs
@@ -0,0 +1,414 @@
+using Frog;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Media;
+
+
+namespace WpfApplication3
+{
+ ///
+ /// MainWindow.xaml 的互動邏輯
+ ///
+ public partial class MainWindow : Window
+ {
+ Image frog_image, car1_image, car2_image, car3_image;
+ Thickness frog_m, car1_m, car2_m, car3_m;
+ Thickness frog_start_m, car1_start_m, car2_start_m, car3_start_m;
+ System.Timers.Timer t, t2, timer;
+ bool flag = true;
+ bool start = false;
+ Label label_score, label_time;
+ int now_score = 0, now_time = 30;
+ int setting_time = 30;
+ int speed = 10;
+ int max_score = 10;
+ Image horsee;
+
+ public MainWindow()
+ {
+
+ InitializeComponent();
+ init_score();
+ init_frog_location();
+ init_car();
+ init_check();
+ horsee = this.horse;
+ horse.Visibility = Visibility.Hidden;
+ }
+
+ private void init_score()
+ {
+ label_score = this.score;
+ now_score = 0;
+ label_score.Content = now_score;
+ }
+
+ private void init_frog_location()
+ {
+ frog_image = this.frog;
+ frog_m = frog_image.Margin;
+ frog_start_m = frog_m;
+ }
+
+ private void reset_frog_location()
+ {
+ frog_image.Margin = frog_start_m;
+ frog_m = frog_image.Margin;
+ }
+
+
+
+ private void init_car()
+ {
+ car1_image = this.car1;
+ car2_image = this.car2;
+ car3_image = this.car3;
+
+ car1_m = car1_image.Margin;
+ car2_m = car2_image.Margin;
+ car3_m = car3_image.Margin;
+
+ car1_start_m = car1_m;
+ car2_start_m = car2_m;
+ car3_start_m = car3_m;
+
+ t = new System.Timers.Timer(10);
+ t.Elapsed += new System.Timers.ElapsedEventHandler(car_run);
+ t.AutoReset = true;
+ t.Enabled = true;
+ }
+
+ private void init_check()
+ {
+ t2 = new System.Timers.Timer(10);
+ t2.Elapsed += new System.Timers.ElapsedEventHandler(check_collision);
+ t2.AutoReset = true;
+ t2.Enabled = true;
+ }
+
+ delegate void ChgLabelHandler2();
+ private void chgLabel2()
+ {
+ if (frog_m.Top > 100 && frog_m.Top < 200)
+ {
+ if (frog_m.Left == car1_m.Left)
+ {
+ die();
+ }
+ }
+ else if (frog_m.Top > 200 && frog_m.Top < 300)
+ {
+ if (frog_m.Left == car2_m.Left)
+ {
+ die();
+ }
+ }
+ else if (frog_m.Top > 300)
+ {
+ if (frog_m.Left == car3_m.Left)
+ {
+ die();
+ }
+ }
+ }
+
+ private void die()
+ {
+ timer.Stop();
+ t2.Stop();
+ t.Stop();
+
+ BitmapImage bi3 = new BitmapImage();
+ bi3.BeginInit();
+ bi3.UriSource = new Uri("frog-2.png", UriKind.Relative);
+ bi3.EndInit();
+ frog_image.Source = bi3;
+
+ MessageBox.Show("被撞死了!總得分:" + now_score);
+ max();
+
+ BitmapImage bi2 = new BitmapImage();
+ bi2.BeginInit();
+ bi2.UriSource = new Uri("frog-1.png", UriKind.Relative);
+ bi2.EndInit();
+ frog_image.Source = bi2;
+
+ reset_frog_location();
+ init_score();
+ start = false;
+ time.Content = setting_time;
+ t.Start();
+ t2.Start();
+ }
+
+ private void init_timer()
+ {
+ label_time = this.time;
+ now_time = setting_time;
+ label_time.Content = now_time;
+ timer = new System.Timers.Timer(1000);
+ timer.Elapsed += new System.Timers.ElapsedEventHandler(set_timer);
+ timer.AutoReset = true;
+ timer.Enabled = true;
+ }
+
+ delegate void ChgLabelHandler3();
+ private void chgLabel3()
+ {
+ now_time--;
+ label_time.Content = now_time;
+ if (now_time == 0)
+ {
+ timer.Stop();
+ t2.Stop();
+ t.Stop();
+ MessageBox.Show("遊戲結束!總得分:" + now_score);
+ max();
+ horse.Visibility = Visibility.Hidden;
+
+ BitmapImage bi2 = new BitmapImage();
+ bi2.BeginInit();
+ bi2.UriSource = new Uri("frog-1.png", UriKind.Relative);
+ bi2.EndInit();
+ frog_image.Source = bi2;
+ reset_frog_location();
+ init_score();
+ this.time.Content = setting_time;
+ start = false;
+ t.Start();
+ t2.Start();
+ }
+ }
+
+ private void sound()
+ {
+ SoundPlayer _sp = new SoundPlayer();
+ _sp.SoundLocation = "sound.wav";
+ _sp.Play();
+ }
+
+ private void max()
+ {
+ if (now_score > max_score)
+ {
+ Label lb_max = this.tv_max_score;
+
+ lb_max.Content = now_score;
+ max_score = now_score;
+ }
+ }
+
+ public void set_timer(object source, System.Timers.ElapsedEventArgs e)
+ {
+ this.Dispatcher.Invoke(new ChgLabelHandler3(chgLabel3));
+ }
+
+ public void check_collision(object source, System.Timers.ElapsedEventArgs e)
+ {
+ this.Dispatcher.Invoke(new ChgLabelHandler2(chgLabel2));
+ }
+
+ public void car_run(object source, System.Timers.ElapsedEventArgs e)
+ {
+ this.Dispatcher.Invoke(new ChgLabelHandler(chgLabel));
+ }
+
+ delegate void ChgLabelHandler();
+ private void chgLabel()
+ {
+ fun_car1();
+ fun_car2();
+ fun_car3();
+ }
+
+ private void fun_car1()
+ {
+ if (flag)
+ {
+ car1_m.Right = car1_m.Right + speed;
+ car1_m.Left = car1_m.Left - speed;
+ car1_image.Margin = car1_m;
+ if (car1_m.Left < 0)
+ {
+ flag = false;
+ }
+ }
+ else
+ {
+ car1_m.Right = car1_m.Right - 10;
+ car1_m.Left = car1_m.Left + 10;
+ car1_image.Margin = car1_m;
+ if (car1_m.Right < 0)
+ {
+ flag = true;
+ }
+ }
+ }
+
+ private void fun_car2()
+ {
+ car2_m.Right = car2_m.Right + speed;
+ car2_m.Left = car2_m.Left - speed;
+ car2_image.Margin = car2_m;
+ if (car2_m.Left < -139)
+ {
+ car2_image.Margin = car2_start_m;
+ car2_m = car2_start_m;
+ }
+ }
+
+ private void fun_car3()
+ {
+ car3_m.Right = car3_m.Right - speed;
+ car3_m.Left = car3_m.Left + speed;
+ car3_image.Margin = car3_m;
+ if (car3_m.Right < -139)
+ {
+ car3_image.Margin = car3_start_m;
+ car3_m = car3_start_m;
+ }
+ }
+
+
+ private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
+ {
+ if (!start)
+ {
+ start = true;
+ init_timer();
+ }
+
+ Key kPressed;
+ if (e.Key == Key.ImeProcessed)
+ kPressed = e.ImeProcessedKey;
+ else
+ kPressed = e.Key;
+ switch (kPressed)
+ {
+ case Key.Down:
+ frog_m.Top = frog_m.Top + 90;
+ frog_m.Bottom = frog_m.Bottom - 90;
+ frog_image.Margin = frog_m;
+ e.Handled = true;
+ break;
+ case Key.Up:
+ frog_m.Top = frog_m.Top - 90;
+ frog_m.Bottom = frog_m.Bottom + 90;
+ frog_image.Margin = frog_m;
+ e.Handled = true;
+ break;
+ case Key.Left:
+ frog_m.Left = frog_m.Left - 90;
+ frog_m.Right = frog_m.Right + 90;
+ frog_image.Margin = frog_m;
+ e.Handled = true;
+ break;
+ case Key.Right:
+ frog_m.Left = frog_m.Left + 90;
+ frog_m.Right = frog_m.Right - 90;
+ frog_image.Margin = frog_m;
+ e.Handled = true;
+ if (frog_m.Right < 0)
+ {
+ t2.Stop();
+
+ BitmapImage bi3 = new BitmapImage();
+ bi3.BeginInit();
+ bi3.UriSource = new Uri("strong.png", UriKind.Relative);
+ bi3.EndInit();
+ frog_image.Source = bi3;
+ reset_frog_location();
+ sound();
+ horse.Visibility = Visibility.Visible;
+
+ }
+ break;
+ case Key.Space:
+ frog_m.Top = frog_m.Top + 310;
+ frog_m.Bottom = frog_m.Bottom - 311;
+ frog_image.Margin = frog_m;
+ e.Handled = true;
+ break;
+ }
+ if (frog_m.Bottom < 0)
+ {
+ reset_frog_location();
+ now_score++;
+ label_score.Content = now_score;
+ }
+
+ }
+ private void MenuItem_Click(object sender, RoutedEventArgs e)
+ {
+ if (start)
+ {
+ timer.Stop();
+ }
+
+ MessageBox.Show("按上下左右鍵操作青蛙,必須躲避汽車,讓青蛙順利過街。", "遊戲說明", MessageBoxButton.OK, MessageBoxImage.Information);
+
+ reset_frog_location();
+ init_score();
+ start = false;
+
+
+ time.Content = setting_time;
+ t.Start();
+ t2.Start();
+ }
+
+ private void MenuItem_Click_1(object sender, RoutedEventArgs e)
+ {
+ AboutBox1 about = new AboutBox1();
+ about.Show();
+ }
+
+ private void MenuItem_Click_2(object sender, RoutedEventArgs e)
+ {
+ this.Close();
+ }
+
+ private void MenuItem_Click_3(object sender, RoutedEventArgs e)
+ {
+ setting_time = 10;
+ this.time.Content = setting_time;
+ }
+ private void MenuItem_Click_4(object sender, RoutedEventArgs e)
+ {
+ setting_time = 20;
+ this.time.Content = setting_time;
+ }
+ private void MenuItem_Click_5(object sender, RoutedEventArgs e)
+ {
+ setting_time = 30;
+ this.time.Content = setting_time;
+ }
+
+ private void MenuItem_Click_6(object sender, RoutedEventArgs e)
+ {
+ speed = 10;
+ }
+ private void MenuItem_Click_7(object sender, RoutedEventArgs e)
+ {
+ speed = 20;
+ }
+ private void MenuItem_Click_8(object sender, RoutedEventArgs e)
+ {
+ speed = 30;
+ }
+ }
+
+
+}
diff --git a/Frog/Frog/Properties/AssemblyInfo.cs b/Frog/Frog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..af737a9
--- /dev/null
+++ b/Frog/Frog/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("期末專案")]
+[assembly: AssemblyDescription("102306055 莊育新 102306081 賈晉平 102306082 邱擎昀 101306091張元真 101306092 余威毅")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("青蛙過街")]
+[assembly: AssemblyProduct("視窗程式設計")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設定為 false 會使得這個組件中的類型
+// 對 COM 元件而言為不可見。如果您需要從 COM 存取這個組件中
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+//為了建置可當地語系化的應用程式,請設定
+//.csproj 檔案中的 CultureYouAreCodingWith 內部。舉例來說,如果您使用的是 US English
+//將原始程式檔中的 設定成 en-US。然後取消註解
+//底下的 NeutralResourceLanguage 屬性。更新 "en-US"
+//下面一行符合專案檔中的 UICulture 設定。
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //主題特定資源字典的位置
+ //(用於當資源不在頁面、
+ // 或應用程式資源字典)
+ ResourceDictionaryLocation.SourceAssembly //泛用資源字典的位置
+ //(用於當資源不在頁面、
+ // 應用程式,或任何特定主題的資源字典)
+)]
+
+
+// 組件的版本資訊是由下列四項值構成:
+//
+// 主要版本
+// 次要版本
+// 組建編號
+// 修訂編號
+//
+// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
+// 指定為預設值:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Frog/Frog/Properties/Resources.Designer.cs b/Frog/Frog/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..330f82b
--- /dev/null
+++ b/Frog/Frog/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// 這段程式碼是由工具產生的。
+// 執行階段版本:4.0.30319.34014
+//
+// 變更這個檔案可能會導致不正確的行為,而且如果已重新產生
+// 程式碼,這個檔案將會遺失。
+//
+//------------------------------------------------------------------------------
+
+namespace Frog.Properties
+{
+
+
+ ///
+ /// 用於查詢當地語系化字串等的強類型資源類別
+ ///
+ // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder
+ // 類別透過 ResGen 或 Visual Studio 這類工具。
+ // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen
+ // (利用 /str 選項),或重建您的 VS 專案。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// 傳回這個類別使用的快取的 ResourceManager 執行個體。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Frog.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有
+ /// 使用這個強類型資源類別的資源查閱。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Frog/Frog/Properties/Resources.resx b/Frog/Frog/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Frog/Frog/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Frog/Frog/Properties/Settings.Designer.cs b/Frog/Frog/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..b8ff1b9
--- /dev/null
+++ b/Frog/Frog/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.34014
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Frog.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Frog/Frog/Properties/Settings.settings b/Frog/Frog/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/Frog/Frog/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frog/Frog/car-3.png b/Frog/Frog/car-3.png
new file mode 100644
index 0000000..1c71ab5
Binary files /dev/null and b/Frog/Frog/car-3.png differ
diff --git a/Frog/Frog/car-4.png b/Frog/Frog/car-4.png
new file mode 100644
index 0000000..24282c0
Binary files /dev/null and b/Frog/Frog/car-4.png differ
diff --git a/Frog/Frog/car-5.png b/Frog/Frog/car-5.png
new file mode 100644
index 0000000..5961901
Binary files /dev/null and b/Frog/Frog/car-5.png differ
diff --git a/Frog/Frog/cross.jpg b/Frog/Frog/cross.jpg
new file mode 100644
index 0000000..24ea830
Binary files /dev/null and b/Frog/Frog/cross.jpg differ
diff --git a/Frog/Frog/frog-1.png b/Frog/Frog/frog-1.png
new file mode 100644
index 0000000..0e30431
Binary files /dev/null and b/Frog/Frog/frog-1.png differ
diff --git a/Frog/Frog/frog-2.png b/Frog/Frog/frog-2.png
new file mode 100644
index 0000000..d10e98b
Binary files /dev/null and b/Frog/Frog/frog-2.png differ
diff --git a/Frog/Frog/icon.ico b/Frog/Frog/icon.ico
new file mode 100644
index 0000000..52cbd7b
Binary files /dev/null and b/Frog/Frog/icon.ico differ
diff --git a/Frog/Frog/road.png b/Frog/Frog/road.png
new file mode 100644
index 0000000..773a9c1
Binary files /dev/null and b/Frog/Frog/road.png differ
diff --git a/Frog/Frog/sound.wav b/Frog/Frog/sound.wav
new file mode 100644
index 0000000..161b40e
Binary files /dev/null and b/Frog/Frog/sound.wav differ
diff --git a/Frog/Frog/strong.png b/Frog/Frog/strong.png
new file mode 100644
index 0000000..2565a85
Binary files /dev/null and b/Frog/Frog/strong.png differ