2018-02-09 新聞、對(duì)冒泡排序中for循環(huán)嵌套的理解异吻、AugularJS-指令裹赴、Pygame編寫游戲《外星人入侵》、 JS數(shù)組

第一組:姚成棟 新聞

今天沒(méi)什么干貨要給大家的诀浪,只想給大家看一個(gè)新聞棋返,更精確的說(shuō)是想給大家介紹一個(gè)人。首先簡(jiǎn)單講了一下這條新聞:
北京時(shí)間2月7日雷猪,“獵鷹重型”運(yùn)載火箭從美國(guó)佛羅里達(dá)州肯尼迪航天中心發(fā)射升空睛竣。太空探索技術(shù)公司(SpaceX)官網(wǎng)、美國(guó)全國(guó)廣播公司網(wǎng)站求摇、哥倫比亞廣播公司網(wǎng)站7日消息稱射沟,“獵鷹重型”火箭首次發(fā)射成功,標(biāo)志著人類商業(yè)太空探索的重大突破与境⊙楹唬火箭兩個(gè)助推器同時(shí)完成回收,芯級(jí)火箭海上平臺(tái)回收失敗摔刁。但首射成功這一至關(guān)重要的動(dòng)作挥转,仍讓該火箭奪下當(dāng)今航天界“運(yùn)載火箭之王”的桂冠。這是人類首次實(shí)現(xiàn)重型火箭助推器回收共屈。以往的所有的太空探索所使用的火箭皆一次性使用绑谣,不僅發(fā)射費(fèi)用高昂,同時(shí)還造成了大量的太空垃圾拗引。

而此次火箭發(fā)射的核心人物正是我想給大家介紹的人——Elon Musk借宵。有人說(shuō)他是白日夢(mèng)想家,也有人說(shuō)他是當(dāng)代愛(ài)迪生寺擂,真人版“鋼鐵俠”暇务。在燃油車大行其道的21世紀(jì)初泼掠,馬斯克看到燃油帶來(lái)嚴(yán)重的環(huán)境污染,于是決心創(chuàng)辦使用環(huán)保清潔能源的特斯拉電動(dòng)汽車垦细。最困難的時(shí)候公司只剩下兩三個(gè)人择镇,為了不讓特斯拉破產(chǎn),他想盡辦法讓特斯拉上市括改。卻被華爾街評(píng)為“最不可能成功的公司”腻豌,電視節(jié)目上被主持人公然嘲笑說(shuō)“大家都不應(yīng)該買特斯拉的股票!”嘱能。然而他卻成功連本帶利還清了4億美金的貸款吝梅,而一開始被大家看好的老牌廠商通用和福特卻一直拖欠。他成功地狙擊了各大汽車廠商惹骂,讓特斯拉成為新能源車的代名詞苏携。

看過(guò)特斯拉車子人肯定會(huì)被驚訝到,這么高科技的車对粪。在自動(dòng)駕駛還處于大多數(shù)廠商的研發(fā)測(cè)試階段時(shí)右冻,特斯拉已經(jīng)能成熟地運(yùn)用。特別是model X的鷹翼門設(shè)計(jì)著拭,使第二纱扭、三排乘客即使在狹窄的泊車環(huán)境中也能輕松進(jìn)出車廂,與傳統(tǒng) SUV 車門和 MPV 滑動(dòng)門相比儡遮,提供了前所未有的便利乳蛾。值得一提的是他的鷹翼門上有無(wú)數(shù)的傳感器,即使你在很窄的車位或者很矮的地方停車時(shí)也不會(huì)平道周邊鄙币。

有人說(shuō)馬斯克是賈躍亭肃叶,也有人說(shuō)他是喬布斯,而我認(rèn)為十嘿,他和他們都不一樣被环。他有賈躍亭的夢(mèng)想,但他不會(huì)做白日夢(mèng)详幽。他也有喬布斯的著眼于現(xiàn)實(shí)的革命筛欢,但他比喬更多的是展望于未來(lái),熱衷創(chuàng)造新的賽道唇聘。


第二組:馮佳麗 對(duì)冒泡排序中for循環(huán)嵌套的理解(BubbleSort)

——轉(zhuǎn)載

1. 冒泡排序

冒泡排序是把無(wú)序的數(shù)據(jù)按從小到大的順序進(jìn)行排列版姑。就像它本身的命名一樣,把數(shù)組中小的數(shù)據(jù)值依次往前(或向上)推進(jìn)迟郎,確保數(shù)組0下標(biāo)的數(shù)據(jù)值為整組中最小的數(shù)值剥险。

2. 冒泡排序代碼
1.  //冒泡排序  
2.  public class BubbleSort {  
3.      public static void sort(int[] array){  
4.          int temp=0;//臨時(shí)變量  
5.          for(int i=0;i<array.length-1;i++){ j="array.length-1;j" for(int="" 遍歷數(shù)組內(nèi)的全部數(shù)據(jù)="">i;j--){//用來(lái)比較數(shù)組內(nèi)的數(shù)據(jù),把最小的數(shù)據(jù)往前移動(dòng)  
6.                  if(array[j]<array[j-1]){ pre="" <="" }="" array[j-1]="temp;" array[j]="array[j-1];" temp="array[j];"></array[j-1]){></array.length-1;i++){>  
3. 冒泡中for循環(huán)嵌套的理解
array
-5
50
30

假設(shè)數(shù)組array是[ -5 50 30]的一個(gè)無(wú)序數(shù)組宪肖,經(jīng)過(guò)冒泡排序后變成[-5 30 50]表制。

  1. 第一個(gè)for循環(huán)是用來(lái)控制i來(lái)遍歷數(shù)組內(nèi)的全部數(shù)據(jù)健爬。
    i 表示從這個(gè)數(shù)組下標(biāo)值為 i 的數(shù)據(jù)開始進(jìn)行遍歷。
    比如在array數(shù)組中么介,則是從下標(biāo)值為0的數(shù)據(jù) -5 開始娜遵,往后進(jìn)行遍歷,一直到數(shù)組中的最后一個(gè)數(shù)據(jù)壤短。

  2. 第二個(gè)for循環(huán)(嵌套在第一個(gè)for循環(huán)內(nèi))是用來(lái)比較數(shù)據(jù)值大小——從最后一個(gè)與前一個(gè)開始進(jìn)行循環(huán)设拟,到下標(biāo)值為 i 時(shí)結(jié)束。
    j 表示從這個(gè)數(shù)組最大下標(biāo)值為 j 的數(shù)據(jù)開始久脯,讓這個(gè)數(shù)據(jù)與前一個(gè)數(shù)據(jù)比較大小纳胧。
    若最后這個(gè)數(shù)據(jù)小,則交換兩個(gè)數(shù)據(jù)的值帘撰,然后下標(biāo)值j-1,進(jìn)行剩余數(shù)據(jù)的比較跑慕;反之,不改變最后一個(gè)數(shù)據(jù)的值摧找,然后讓下標(biāo)值j-1,進(jìn)行剩余數(shù)據(jù)的比較相赁。
    比如在array數(shù)組【 -5 50 30】,則從數(shù)據(jù)30與50開始進(jìn)行比較慰于,
    因?yàn)?0<50,交換兩者的數(shù)據(jù)值。那么 a[2] 的數(shù)據(jù)值為50唤衫,a[1] 的數(shù)據(jù)值為30婆赠。
    接著 j- -,比較30與-5佳励,得到a[1]=30休里,a[0]= - 5。

  3. i 和j 控制了從哪一段區(qū)域進(jìn)行比較
    在每一次大循環(huán)(第一個(gè)for + 第二個(gè)嵌套的for)內(nèi)赃承,i 控制起始位置妙黍,j 控制結(jié)束位置。
    假設(shè)arrays為[0 80 5 15 50 20]瞧剖,
    第一趟大循環(huán)內(nèi)拭嫁,所有的比較數(shù)據(jù)為 {0,80抓于,5做粤,15,50捉撮,20} 怕品,
    從數(shù)據(jù)0開始進(jìn)行到數(shù)據(jù)20結(jié)束,比較后的結(jié)果為 {0巾遭,5肉康,80闯估,15,20吼和,50}涨薪;
    第二趟大循環(huán)內(nèi),所有的比較數(shù)據(jù)為 {5纹安,80尤辱,15,20厢岂,50} 光督,
    從數(shù)據(jù)5開始進(jìn)行到數(shù)據(jù)50結(jié)束,比較后的結(jié)果為{5塔粒,15结借,80,20卒茬,50}船老;
    第三趟大循環(huán)內(nèi),所有的比較數(shù)據(jù)為 {15圃酵,80柳畔,20,50}郭赐,
    從數(shù)據(jù)15開始進(jìn)行到數(shù)據(jù)50結(jié)束薪韩,比較后的結(jié)果為{15,20捌锭,80俘陷,50};
    第四趟大循環(huán)內(nèi)观谦,所有的比較數(shù)據(jù)為{20拉盾,80,50}豁状,
    從數(shù)據(jù)20開始進(jìn)行到數(shù)據(jù)50結(jié)束捉偏,比較后的結(jié)果為{20,50泻红,80}告私;
    到這后所有的比較判斷結(jié)束,輸出時(shí)就是一個(gè)有序的數(shù)列了承桥。

  4. 總結(jié)
    冒泡排序中最關(guān)鍵是要了解 <冒泡排序原理> 和 <for嵌套中的for分別控制了什么內(nèi)容>驻粟。


第三組:蔡永堅(jiān) AugularJS-指令

通過(guò)使用模板,我們可以把model和controller中的數(shù)據(jù)組裝起來(lái)呈現(xiàn)給瀏覽器,還可以通過(guò)數(shù)據(jù)綁定蜀撑,實(shí)時(shí)更新視圖挤巡,讓我們的頁(yè)面變成動(dòng)態(tài)的。

模板中可以使用的東西包括以下四種:

  1. 指令(directive):ng提供的或者自定義的標(biāo)簽和屬性酷麦,用來(lái)增強(qiáng)HTML表現(xiàn)力矿卑;
  2. 標(biāo)記(markup):即雙大括號(hào){{}},可將數(shù)據(jù)單向綁定到HTML中沃饶;
  3. 過(guò)濾器(filter):用來(lái)格式化輸出數(shù)據(jù)母廷;
  4. 表單控制:用來(lái)增強(qiáng)表單的驗(yàn)證功能满着。

其中濒翻,指令無(wú)疑是使用量最大的奕塑,ng內(nèi)置了很多指令用來(lái)控制模板扭倾,如ng-repeat,ng-class格带,也有很多指令來(lái)幫你完成業(yè)務(wù)邏輯赎懦,如ng-controller,ng-model鞍帝。

指令的幾種使用方式如下:

  • 作為標(biāo)簽:<my-dir></my-dir>
  • 作為屬性:<span my-dir="exp"></span>
  • 作為注釋:
  • 作為類名:<span class="my-dir: exp;"></span>

其實(shí)常用的就是作為標(biāo)簽和屬性升酣。

樣式相關(guān)的指令

既然模板就是普通的HTML舷暮,那我首要關(guān)心的就是樣式的控制,元素的定位噩茄、字體下面、背景色等等如何可以靈活控制。下面來(lái)看看常用的樣式控制指令绩聘。

  1. ng-class
    ng-class用來(lái)給元素綁定類名沥割,其表達(dá)式的返回值可以是以下三種:
    l 類名字符串,可以用空格分割多個(gè)類名君纫,如’class1 class2;
    與ng-class相近的芹彬,ng還提供了ng-class-odd蓄髓、ng-class-even兩個(gè)指令,用來(lái)配合ng-repeat分別在奇數(shù)列和偶數(shù)列使用對(duì)應(yīng)的類舒帮。這個(gè)用來(lái)在表格中實(shí)現(xiàn)隔行換色再方便不過(guò)了会喝。

  2. ng-style
    ng-style用來(lái)綁定元素的css樣式,其表達(dá)式的返回值為一個(gè)js對(duì)象玩郊,鍵為css樣式名肢执,值為該樣式對(duì)應(yīng)的合法取值。

  3. ng-show译红,ng-hide
    對(duì)于比較常用的元素顯隱控制预茄,ng也做了封裝,ng-show和ng-hide的值為boolean類型的表達(dá)式,當(dāng)值為true時(shí)耻陕,對(duì)應(yīng)的show或hide生效拙徽。框架會(huì)用display:block和display:none來(lái)控制元素的顯隱诗宣。
    表單控件功能相關(guān)指令
    對(duì)于常用的表單控件功能膘怕,ng也做了封裝,方便靈活控制召庞。
    ng-checked控制radio和checkbox的選中狀態(tài)
    ng-selected控制下拉框的選中狀態(tài)
    ng-disabled控制失效狀態(tài)
    ng-multiple控制多選
    ng-readonly控制只讀狀態(tài)
    以上指令的取值均為boolean類型岛心,當(dāng)值為true時(shí)相關(guān)狀態(tài)生效,道理比較簡(jiǎn)單就不多做解釋篮灼。注意: 上面的這些只是單向綁定忘古,即只是從數(shù)據(jù)到模板,不能反作用于數(shù)據(jù)穿稳。要雙向綁定存皂,還是要使用 ng-model 。


第四組:張?jiān)? Pygame編寫游戲《外星人入侵》

五.重構(gòu)模塊game_functions()

import sys
import pygame
from pygame.sprite import Sprite
from alienx import Alien
from bullet import Bullet
from time import sleep

def check_events(ai_settings,screen,states,play_button,ship,aliens,bullets,sb):
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            check_keydown_events(event,ai_settings,screen,ship,bullets)

        elif event.type == pygame.KEYUP:
            check_keyup_events(event,ship)

        elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x,mouse_y = pygame.mouse.get_pos()
            check_play_button(states,play_button,mouse_x,mouse_y,ship,aliens,bullets,ai_settings,screen, sb)

def check_play_button(states,play_button,mouse_x,mouse_y,ship,aliens,bullets,ai_settings,screen,sb):
    button_clicked = play_button.rect.collidepoint(mouse_x,mouse_y)
    if button_clicked and not states.game_active:
        ai_settings.initialize_dynamic_settings()
        pygame.mouse.set_visible(False)

        if play_button.rect.collidepoint(mouse_x, mouse_y):
            states.reset_states()
            states.game_active = True
            states.score = 0
            sb.prep_score()
            aliens.empty()
            bullets.empty()

            create_fleet(ai_settings, screen, aliens)
            ship.center_ship()


def check_keydown_events(event,ai_settings,screen,ship,bullets):
    if event.key == pygame.K_RIGHT:
        ship.moving_right = True
    elif event.key == pygame.K_LEFT:
        ship.moving_left = True
    elif event.key == pygame.K_SPACE:
        fire_bullet(ai_settings,screen,ship,bullets)
    elif event.key == pygame.K_q:
        sys.exit()

def fire_bullet(ai_settings,screen,ship,bullets):
    if len(bullets) < ai_settings.bullets_allowed:
        new_bullet = Bullet(ai_settings, screen, ship)
        bullets.add(new_bullet)

def update_bullets(ai_settings, screen, ship, aliens, bullets, states, sb):
    bullets.update()
    collisions = pygame.sprite.groupcollide(bullets,aliens,True,True)

    #記分
    if collisions:
        for aliens in collisions.values():
            states.score += ai_settings.alien_points1*len(aliens)
            sb.prep_score()

    for bullet in bullets.copy():
        if bullet.rect.bottom <= 0 and len(bullets)>0:
            bullets.remove(bullet)
    if len(aliens) == 0:
        bullets.empty()
        ai_settings.increase_speed()
        create_fleet(ai_settings,screen,aliens)


def check_keyup_events(event,ship):
    if event.key == pygame.K_RIGHT:
        ship.moving_right = False
    elif event.key == pygame.K_LEFT:
        ship.moving_left = False

def create_fleet(ai_settings,screen,aliens):
    alien = Alien(ai_settings,screen)
    alien_width = alien.rect.width
    for line_number in range(3):
        for alien_number in range(8):
            alien = Alien(ai_settings,screen)
            alien.x = alien_width + 2*alien_width*alien_number
            alien.rect.x = alien.x
            alien.rect.y = -6 * alien.rect.height + 2 * alien.rect.height * line_number
            if(alien.rect.right < ai_settings.screen_width and alien.rect.left > 0):
                aliens.add(alien)

def update_screen(ai_settings, screen, sb, ship, aliens, bullets, states, play_button):

    screen.fill(ai_settings.bg_color)
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    ship.blitme()
    sb.show_score()
    aliens.draw(screen)
    if not states.game_active:
        play_button.draw_button()
    #讓最近繪制的屏幕可見
    pygame.display.flip()

def update_aliens(aliens,ai_settings,ship,states,screen,bullets):
    aliens.update(ai_settings)
    check_aliens_bottom(ai_settings, states, screen, ship, aliens, bullets)
    if pygame.sprite.spritecollideany(ship,aliens):
        ship_hit(ai_settings, states, screen, ship, aliens, bullets)

def ship_hit(ai_settings,states,screen,ship,aliens,bullets):
    if states.ship_left > 0:
        states.ship_left -= 1
        aliens.empty()
        bullets.empty()

        create_fleet(ai_settings, screen, aliens)
        ship.center_ship()

        sleep(0.5)
    else:
        states.game_active = False
        pygame.mouse.set_visible(True)


def check_aliens_bottom(ai_settings,states,screen,ship,aliens,bullets):
    screen_rect = screen.get_rect()
    for alien in aliens.sprites():
        if alien.rect.bottom >= screen_rect.bottom:
            ship_hit(ai_settings,states,screen,ship,aliens,bullets)
            break

此文件中包括了對(duì)鍵盤事件的監(jiān)聽等游戲邏輯處理
完整項(xiàng)目見github:
https://github.com/Frued/Python-Alien


第五組:陳孚楠 JS數(shù)組

JavaScript中創(chuàng)建數(shù)組有兩種方式

(一)使用 Array 構(gòu)造函數(shù):

var arr1 = new Array(); //創(chuàng)建一個(gè)空數(shù)組
var arr2 = new Array(20); // 創(chuàng)建一個(gè)包含20項(xiàng)的數(shù)組
var arr3 = new Array("lily","lucy","Tom"); // 創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

(二)使用數(shù)組字面量表示法:

var arr4 = []; //創(chuàng)建一個(gè)空數(shù)組
var arr5 = [20]; // 創(chuàng)建一個(gè)包含1項(xiàng)的數(shù)組
var arr6 = ["lily","lucy","Tom"]; // 創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

數(shù)組的方法有數(shù)組原型方法逢艘,也有從object對(duì)象繼承來(lái)的方法旦袋,這里我們只介紹數(shù)組的原型方法,數(shù)組原型方法主要有以下這些:

join()
push()和pop()
shift() 和 unshift()
sort()
reverse()
concat()
slice()
splice()
indexOf()和 lastIndexOf()
forEach()
map()
filter()
every()
some()
reduce()和 reduceRight()

我覺(jué)得JS數(shù)組里最重要得是長(zhǎng)度的可擴(kuò)展性它改。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疤孕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子央拖,更是在濱河造成了極大的恐慌祭阀,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲜戒,死亡現(xiàn)場(chǎng)離奇詭異专控,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)遏餐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門伦腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人失都,你說(shuō)我怎么就攤上這事柏蘑。” “怎么了粹庞?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵咳焚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我庞溜,道長(zhǎng)革半,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮督惰,結(jié)果婚禮上不傅,老公的妹妹穿的比我還像新娘。我一直安慰自己赏胚,他們只是感情好访娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著觉阅,像睡著了一般崖疤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上典勇,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天劫哼,我揣著相機(jī)與錄音,去河邊找鬼割笙。 笑死权烧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伤溉。 我是一名探鬼主播般码,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乱顾!你這毒婦竟也來(lái)了板祝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤走净,失蹤者是張志新(化名)和其女友劉穎券时,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伏伯,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橘洞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了说搅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炸枣。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜓堕,靈堂內(nèi)的尸體忽然破棺而出抛虏,到底是詐尸還是另有隱情博其,我是刑警寧澤套才,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站慕淡,受9級(jí)特大地震影響背伴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一傻寂、第九天 我趴在偏房一處隱蔽的房頂上張望息尺。 院中可真熱鬧,春花似錦疾掰、人聲如沸搂誉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)炭懊。三九已至,卻和暖如春拂檩,著一層夾襖步出監(jiān)牢的瞬間侮腹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工稻励, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留父阻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓望抽,卻偏偏與公主長(zhǎng)得像加矛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子糠聪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容