1. 5個完全免費的黑科技軟體,令人驚嘆
【Windows超級管理器】是一個功能極其強大的功能強大的系統管理軟體,除了提供系統信息的檢測外,還提供了自啟管理,用戶操作痕跡清理,硬碟信息分析和保護、文件粉碎等系統實用功能,另外還有幾十個系統小工具包括硬碟測速、修改Host、批量改名等熱需求功能。
最重要的是,這個系統管理神器不會像某衛士,某管家一樣給你塞各種彈窗以及亂七八糟的營銷廣告,非常干凈,不僅適合開發者使用,小白用戶上手也沒有什麼難度。
Windows上的時鍾應用其實多到數不勝數,功能也大同小異。所以一個款優質的桌面時鍾應用就輪到拼顏值了。最近發現了一個UI設計很好看的桌面時鍾,界面極其簡潔,而且和Win10以上系統的設計風格很搭,另外提供了很細致的功能設置,包括可顯示一些系統信息譬如開機時間,CPU,內存佔用率,當下網速等。
想必不少人會有音頻剪輯的需求,其實這類需求我建議的第一選擇是Adobe家的《Audition》,極其專業的音頻剪輯工具。不過它家正版的軟體都是非常昂貴,而且體積也比較多,動不動就一個G以上。其實作為普通用戶只想簡單剪輯下音頻,犯不著付出這么大的代價。另外一款免費開源的跨平台、免費開源的錄音、編輯聲音編輯器《Audacity》即可滿足一般的編輯需求。
《Audacity》提供了理想的音樂文件功能自帶的聲音效果包括回聲,更改節拍,減少噪音,而內建的剪輯、復制、混音與特效功能。雖然說UI設計是簡陋了點,但實際上功能是很強的,最重要的是開源且完全免費就可以用到如此專業的音頻剪輯工具,香爆了。
【鴨力巨大】是一個免費的圖片/視頻在線壓縮神器,圖片壓縮方面,支持JPG、PNG、GIF格式的圖片壓縮,另外可以選擇有損壓縮、無損壓縮以及自定義高級模式進行圖片壓縮,並可以根據自己的需求調整圖片大小。壓縮的演算法很給力,就算選擇了有損壓縮,測試一張5M大小的原圖,壓縮後剩下937KB左右,可見下方的對比圖,不放大的情況下,肉眼不會發現很明顯的壓縮痕跡,細節還是保持不錯的。當然,如果你想追求更高的畫質就用無損壓縮吧。另外圖片壓縮限制最大支持100M,基本上可以滿足大多數用戶的需求。當然了,視頻壓縮的就有些雞肋了,雖然支持mp4、avi、flv、mov等多種格式視頻,但也限制100M內,對於視頻來說著實太小了。
在後台有不少網友留言問有無完全免費的思維導圖工具,不要那種打著免費的旗號但實際卻要內購才能解鎖一些功能。
其實此前整理過一期免費無套路的《分享3個免費好用的思維導圖工具》,包括網路腦圖,gitmind,freemind等等,具體可見上述文章。那麼今天繼續分享多一個完全免費思維導圖工具【知犀思維導圖】,有在線版和客戶端版本。模式基本跟gitmind類似,但個人認為顏值上【知犀思維導圖】更小清新一些。
功能上基本上和主流的思維導圖工具差不了多少,節點可以自由無限添加,邏輯圖也提供了各種不同場景下的主題,包括思維風暴,魚骨圖,組織結構圖,氣泡圖,橋圖等十幾種樣式。另外還提供了非常多分類的思維導圖模板,都是網友們自行製作出來的優質模板,你可以直接套用來修改。導出提供圖片,PDF,Word文檔,txt以及Markdown五種方式。
2. 免費的java快速開發平台有哪些
一、方正集團
二、ES2007
1、ES2007介紹
方正飛鴻智能信息平台(Fix ES2007)是方正集團推出的國內領先企業基礎架構中間件平台。Fix ES2007平台基於SOA架構體系,結合數據建模、業務建模、可視化流程引擎、動態表單設計等多種實現工具,其柔性的特點,保障了基於ES2007平台開發的系統可在.net平台與j2ee平台上無縫的切換運行,是企業應用開發的一個高效、強大、開放的開發工具。
2、ES2007技術特點
•高效的平台業務邏輯擴展
•組織機構設置和許可權機制
•強大的工作流引擎和任務監控,協同機制
•應用部署以及模塊運行,升級,管理機制
•強大的工作流引擎
•圖形化工作流程設計
•所見即所得表單設計
•完善安全的許可權分配體系
3、產品特性
•大並發海量數據的支撐
•即時通訊工具的外網通訊
•即時通訊工具的平台開發性
•全面的SOA 支持
•流程引擎標准化、性能更優
•全面的資料庫支持(Oracle,Sqlserver,DB2,Sybase,Mysql)
•全面的WEB 伺服器支持(iis,tomcat,websphere,weblogic,jboss,glassfish,apusic)
•全面的AJAX 技術的運用
•全面的瀏覽器支持(IE,FireFox,Chrome)
•富客戶端技術的支持(Flex,silverlight)
•平台介面更標准,更易用
4、產品組件
•業務邏輯 建模工具 Studio
•流程引擎 Workflow
•表單設計 Formdesign
•資料庫工具 DTS
•即時通訊 MSQ
•統一界面管理 Portal
•多種主題管理 Theme
•快速高效的代碼開發框架 SDK
•企業應用集成EAI
•業務流程管理BPM
•面向服務架構 SOA
5、特色創新
• 快速開發性
開發效率提升高達70%、10 分鍾可以完成一個流程全過程開發、1 天可以完成一個小型應用(如OA 辦公系統)。
• 企業信息管理特徵組件
封裝了大量的企業信息管理不同行業的特徵組件和業務模型,讓使用者更關注於業務,從而使其從技術中解放出來,能迅速的構架用戶的業務系統。
• 跨語言
可以無縫的在C#和JAVA 語言中切換,可以順利的在.Net 和J2EE 平台上切換,是全球唯一款支持跨語言的中間件平台。大多數軟體公司在為用戶服務時往往會被用戶左右,而用戶很多情況會對需求發生變更,而對語言的變更也不在少數,而一旦發生,對與開發商來說將是致命的,因為語言是不互通的,換一門系統的開發語言,將會把系統的工作量放大兩倍,而使用本平台,這些問題將不復存在。
• 多資料庫
支持主流關系型資料庫,如Oracle,Sqlserver,DB2,Sybase,Mysql。
• 跨平台
支持多操作系統,如WINDOWS,LINUX,UNIX,使用戶部署時不用再關心終端伺服器,只需要關注用戶系統的業務開發即可。
6、案例
【支持的平台技術和產品】
FIX ES2007業務基礎平台支持廣泛的平台、系統和應用技術,構建在ES2007業務平台上的業務系統,具有最廣泛的技術兼容性和可擴展性:
•操作系統支持
支持如下網路操作系統:NT,UNIX,Linux等。
支持如下客戶端:WindowsXP及更高版本,瀏覽器IE6.0及更高版本。
•資料庫支持
支持如下資料庫介面:ODBC,JDBC,BADO。
支持Oracle 9i 及更高版本、SQL Server 2000及更高版本等資料庫。
•組件和匯流排支持
支持如下組件和匯流排標准:COM,ActiveX,OLE,.Net。
•分布計算和服務支持
支持如下分布計算和服務技術:DCOM,EJB(J2EE)。
支持如下分布計算支撐環境:.Net、BEA WebLogic、IBM WebSphere等。
•Web服務支持
支持如下Web服務支持技術:Serverlet,ISAPI/NSAPI。
支持如下主流Web伺服器產品:MS IIS、BEA WebLogic、IBM WebSphere等。
•網路和應用協議
支持多種應用協議,包括:
通訊協議:HTTP、TCP/IP
郵件協議:SMTP,POP3
應用協議:DCOM、EJBIIOP、EJBRMI
基於FastUnit平台實現快速開發:可視化、無代碼、快速開發。
三、J-HI是一款JAVA WEB應用軟體快速開發開源平台,
主要服務於軟體企業和傳統行業企事業單位信息中心的開發人員,為他們提供一套完整的一站式的JAVA WEB應用軟體快速開發解決方案。
平台包括如下幾個部分:
1、J-HI平台集成環境:J-HI團隊開發了一個集成開發環境J-HI Studio,在此集成開發環境之上,開發人員能夠快速搭建自己的開發環境,創建自己的模型,快速生成代碼。
2、核心框架:平台為Java代碼與JS代碼之間提供了一套完整的面向對象的核心框架支撐系統,可以認為這是一個抽象層,無論是在頁面表現上,還是 在 CURD的任意一層,平台均提供了最大限度的抽象。用以保證平台本身的可擴展性、穩定性及靈活性。J-HI平台中提供了大量的API(Java與JS),為用戶在開發過程中隨需調用,從而進一步加快開發速度,保證代碼質量。
3、業務平台功能:包括許可權管理、組織結構、枚舉管理、國際化管理、任務管理、日誌管理、Excel報表管理、消息管理等。
4、工作流:包括工作流引擎及流程編輯器等。
具體資料參考地址:http://fei-6666.iteye.com/blog/993452
3. 什麼叫開源軟體
什麼是開源軟體?
1997春天,自由軟體社團的一些領導者聚集到加利福尼亞州。這個社團包括EricRaymond,TimO』Rerlly,VA Research的總裁Larry Augustin等人,他們所關心的是一種尋找方式,來向以前躲避自由軟體思想的人們推廣這種思想。他們擔心,自由軟體基金會的反商業信條會讓人們對自由軟體敬而遠之。
在Eric Raymond的堅持下,這群人同意他們所缺乏的是市場營銷活動,這個活動的目的是贏得思想,而不僅僅是市場份額。最後討論的結果產生了一個新的術語來描述他們所推進的軟體:Open Source(開煩擾軟體)。他們制定了一系列的指導原則,用來描述哪些軟體可以有資格被稱為開源軟體。
Bruce Perens 為制定開源軟體的定義做了很多基礎性的工作。GNU工程的正式目標之一就是創造一個自由可用的操作系統,以作為平台來運行GNU軟體。從軟體引導(softwera boottstrapping)的傳統觀點來看,Linux已經成為那個平台,L inux是在GNU工具的幫助下創造出來的。Perens曾經是Debian工程的領導者,它所管理的Linux發行版本,只包括那些符合GNU精神的軟體。Perens已經在「Debian社會契約」(Debian Social Contract)中明確地闡明了這一立場。開源軟體的定義是「Debian社會契約」的直接產物,因此開源軟體是與GNU的精神一脈相承的。
與GPL相比,開源軟體的定義允許更大授權自由。特別是當軟體中混合了專有軟體和開源軟體時,開源軟體的定義允許在它們的基礎上生成更大的混合。
結果是,開源軟體許可證能令人信服地允許使用和再分開開源軟體,而不必考慮補償或者信用問題。舉例來講,你可以得到偉大的Netscape瀏覽器的源代碼,並且把它作為連同另一個軟體(可能是專有軟體)一起發布出去,而用不著去通知網景(Netscape)公司。網景為什麼會希望如此呢?原因很多,最引人注目的是,這樣做可以為他們的客戶端代碼贏得更大的市場份額。這些代碼與他們的商業軟體一起工作得的非常好。從這個角度來說,奉送源代碼是建立平台的一個很好的方式。這也是網景的人不使用GPL的原因之一。
這在社團中可不是小事一樁。1998年下半年,曾經有一場重要的爭論對Linux威脅極大,幾乎Linux社團破裂。裂痕是因出現了兩個軟體系統GNOME和KDE而引發的,它們兩者都試圖建立一個面向對象的桌面界面。一方面,KDE利用了Troll Technology公司的Qt庫,其中的一部分屬於專有代碼,但是很穩定、很成熟。另一方面,GNOME決定使用GTK+庫,盡管它不如Qt成熟,但是它是完全自由的庫。
過去,Troll Technology不得不在使用GPL和維持他們的專有軟體立場之間進行選擇。GNOME和KDE的裂痕本來會持續下去。然而,在開源軟體出現後,雖然Troll仍然控制他們想要的技術,但是Troll可以為希望Qt符合開源軟體定義的人改變他們的許可證。Linux社團兩個重要部分的裂痕看來要彌合了。
4. 開源的快速開發平台有哪些
快速開發平台,就是可以使得開發更為快速的開發平台。當開發平台產生之後,雖然減少了編程人員大量的編程時間,但是很多開發平台的效果並不是很理想,比如說某些開發平台比較復雜、難以掌握;有的開發平台通用性比較差;有的開發平台在時間上並沒有得到改善;還有的依然還是需要寫很多代碼等等。這些問題的存在促使開發者不斷的摸索、不斷的改進,到最後越做越成熟,以致於現在市面上出現的大部分開發平台效率都非常高,他們改善了以往的產品存在的缺陷,使得開發過程比以往更簡潔、編寫代碼更少、開發效率越來越高。
如天翎快速開發平台1:微服務架構,採用spring cloud框架實現,機卡分離,2:表單引擎:類同word操作一樣,方便容易上手,可視化配置實現,對於一些特殊場景如主子表動,主從架構刷新重計算等有顯著效果。3:流程引擎:中國式國情最佳落地實踐者,特色業務場景如掛起,催辦。加強。多人搶占辦理等直接配置實現,同時流程流轉中表單哪些欄位可見,隱藏,修改等許可權控制勾選實現。
·整合快速、拓展靈活,著力構建強大的端到端鏈接能力;·掌握流程管理大腦流程引擎核心科技,更適應中國式流程管理;·提供完善的可視化流程軟體開發套件,成熟、穩定、安全。·傳承BPM經典理論指導,專注提升政企組織控制力與執行力;天翎17年技術積累和持續打磨的第4代業務流程管理平台;·融合微服務架構、多租戶模式、集群部署等新特性於一體。
5. 常用的開源軟體有哪些
1、Dolibarr
Dolibarr是一個免費的開源ERP軟體包,該軟體為中小型實體、基金會和自由職業者提供大量的業務和組織解決方案。它的主要特點是企業資源規劃(ERP)和客戶關系管理(CRM),這些是當今復雜和數據豐富的組織的基本功能。
2、WinSSHTerm
WinSSHTerm是一款綠色單文件SSH客戶端工具,這款工具結合了PuTTY/KiTTY,Winscp和VcXsrv等多個開源工具,還包括對復制文件和啟動X應用程序的內置支持,方便用戶直接使用。
3、IconMeter
IconMeter是一款開源免費,簡單實用的系統監測工具,它是一個適用於MSWindows的小型notifyicon系統性能表。採用c#製作,顯示小的notifyicon,可以在小條形圖中顯示當前的CPU、內存、磁碟和網路負載等信息,直觀方便。
4、RedisDesktopManagerwindows
RedisDesktopManagerwindows是一款簡單快速、跨平台的Redis桌面管理工具,也被稱作Redis可視化工具,是一款開源軟體,支持通過SSHTunnel連接,支持windows、mac等多平台。
5、Catfish(鯰魚)Blog
Catfish(鯰魚)Blog是一款開源的PHPBlog系統,其衍生於優秀的內容管理系統:Catfish(鯰魚)CMS,秉承了Catfish(鯰魚)CMS的先進設計理念,並且專注於個人博客系統,使用十分便捷。
6. 有沒有類似JEECG的免費開源快速開發平台
免費的軟體開發平台有2中狀態:
1、自己生成代碼
2、低代碼配置式
JEECG是屬於代碼生成式的,也可以理解成腳本式;目前有好幾家廠商都是這樣的:天翎、炎黃盈動、K2、起步等,都是這樣的,有些通過腳本實現復雜業務邏輯以及判斷節點呈現,效果很好
7. 8個免費且功能強大的軟體,全都開源
在軟體領域,開源軟體是一個很重要的分支。開發者可以利用開源社區的各項目代碼進行二次開發,用戶也可以用成品直接作為一些付費軟體的替代品,因為絕大多數開源軟體都是可免費使用(當然也有一些開源軟體是授權付費才能使用),所以出了一期《10個免費且強大的開源軟體,不花錢真爽》,這期文章得到不少小夥伴的收藏,後台跟我說想要收集更多免費開源軟體。安排!後續整理成專欄形式方便大家翻閱。
其實,現在很多第三方的torrent下載客戶端都是基於【qBittorrent】進行二次修改,所以如果你想用原汁原味的,那直接用【qBittorrent】這個完全無廣告且免費的開源下載工具即可,配置好Tracker伺服器地址,掛著速度也不差。
【diagrams】是一個開源免費的繪制流程圖和示意圖的軟體,相信很多人也知道,在流程圖繪制軟體這個類目,被許多人青睞的就是微軟的【Microsoft Office Visio】了,不過Visio是收費軟體,而【diagrams】是完全免費。
可以看到,【diagrams】提供了流程圖、UML圖、腦力圖等非常多的模板等,滿足用戶的各種制圖需求。普通用戶使用我認為是不輸【Visio】的,完全可以勝任專業制圖需求了,包括提供了多種圖形供用戶挑選,如箭頭、基本、通用等;有各種各樣的UML類圖,能滿足日常使用需求;可以將畫布縮小進行查看,並能夠進行圖層設置;有數字排版、插件、標簽、配置等選項;視圖中有網格、陰影、參考線、便箋本等之類等等,功能上可以說是非常齊全的。
關鍵是免費啊,太香了。
【bongo cat mver】是一款畫風很萌的創意桌面,它以一隻非常可愛的小貓咪的形式展示,能夠根據滑鼠、鍵盤操作做出相應的動作,你在滑鼠鍵盤上按下什麼鍵,這只小貓咪就會同步按下這些鍵位。另外一共有四種模式供用戶選擇,包括鍵鼠、繪畫、手柄還有純鍵盤,另外它支持用戶自定義設置五十多個音頻和按鍵,並且可以動手diy小貓的形象,趣味性十足。
既然提到PDF,就不得不說另外一個用戶熱需求——PDF閱讀器,其實這類工具非常多,其中不乏佼佼者如Adobe Acrobat Pro DC,國產的福昕PDF閱讀器等老牌軟體,從軟體功能的角度毫無疑問它們是極其優秀的,但它們不是有的功能要付費,就是體積稍大。普通用戶大多隻需要簡單的閱讀功能即可。
那麼只需《Sumatra PDF》這款軟體即可,它是一款免費開源的pdf閱讀器, 此軟體免費、小巧,除了pgup/pgdn翻頁外,還可用p/n(previous,netx)翻頁,功能極度精簡,速度很快。甚至它還支持電子書(ePub, Mobi),XPS,DjVu,CHM和 漫畫書(CBZ和CBR)等格式,簡直是一個閱讀神器。另外還官網還提供了免安裝版本,也就是說你可以放在網盤或U盤上,在任何一台Win系統的電腦使用。
相信不少用戶這幾年都發現,現在的視頻站點越來越多使用M3U8這種格式,是因為M3U8可以做多碼率的適配,根據網路帶寬,客戶端會自動選擇一個適合自己碼率的文件進行播放,保證視頻流的流暢。但是它的文件也是又多又碎,想要下載回來其實會有很多文件,那就得用專門的下載工具才能完整下載。譬如【M3U8-Downloader】使用了基於FFmpeg開源技術,使用非常方便,只需要輸入m3u8地址,選擇需要的視頻格式,比如mp4,再選擇下載路徑,然後點擊下載,M3U8-Downloader就會幫你把這個播放列表裡的視頻都下載回來,並且自動合並成一個視頻文件。【M3U8-Downloader】自帶嗅探功能,視頻格式支持 FLV、MP4、MKV 和 TS。
不得不吐槽微軟自帶的圖片瀏覽器真是弱雞,支持的格式並不是很多,而且稍微大一點的圖片載入就比較卡頓。【ImageGlass】是一款免費常用的開源圖像瀏覽工具,支持常見的超過70種圖像格式,絕對夠你用的。顯示圖片速度更加流暢,載入更加快速,另外還可以將圖片轉換不同格式,界面設計也比以前介紹過給大家的開源圖片瀏覽器XnView要好看很多,更現代化的設計。
【OBS studio】是一款開源的錄屏軟體,主要是主播用於直播的工具。OBS studio輸出格式多,輸出質量高,支持60FPS,支持1080p,支持實時推流(直播用),系統佔用少的不掉幀,另外它還擁有高性能實時視頻/音頻捕獲和混合,帶有每個源濾波器的直觀音頻混合器,例如雜訊門,雜訊抑制和增益。全面控制VST插件支持。
【OBS studio】還可以創建由多種錄制來源組成的視頻場景,包括窗口捕獲,圖像,文本,瀏覽器窗口,網路攝像頭,捕獲卡等,不限數量。簡單來說,就是你希望錄屏的時候,在視頻里邊顯示什麼內容,都可以自定義。
1、先簡要設置好視頻和音頻的輸出參數。
2、在軟體界面下方的「來源」功能區,點擊 + 號,添加我們要錄制的場景,這里我們選擇「顯示器捕獲」即可,就可以錄制整個屏幕了。
3、當然有的小夥伴會問,如何自定義錄屏的位置和大小呢?猿仔告訴大家一個逆向思維方法,即通過拉大源場景,使得場景大於錄制框,然後拖動場景,就可以實現自定義錄屏的位置了。
4、最後點擊軟體界面右下角的「開始錄制」,錄制完畢後,點擊同個按鈕,結束錄制。文件會自動保存至默認路徑下(路徑詳見軟體的輸出設置)。
綜上,OBS studio雖然功能強大,性能強勁,但是初學者可能不太好上手,可能會遇到各種問題。比如添加捕獲源的時候沒反應,這就需要將NVADIA設置里邊的3D設置,將OBS軟體的首選圖形處理器改為集成圖形。有興趣的小夥伴可以試試,在技術層面,OBS配得上最良心這三個字。
8. 求一款免費的開源的快速開發平台。急急急
1、專業的軟體快速開發平台:myapps低代碼平台和flowportal低代碼平台都提供了免費版本,不限用戶,不限功能,前者還不限並發,後者限制在20條流程內,對於大多數中小企業來說足夠了,關鍵的因為是專業型平台,已經有足夠多的付費用戶在前面打磨過了,所以新用戶可以免遭小白鼠的命運;
2、開源的快速開發平台:好處就是免費咯!但是問題也很突出,沒有服務保障,廠家也沒有責任對你用的好不好及用不好的結果負責,個人認為業務愛好研究還行,但正要給客戶商用,那還是三思而後行;
3、SaaS化開發平台:好處是便宜!但是問題也很突出,功能限制多(限制時間、限制用戶數、限制並發的都有),計費規則復雜,計費陷阱也很多,關鍵的業務數據的安全性存疑,建議還是繼續觀望吧。
經過近二十年發展,低代碼平台在國內發展已經非常成熟,建議有條件的要上,沒條件的創造條件也要上,在業務場景日以變革、客戶要求日益提高的今天,「開發效率+個性化」對於軟體公司和終端企業來說都太重要啦!
9. 下載軟體的平台有哪些
下載軟體的平台很多,下面列舉比較優秀的幾個:
1、Windows絕贊應用
它收錄了350+款Windows應用,每款都精挑細選,符合實用、無侵入性廣告、尊重隱私、持續維護、上手簡單和兼容性強等特徵,拒絕破解版、地區受限和網頁封裝應用。
目前,Windows絕贊應用項目已涵蓋隱私安全、音視頻工具、系統增強、網路通信、數據恢復、文件管理等23類優質應用,全部明確標識有是否付費、開源、跨平台、支持多語言等,還額外提供了優秀國產應用和流氓黑名單分類,直觀高效。
10. 有哪些免費的軟體開發平台
importjava.awt.*;
importjavax.swing.*;
@SuppressWarnings("serial")
{
ControlSnakecontrol;
Toolkitkit;
Dimensiondimen;
publicstaticvoidmain(String[]args){
newMainClass("mysnake");
}
publicMainClass(Strings){
super(s);
control=newControlSnake();
control.setFocusable(true);
kit=Toolkit.getDefaultToolkit();
dimen=kit.getScreenSize();
add(control);
setLayout(newBorderLayout());
setLocation(dimen.width/3,dimen.height/3);//dimen.width/3,dimen.height/3
setSize(FWIDTH,FHEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
publicstaticfinalintFWIDTH=315;
publicstaticfinalintFHEIGHT=380;
}
importjava.util.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.Timer;
importjava.util.Random;
@SuppressWarnings("serial")
{
Randomrand;
ArrayList<Point>list,listBody;
Stringstr,str1;
staticbooleankey;
intx,y,dx,dy,fx,fy,flag;
intsnakeBody;
intspeed;
publicControlSnake(){
snakeBody=1;
str="上下左右方向鍵控制P鍵暫停...";
str1="現在的長度為:"+snakeBody;
key=true;
flag=1;
speed=700;
rand=newRandom();
list=newArrayList<Point>();
listBody=newArrayList<Point>();
x=5;
y=5;
list.add(newPoint(x,y));
listBody.add(list.get(0));
dx=10;
dy=0;
fx=rand.nextInt(30)*10+5;//2
fy=rand.nextInt(30)*10+5;//2
setBackground(Color.WHITE);
setSize(newDimension(318,380));
finalTimertime=newTimer(speed,this);
time.start();
addKeyListener(newKeyAdapter(){
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==37){
dx=-10;
dy=0;
}elseif(e.getKeyCode()==38){
dx=0;
dy=-10;
}elseif(e.getKeyCode()==39){
dx=10;
dy=0;
}elseif(e.getKeyCode()==40){
dx=0;
dy=10;
}elseif(e.getKeyCode()==80){
if(flag%2==1){
time.stop();
}
if(flag%2==0){
time.start();
}
flag++;
}
}
});
}
publicvoidpaint(Graphicsg){
g.setColor(Color.WHITE);
g.fillRect(0,0,400,400);
g.setColor(Color.DARK_GRAY);
g.drawLine(3,3,305,3);
g.drawLine(3,3,3,305);
g.drawLine(305,3,305,305);
g.drawLine(3,305,305,305);
g.setColor(Color.PINK);
for(inti=0;i<listBody.size();i++){
g.fillRect(listBody.get(i).x,listBody.get(i).y,9,9);
}
g.fillRect(x,y,9,9);
g.setColor(Color.ORANGE);
g.fillRect(fx,fy,9,9);
g.setColor(Color.DARK_GRAY);
str1="現在的長度為:"+snakeBody;
g.drawString(str,10,320);
g.drawString(str1,10,335);
}
publicvoidactionPerformed(ActionEvente){
x+=dx;
y+=dy;
if(makeOut()==false){
JOptionPane.showMessageDialog(null,"重新開始......");
speed=700;
snakeBody=1;
x=5;
y=5;
list.clear();
list.add(newPoint(x,y));
listBody.clear();
listBody.add(list.get(0));
dx=10;
dy=0;
}
addPoint(x,y);
if(x==fx&&y==fy){
speed=(int)(speed*0.8);//速度增加參數
if(speed<200){
speed=100;
}
fx=rand.nextInt(30)*10+5;//2
fy=rand.nextInt(30)*10+5;//2
snakeBody++;//2
}//2
repaint();
}
publicvoidaddPoint(intxx,intyy){
//動態的記錄最新發生的50步以內的移動過的坐標
//並畫出最新的snakeBody
if(list.size()<100){//蛇身長度最長為100
list.add(newPoint(xx,yy));
}else{
list.remove(0);
list.add(newPoint(xx,yy));
}
if(snakeBody==1){
listBody.remove(0);
listBody.add(0,list.get(list.size()-1));
}else{
listBody.clear();
if(list.size()<snakeBody){
for(inti=list.size()-1;i>0;i--){
listBody.add(list.get(i));
}
}else{
for(inti=list.size()-1;listBody.size()<snakeBody;i--){
listBody.add(list.get(i));
}
}
}
}
publicbooleanmakeOut(){
if((x<3||y<3)||(x>305||y>305)){
returnfalse;
}
for(inti=0;i<listBody.size()-1;i++){
for(intj=i+1;j<listBody.size();j++){
if(listBody.get(i).equals(listBody.get(j))){
returnfalse;
}
}
}
returntrue;
}
}