国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Ruby > 正文

RUBY新手基礎教程

2020-02-24 15:40:53
字體:
來源:轉載
供稿:網友

  Ruby是一種開源的面向對象程序設計的服務器端腳本語言,今天小編跟大家分享一篇RUBY新手基礎教程,感興趣的朋友跟小編一起來了解一下吧!

  第一篇

  自序

  從今天起我就要開始學Ruby了。怎么樣,沒見吧?一個新人寫教程。就憑我堅強的毅力,科學的自學方法,以及我的鉆研精神,我有信心學通Ruby,而同樣是新手的你也可以!由于本教程是菜鳥教萊鳥若有什么不對的地方還請前輩指教!如果沒人看,就當我自愚自樂了。

  ======================================================================

  卷首語

  --------------------------------------------------------------------------

  準備知識

  一、為什么要學Ruby?

  不用說一定是幫助發揮RM的潛力啦。而Ruby有多好多壞都與我無關,因為我學它只為了一個原因--RM!

  二、什么是Ruby?

  它是一種純粹的面向對象編程的腳本語言。這就像C語言啦,就是一種電腦聽得懂的語言,就好比你對電腦大叫一聲“我要上網”它是不會讓你上網的,必須通過一種語言來告訴它,Ruby就是其中之一,當然Ruby也要用打的,不是用說的...

  三、學Ruby要準備啥?當然是RM了,我還準備了三個東西:

  .筆記本--別看不起它,這可是重中之重,你的一些疑問與炅感、研究得出的結論都可記在上面.

  .一個新工程,我暫時把它命名為Test,它將用研究與實踐.

  .另一個新工程,我暫時把它命名為標準,它的作用是萬一你把自帶的Ruby改得面目全非,有它可以做參照。當然RM的腳本數據是保存在 Data 文件夾內的 Scripts.rxdata 文件中的,你也可以對此文件進行備份。

  --------------------------------------------------------------------------

  實踐基礎

  一、關于腳本腳本編輯器:

  .RM中,進入腳本腳本編輯器的方法是按F11或在主菜單「工具」菜單中選擇「腳本編輯器」。。

  .腳本編輯器中一些快捷鍵(感謝carol3,這不是我發現的):

  tab:可以跳格、能夠自動進行縮進

  ctrl + 鼠標滾輪 : 調整文字的大小

  ctrl + F:查找本頁腳本

  ctrl + shift + F:查找所有腳本

  ctrl + H:替換

  ctrl + A:全選

  ctrl + C,ctrl + V:拷貝粘貼

  ctrl + Z,ctrl + Y:撤銷與重做

  F3:和ctrl + F配套使用,"查找下一個"

  F4,F5:選擇上一個/下一個腳本

  F6:把現在選的這一行命名為本腳本名

  ctrl + enter:保存并關閉本窗口

  二、創建程序的步驟:

  .確定程序的目標-比如你的目標是做一個求三角形面積的程序。

  .確定要使用什么樣的方法-我知道S=1/2ah=1/2abSinC,求角度太煩,且后者不是單獨的乘除運算,故吾選前者。

  .創建程序。

  三、編程中應養成的好習慣:

  .寫注釋。很多人認為寫注釋是在浪費時間——但別忘了——當你在寫代碼時,也許你的思路清楚;然而當程序逐漸變大,或當你面對幾個月前寫的代碼時,注釋的作用就顯而易見了。

  在 Ruby 中,# 符號后面的一整行文字會認定為注釋。當你要寫大塊的注釋時, 也可以用 =begin 和 =end 的中間的一切為注釋。

  注釋是綠色的,不會執行,不會影響到程序的運作,只作為編寫者標記的備忘記錄來使用。

  未完成...

  四、編譯錯誤的看法

  當你拼寫、語法有錯誤了,程序就會停止運行,并告訴你相關的信息,此時再按F11進入腳本編輯器,就會看到光標放在了出錯的那一行。

  如圖:

  行:未初始化的常量“Persond”

  具體的方法我還沒有總結。未完成...

  --------------------------------------------------------------------------

  Type&Run

  (本來下文是不準備發的,但有人說本教程寫的有些脫離RM,所以發了下文——不準備發的原因是我不知道carol3的“RGSS區置頂腳本整理中,目前收集腳本:30,望大家添加”一帖中竟然有教程!而且有一部分與我的幾乎一樣,算了,為了保證教程的完整性,我就把我寫的發上來了...絕非抄襲!)

  讓我們來入手Ruby:

  實踐:標題畫面的部分自定義

  實踐目的:

  .學會Ruby的研究方法。

  .學會根據注釋來做一些實驗。

  .熟練腳本編輯器中一些快捷鍵的使用。

  打開腳本腳本編輯器

  .在腳本腳本編輯器的左邊找到scene_title

  .可以在右邊的筐架中看到第一行:

  #=====================================================================

  # Scene_Title

  #------------------------------------------------------------------------------

  # 處理標題畫面的類

  #=====================================================================

  我們知道這是注釋,它的意思就是說scene_title這代碼是用于處理標題畫面的。同理,我們可以隨便看看其它的組(組就是類似scene_title的在腳本腳本編輯器的左邊的一竄一竄的代碼),怎么樣,它們的用途一目了然吧!

  .既然知道它是用于處理標題畫面的,我們就拿它開刀吧!

  游覽一下:讀取數據庫;生成系統對象;...這些都太深奧了在往下看——

  s1 = " 新游戲"

  s2 = " 繼續"

  s3 = " 退出"

  終于看到了熟悉的中國字了,呵!這不是RM中標題畫面的選項嗎!

  看看它上面的注釋——生成命令窗口。果然是標題畫面的選項。

  我們改了它試試:

  s1 = "新的輪回"

  s2 = "舊的回憶"

  s3 = "隨風而逝"

  按ctrl + enter:保存并關閉本窗口。

  再按F12運行游戲。果然成功了!

  .人的野心總是無限的,我還想添加一個關于本游戲!好再試試:

  s1 = "新的輪回"

  s2 = "舊的回憶"

  s3 = "隨風而逝"

  s4 = "關于本游戲"

  .貪得無厭總有一些心虛,再看看它下面的內容再運行游戲吧!

  @command_window = Window_Command.new(192, [s1, s2, s3])

  @command_window.back_opacity = 160

  @command_window.x = 320 - @command_window.width / 2

  @command_window.y = 288

  有x、y大蓋是在說選項的框框吧!糟了,多了一個選項,框框就一定要變長,如果不去修該框框的屬性選項會出現選項無法顯示出來的情況。管它呢!就算是真的我也無能為力...

  第一行有個(192, [s1, s2, s3])s1,s1,s3好象與s1 = "新的輪回"等中的s1,s1,s3說的是同一個東西吧?既然我加了s4,就得把s4也加進去:

  @command_window = Window_Command.new(192, [s1, s2, s3,s4])

  s4;s3之間學它樣也用 , 連接。

  .再運行游戲。果然出現了關于本游戲選項而且框框也能自動調整把四個選項納入其中。可見我們剛才的猜測是錯的,有x、y大蓋是在說框框

  的位置?

  由圖可知:紅色框中的星星與框框上端的相對位置在修改前后沒有變過,而藍框中框框下端與RPG字符的相對位置的相對位置發生了變化,也就是說,框框上端的位置是不變的,當有新的選項時,自動延伸框框的下端。而有x、y大蓋是在說選項的框框的上端的位置?

  .再試試:

  復制代碼 代碼如下:

  s1 = "新的輪回"

  s2 = "舊的回憶"

  s3 = "隨風而逝"

  s4 = "關于本游戲"

  s5 = "asd"

  s6 = "sdasd"

  s7 = "weqw"

  @command_window = Window_Command.new(192, [s1, s2, s3,s4,s5,s6,s7])

  果然,有標題顯示不出了。

  .再看看:

  s1 = "新的輪回"

  s2 = "舊的回憶"

  s3 = "隨風而逝"

  s4 = "關于本游戲"

  @command_window = Window_Command.new(192, [s1, s2, s3,s4,s5])

  這會出錯。

  s1 = "新的輪回"

  s2 = "舊的回憶"

  s3 = "隨風而逝"

  s4 = "關于本游戲"

  @command_window = Window_Command.new(192, [s1, s2, s3])

  關于本游戲將不會被顯示。

  .現在的關于本游戲還無用處。我們可以參照"新的輪回""舊的回憶""隨風而逝"來給它功能。凡是它們有的我都給關于本游戲加上。往下看,注意到有:

  def update

  @command_window.update

  # 按下 C 鍵時

  if Input.trigger?(Input::C)

  case @command_window.index

  when 0 # 新游戲

  command_new_game

  when 1 # 繼續

  command_continue

  when 2 # 退出

  command_shutdown

  end

  end

  end

  when-當...時,這好象類似條件分歧的條件部分,注釋告訴我這是選擇新游戲;繼續;退出不同命令的分歧。

  那么command_new_game;command_continue;command_shutdown就是動作了。他們會不會是Ruby中已經定義過的東西?如果是那么你為關于本游戲寫其它的東西是沒用的。那就讓關于本游戲和退出共用一個東西吧:

  復制代碼 代碼如下:

  def update

  @command_window.update

  # 按下 C 鍵時

  if Input.trigger?(Input::C)

  case @command_window.index

  when 0 # 新游戲

  command_new_game

  when 1 # 繼續

  command_continue

  when 2 # 退出

  command_shutdown

  when 3

  command_shutdown

  end

  end

  end

  運行之,果然是這樣!按了關于本游戲就退出了。可見command_shutdown是用來調用退出命令的。那它會不會是Ruby中已經定義過的東西?我們再往下看:

  .

  #--------------------------------------------------------------------------

  # 命令:新游戲

  #--------------------------------------------------------------------------

  .

  .

  .

  .

  .

  .

  .

  #--------------------------------------------------------------------------

  # 命令:繼續

  #--------------------------------------------------------------------------

  .

  .

  .

  .

  .

  .

  .

  #--------------------------------------------------------------------------

  # 命令:退出

  #--------------------------------------------------------------------------

  這好象是在分類討論。它們都以 def xxxxxxx開頭,而xxxxxxx的內容就是前面分歧中各選項所對的內容了。可見那它不是Ruby中已經定義過的東西。那就為我們自定義留下了余地:

  復制代碼 代碼如下:

  def update

  @command_window.update

  # 按下 C 鍵時

  if Input.trigger?(Input::C)

  case @command_window.index

  when 0 # 新游戲

  command_new_game

  when 1 # 繼續

  command_continue

  when 2 # 退出

  command_shutdown

  when 3

  abc

  end

  end

  end

  復制一下 命令:退出中的內容,并粘貼在退出后,把粘貼的內容中的 def command_shutdown改為def abc。運行之效果和前面一樣。

  好了就我現在的實力,也只能進行到此了,如果懂一些語法,可以把def asd下面的內容改一改。

  --------------------------------------------------------------------------

  總結

  未完成...

  --------------------------------------------------------------------------

  作業

  .程序開發的步驟?

  .試著使用腳本編輯器中一些快捷鍵。

  提高題:

  試著總結腳本編輯器使用中出現的一些錯誤類型及其看法。

  未完成...

  -------------------------------------------------------------------------------------------------------------------------

  答案

  略

  第二篇

  第一章——類,對象和方法

  --------------------------------------------------------------------------

  準備知識

  既然說Ruby是一種純粹的面向對象編程的腳本語言,那么我就從對象開始學起。

  一、對象是什么?

  游戲中的任何東西都可以被可以解釋為對象。

  錢的數目是對象,村長是對象,流氓甲也是象。因為Ruby所能處理的值都是對象,為了方便對象的操作就引進了類的概念。

  二、類是什么?

  對象的種類就稱為類。

  村長和流氓甲屬于NPC類,錢的數目屬于自然數類(注:這里所說的類你可以自己定,你也可以說村長和流氓甲屬于人類:屬于哺乳類:屬于...)

  一些特殊的屬于這個類的對象叫作類的實體(或實例)。

  在日常生活中,我們對一切對象的分類都是有一定層次的。

  我們知道:生物〉動物〉哺乳類〉人類

  村長和流氓甲屬于人類,它就一定有哺乳類的屬性,也就一定有動物的屬性。我們稱生物是動物的父類,動物是生物子類,不難發現子類會繼承父類的屬性。當然也會遇到這樣的情況:父類的某些屬性不可以被某一特定的子類繼承——雖然一般鳥類都會飛,但企鵝是鳥類中不會飛的一個子類。

  得到自然界這種規律的啟發,Ruby就引進了繼承。它大大減少了程序員的工作量,我們只需要定義一個父類(或叫做超類)的屬性,它的子類就會自動繼承它父類的屬性。當然當你遇到像上文提及的那個企鵝特例還要新增或重定義子類和父類之間的區別。繼承的意思,就是保持被繼承者的性質但卻同時擁有自己獨有的特性。

  引進了類只是方便對象的操作,那么究竟怎么操作對象呢?那就要用方法了。

  三、方法是什么?

  方法是某個類中所有的對象專用的命令。

  你只需在某個對象上調用某個方法就可以讓這個對象施行這個方法所代表的方法。而這個被操作的對象稱為“作用實例”或是“方法的參數”。

  比如說你養了許多狗,(狗是一個類,被你養的狗是它的子類)有一個叫旺財(旺財是對象,也是實例),你每天訓練他們坐下(這是在定義一個方法),之后每當你發號坐下這個命令時(這是在調用坐下這個方法)被你養的狗就會坐下。(你就通過方法完成了對對象的操作)。假如被你養的狗還分狼狗和哈巴狗二類,(狼狗和哈巴狗是被你養的狗的子類),它們會繼承它父類中定義過的方法。當然一個類中可以定義許多方法(你可以教狗許多東西)。

  又比如說把Ruby看作CD機,CD機所操作的一切東西——CD就是所有的對象,類是歌曲的風格(如R&M是一類,Rap是另一類);當然你也可以把歌手當類的分法(如周杰倫是一類,陳奕迅是另一類),而調用方法就是按播放按鈕,停止按鈕,暫停按鈕等。

  實踐基礎

  在Ruby中創造一個對象并對其進行操作的步驟如下:

  首先得定義類的屬性——

  一、類的定義

  格式:

  class 類名

  類中定義的內容

  end

  注意:類名必須以大寫字母開頭。

  如果是一個子類就這樣寫:

  class 子類名

  類中定義的內容

  end

  或在定義后面直接寫上:

  class 子類名

  end

  這只是讓父類繼承父類,不是重定義。為什么這么說呢?

  光有一個類還不行,接著再往里面塞方法,以便以后對對象的操作。

  二、方法的定義

  方法的定義寫在“類中定義的內容”那里

  格式:

  def

  方法中定義的內容

  end

  注意:方法必須以小寫字母開頭。

  當然當你遇到像上文提及的那個企鵝特別的子類時,你還要重定義子類和父類之間的區別這叫稱為重載,格式同上。方法的調用如反復定義,則以最后一次為準。

  在子類方法中調用父類相同方法的情況下,要使用關鍵詞 super。super將調用被當前方法覆蓋的父類中的同名方法。

  格式:

  super(定義的內容, ... )

  若省略括號和參數時,將會把當前方法的參數原封不動地傳遞給父類中的同名方法。若調用時不想使用參數的話,請使用括號顯式地標出,像super()這樣。

  最后創造一個屬于這個類的對象(實例)——

  三、實例的創造

  格式:

  實例名 =類名.new

  實例終于創造好了,現在就該對它進行操作了。

  四、方法的調用

  在ruby里,我們通過點 . 來調用一個對象的方法

  格式:

  已創造的實例名.方法名

  如果你要創造一只臨時存在的實例,并給其加上方法:

  (類名.new).方法名

  或:

  類名.new.方法名

  復制代碼 代碼如下:

  class NPC

  def intro

  print "我是NPC?"

  end

  end

  class Lioumang

  def talk

  print "XX在村子的南方"

  end

  end

  流氓甲=Lioumang.new

  流氓甲.talk #顯示 我是NPC?

  流氓甲.intro #因為流氓甲繼承了它的父類的方法,所以顯示 XX在村子的南方

  說明:

  ~5定義一個類——NPC

  ~11定義一個NPC的子類——Lioumang

  ~4為NPC定義一個名叫intro的方法,print " "的做用是顯示“”內的東西。(先不要管它怎么運作的)

  ~10為Lioumang定義一個名叫talk的方法

  創造實例——流氓甲

  為流氓甲調用talk的方法

  為流氓甲調用intro的方法

  二

  復制代碼 代碼如下:

  class NPC

  def intro

  print "aaa"

  end

  end

  class Lioumang

  def intro

  print "bbb"

  end

  end

  流氓甲=Lioumang.new

  流氓甲.intro

  說明:

  顯示的是bbb,可見方法的調萌綬錘炊ㄒ澹蛞宰詈笠淮撾肌5綣?3行變為 流氓甲=NPC.new 則顯示aaa

  三

  復制代碼 代碼如下:

  class NPC

  def intro

  print "aaa"

  end

  def talk

  print "ccc"

  end

  end

  class NPC

  def intro

  print "bbb"

  end

  end

  流氓甲=NPC.new

  流氓甲.intro

  流氓甲.talk

  說明:

  先顯示的是bbb,再顯示ccc,可見類如反復定義,則以保留他們交集的補集,他們的交集以最后一次為準。但如果13行變為 流氓甲=NPC.new 則顯示aaa。

  四

  復制代碼 代碼如下:

  class NPC

  def talk(a=nil) #nil為空集

  p a

  end

  end

  class Lioumang

  def talk(a)

  super(5) # 以5作為參數進行調用

  super(a) # 以5作為參數進行調用

  super # 以5作為參數進行調用,super(a)的簡寫

  a = 1

  super # 以1作為參數進行調用,super(a)的簡寫

  super() # 無參數的調用

  end

  end

  Lioumang.new.talk 5

  說明:

  ~4方法的作用是顯示變量a,而a=nil,既顯示nil

  可見:若省略Super的括號和參數時,將會把當前方法的參數原封不動地傳遞給父類中的同名方法。若調用時不想使用參數的話,請使用括號顯式地標出,像super()這樣。

  以上就是RUBY新手基礎教程,想必都了解了吧,更多相關內容請繼續關注武林技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
九色视频网站| 国产福利片在线| eeuss影院网站免费观看| 18av在线播放| 中文字幕亚洲免费| 国产女主播在线| 国产高清视频在线| 99热免费在线观看| 日本h片在线观看| 国产美女视频一区二区三区| 最近久乱中文字幕| 国产成人亚洲欧美电影| 午夜影院免费看| 丁香花高清在线观看完整版| 国产福利微拍精品一区二区| 开心婷婷激情五月| 国产黄a三级三级三级av在线看 | 国产剧情av在线| 国产精品666| 国自产拍在线网站网址视频| 国产精品久久麻豆| 欧美性猛交xxxxbbbb| 国产三区视频在线观看| 超碰免费在线观看| 中文字幕2019第三页| 丁香花在线电影| 日本成人免费网站| 91在线网址| 国产高清视频在线| √天堂资源地址在线官网| h网站久久久| 精品国产一区二区三区不卡在线 | 一区二区三区四区在线免费视频| 久久亚洲国产成人亚| 99热99re6国产在线播放| 天堂资源在线中文| 国产在线观看18| 羞羞视频在线免费看| 国产二区视频在线观看| 国产精品久久久久久福利| 天堂在线视频| 国产精品亚洲色图| 免费观看久久久久| 不卡av免费观看| 老司机精品视频一区二区| sese一区| 黄色国产网站在线播放| 在线激情网站| 天堂中文在线观看| 国产在线观看色| 天堂中文在线视频| 国产精品黄页网站在线播放免费 | 日本不卡视频一区二区| 国产成人精品18| 91国内精品久久久久| 亚洲最新永久在线观看| www.jizz在线观看| 国产免费视频| 精品推荐蜜桃传媒| 激情丁香在线| 国产夫妻视频| 欧美日韩在线视频免费观看| 狠狠色丁香婷婷| 国产精品视频福利一区二区| 国产aⅴ超薄肉色丝袜交足| 在线国产一区二区三区| 国产在线一二| 99热播在线观看| av中文天堂在线| 18加网站在线| 亚洲综合在线网| 最新国产在线| a级片国产精品自在拍在线播放| 国产专区在线| 在线看黄网址| 国产叼嘿网站免费观看不用充会员| 中文字幕2020第一页| 最新黄网在线观看| www.三区| 国产高清一区二区三区视频| 久久久久久久久亚洲精品| 国产porn在线| 最新中文字幕在线| 青青草中文字幕| 中文字幕av在线| 国产精品视频二区三区| 成人精品一区二区三区免费| 在线观看av中文| 国产一区二区在线|播放| 国内外激情在线| 九九精品九九| 欧美性猛交xxxxbbbb| 亚洲成人福利| a视频在线观看免费| 精精国产xxxx视频在线中文版| 中文字幕视频免费在线观看| 免费在线看v| 免费观看一二区视频网站| 在线视频色在线| 一级二级三级在线观看| 在线免费黄色毛片| 亚洲一区二区三区在线观看网站| 51成人精品网站| 伊人影院在线观看| 四虎国产精品永久在线| 毛片视频免费观看| 尤物在线网址| 国产无遮挡又黄又爽免费软件| 国产理论在线观看| 国产视频2区| 国产精品黄页网站在线播放免费| 中文字幕在线免费观看| 99视频免费在线观看| 九九热在线免费视频| 国产精品偷乱一区二区三区 | 国产网站麻豆精品视频| 国产网站av| 亚洲图区欧美| 狠狠狠狠狠狠操| 国产福利在线看| а√天堂www在线а√天堂视频| www.xxx黄| 国产免费专区| 精品欧美不卡一区二区在线观看| av天天在线| 国产精品一品| av影视在线看| 国产精品一品| 亚洲天堂久久久| 国产免费专区| av中文资源在线| 国产激情二区| 国产美女视频一区二区二三区| 91福利在线视频| 黄色av电影在线播放| 91视频久色| 国产无遮挡又黄又爽免费网站| 亚洲视频精品在线观看| 最近中文字幕大全中文字幕免费| 尤物视频在线观看视频| 国产精品一二三区视频| 伊人影院在线播放| 国产视频三级在线观看播放| 欧美精品se| 99爱视频在线观看| 国产一区二区三区不卡在线| 欧美日韩国产亚洲沙发| av黄色在线观看| 国产爆初菊在线观看免费视频网站 | 精品一区二区在线欧美| 九九热在线视频免费观看| 亚洲午夜久久久久中文字幕| 国产一级视频| 高潮白浆视频| 九九在线观看免费视频| sm国产在线调教视频| 一色桃子av在线| 伊人影院在线观看| 97视频免费| av免费在线一区二区三区| 精品视频三区| 99reav在线| 日本成人a视频| 欧美韩日国产| 非洲黑人最猛性xxxx交| 成人免费一区二区三区视频网站| 免费在线观看a| 麻豆网站在线免费观看| 高清av中文在线字幕观看1| 交视频在线观看国产| 成人午夜无人区一区二区| 五月婷婷开心综合| 国产盗摄一区二区| 在线色视频观看| 欧美日韩国产亚洲沙发| 国产精选在线视频拍拍拍| 国产偷窥洗澡视频| 精品国产高清自在线一区二区三区| 精品麻豆一区二区三区| 亚洲私人影吧| 国产伦精品一区二区三区高清版禁| 国产在线中文字幕| 国产美女极品在线| 69国产精品视频| 免费国产阿v视频在线观看| 最近中文字幕mv免费高清电影 | 欧美亚洲系列| 中中文字幕av在线| 中文字幕av在线播放| 国产自产视频| 天天干天天操天天爽| 中文字幕在线播放网址| 亚洲第一成年免费网站| а天堂8中文最新版在线官网| 中文字幕在线免费| av资源网站在线观看| 国产日本在线观看| 免费a级人成a大片在线观看| 91最新在线| 国产精品爱久久久久久久小说|