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