<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大四JAVA實驗(三)

    Posted on 2006-11-01 17:04 久城 閱讀(482) 評論(0)  編輯  收藏
    好幾天沒有好好學習了!~~今兒個要崛起了...

    實驗三???? 警察抓小偷
    ?(一)、實驗目的要求
    ??? 要求學生熟悉多線程編程,并能使用多線程實現程序,進一步了解和使用awt圖形界面。充分的理解多線程的思想。
    ?(二)、實驗設備
    ?(三)、實驗步驟與內容
    ?    定義小偷和警察類,可以用不同的圖形來標示警察和小偷,初始化小偷和警察的位置。利用多線程同時調整警察和小偷的坐標,并根據坐標的變化在畫面上顯示小偷和警察移動路線,當他們之間的距離小于一定的值時,程序終止。
    ??   利用多線程模擬警察抓小偷的游戲。使用AWT圖形界面模仿警察抓小偷的過程。在圖形界面上畫出小偷逃跑的路線。警察按小偷逃跑的方向調整追擊路線。

    代碼如下:
    ??1/**
    ??2*title?警察抓小偷(多線程小測試)
    ??3*@author?realsmy
    ??4*date?2006-11-1?16:56
    ??5*/

    ??6
    ??7import?java.awt.*;
    ??8import?javax.swing.*;
    ??9import?java.util.*;
    ?10
    ?11//創建警察類
    ?12class?Police?implements?Runnable{
    ?13????private?int?px,py;
    ?14????public?static?int?zhua?=?0;
    ?15????Test?t;
    ?16????Police(Test?t){
    ?17????????this.t?=?t;
    ?18????????px?=?30;
    ?19????????py?=?30;
    ?20????}

    ?21????public?void?run(){
    ?22????????while(true){
    ?23????????????//synchronized(t){
    ?24????????????????if(zhua?==?0){
    ?25????????????????????px++;
    ?26????????????????????py++;
    ?27????????????????}

    ?28????????????????else{
    ?29????????????????????if(px?<?t.thief.getTx()){
    ?30????????????????????????px++;
    ?31????????????????????}

    ?32????????????????????if(py?<?t.thief.getTy()){
    ?33????????????????????????py++;
    ?34????????????????????}

    ?35????????????????}

    ?36????????????????try{
    ?37????????????????????Thread.sleep(50);
    ?38????????????????}
    catch(InterruptedException?e){}
    ?39????????????//}
    ?40????????????t.repaint();
    ?41????????}

    ?42????}

    ?43????public?int?getPx(){
    ?44????????return?px;
    ?45????}

    ?46????public?int?getPy(){
    ?47????????return?py;
    ?48????}

    ?49}

    ?50
    ?51//創建小偷類
    ?52class?Thief?implements?Runnable{
    ?53????private?int?tx,ty;
    ?54????public?static?int?tao?=?0;
    ?55????Test?t;
    ?56????Thief(Test?t){
    ?57????????this.t?=?t;
    ?58????????tx?=?300;
    ?59????????ty?=?300;
    ?60????}

    ?61????public?void?run(){
    ?62????????while(true){
    ?63????????????//synchronized(t){
    ?64????????????????if(tao?==?0){
    ?65????????????????????tx--;
    ?66????????????????????ty--;
    ?67????????????????}

    ?68????????????????else{
    ?69????????????????????tx++;
    ?70????????????????}

    ?71????????????????try{
    ?72????????????????????Thread.sleep(100);
    ?73????????????????}
    catch(InterruptedException?e){}
    ?74????????????//}
    ?75????????????t.repaint();
    ?76????????}

    ?77????}

    ?78????public?int?getTx(){
    ?79????????return?tx;
    ?80????}

    ?81????public?int?getTy(){
    ?82????????return?ty;
    ?83????}

    ?84}

    ?85
    ?86//測試類
    ?87public?class?Test?extends?JFrame{
    ?88????private?Container?c;
    ?89????public?Police?police;
    ?90????public?Thief?thief;
    ?91????Thread?p,t;
    ?92????int?a?=0;
    ?93????private?Vector?vt;
    ?94????Test(){
    ?95????????super("老鷹抓小雞");
    ?96????????c?=?getContentPane();
    ?97????????
    ?98????????vt?=?new?Vector();??//用來存儲小偷逃跑坐標
    ?99????????police??=?new?Police(this);
    100????????thief?=?new?Thief(this);
    101????????p?=?new?Thread(police);
    102????????t?=?new??Thread(thief);
    103????????p.start();
    104????????t.start();
    105
    106????????setSize(400,400);
    107????????setLocation(200,200);
    108????????setVisible(true);
    109????}

    110
    111????public?void?paint(Graphics?g){
    112????????g.setColor(new?Color(255,?255,?255));
    113????????g.fillRect(0,?0,?400,?400);
    114????????draw_police();
    115????????draw_thief();
    116????????draw_guiji();
    117????????if(Math.hypot(police.getPx()-thief.getTx(),?police.getPy()-thief.getTy())?<?80){
    118????????????police.zhua?=?1;
    119????????????thief.tao?=?1;
    120????????}

    121????????if(police.getPx()?==?thief.getTx()?&&?police.getPy()?==?thief.getTy()){
    122????????????p.stop();
    123????????????t.stop();
    124????????????try{
    125????????????????JOptionPane.showMessageDialog(null,"警察:小樣,被我逮到了吧!~哈哈哈哈~");
    126????????????}
    catch(HeadlessException?e){}
    127????????????System.exit(0);
    128????????}

    129????????try{
    130????????????Thread.sleep(200);
    131????????}
    catch(InterruptedException?e){}
    132????}

    133????//畫警察的方法
    134????public?void?draw_police(){
    135????????Graphics?g?=?getGraphics();
    136????????g.setColor(Color.green);
    137????????g.drawRect(police.getPx(),police.getPy(),50,50);
    138????????g.drawString("警察",police.getPx()+15,police.getPy()+30);
    139????}

    140????//畫小偷的方法
    141????public?void?draw_thief(){
    142????????Graphics?g?=?getGraphics();
    143????????g.setColor(Color.red);
    144????????g.drawRect(thief.getTx(),thief.getTy(),50,50);
    145????????g.drawString("小偷",thief.getTx()+15,thief.getTy()+30);
    146????????vt.add(thief.getTx()?+?25);
    147????????vt.add(thief.getTy()?+?25);
    148????}

    149????//畫小偷軌跡的方法
    150????public?void?draw_guiji(){
    151????????Graphics?g?=?getGraphics();
    152????????Enumeration?en?=?vt.elements();
    153?????????while(en.hasMoreElements()){
    154?????????????g.setColor(Color.black);
    155????????????g.fillOval((Integer)en.nextElement(),?(Integer)en.nextElement(),?2,?2);
    156?????????}

    157????}

    158????public?static?void?main(String[]?args){
    159????????Test?p?=?new?Test();
    160????????p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    161????}

    162}

    163


    歡迎來訪!^.^!
    本BLOG僅用于個人學習交流!
    目的在于記錄個人成長.
    所有文字均屬于個人理解.
    如有錯誤,望多多指教!不勝感激!


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    Copyright © 久城

    主站蜘蛛池模板: 美女视频黄免费亚洲| 亚洲精品无码永久在线观看你懂的 | 黄网址在线永久免费观看| 亚洲剧情在线观看| 中文字幕人成无码免费视频| 亚洲一区二区三区无码国产| 91九色老熟女免费资源站| 亚洲高清在线mv| 久久久久久久久免费看无码| 一本色道久久88—综合亚洲精品| 免费无码一区二区三区蜜桃大| 国产精品亚洲一区二区无码| 久久夜色精品国产亚洲av| 黄色片免费在线观看| 亚洲国产成人资源在线软件| 男人的好免费观看在线视频| 国产亚洲精品美女2020久久| 亚洲一级黄色视频| 四虎国产成人永久精品免费| 亚洲国产成人精品青青草原| 全免费A级毛片免费看网站| 日本高清不卡中文字幕免费| 亚洲自偷自偷图片| 久久成人国产精品免费软件| 亚洲女女女同性video| 久久国产成人精品国产成人亚洲| 久久这里只精品99re免费| www.亚洲成在线| 亚洲男人av香蕉爽爽爽爽| 99re免费99re在线视频手机版| 亚洲综合久久一本伊伊区| 亚洲av中文无码| 3d成人免费动漫在线观看| 日韩欧美亚洲中文乱码| 亚洲午夜未满十八勿入网站2| 久久精品无码专区免费东京热| 亚洲国产成人手机在线观看| 久久亚洲高清观看| 男女交性永久免费视频播放| 久久国产精品国产自线拍免费| 亚洲小说图区综合在线|