找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限觀看附件圖片儲值後自動升級用戶組你準備好成為出色的版主了嗎?
mega 無航海王火影上原亞衣fatentr
死神娼館一起洗澡酒館彩月七緒經典大神440753〆my best

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]從Lv2開始開外掛

[繁]月光下的異世界之

(4月新番)[繁]終末的

文化大革命 紀實錄像

[繁]轉生貴族憑鑑定技

[繁]關於我轉生變成史
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1617|回復: 1
打印上一主題下一主題

[作業]期末作業囉))))[複製鏈接]

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
421
積分
1448 點
潛水值
48495 米
樓主
發表於 2009-5-26 03:03 AM|顯示全部樓層
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
不管是3X3還是100X100甚至是1000X1000
難度都是一樣的吧......
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
421
積分
1448 點
潛水值
48495 米
頭香
發表於 2009-5-28 01:52 PM|顯示全部樓層
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #define MAPSIZE 10
  5. #define BOOM 1

  6. class Game
  7. {
  8. public:
  9.         Game();
  10.         void setBoom();
  11.         void showMap_();
  12.         void showMap();
  13.         void gameStart();
  14.         void open(int ,int );
  15. private:
  16.         char map[MAPSIZE][MAPSIZE];
  17.         int mapMask[MAPSIZE][MAPSIZE];
  18. };

  19. int main()
  20. {
  21.         Game *game = new Game();
  22.         game->showMap_();
  23.         game->gameStart();
  24.         return 0;
  25. }

  26. Game::Game()
  27. {
  28.         int j,k,temp;
  29.         setBoom();
  30.         for(j = 0;j < MAPSIZE;j ++)
  31.         {
  32.                 for(k = 0;k < MAPSIZE;k ++)
  33.                 {
  34.                         temp = 0;
  35.                         if(map[j][k] != 'b')
  36.                         {
  37.                                 if(j > 0 && map[j - 1][k] == 'b')
  38.                                 {
  39.                                         temp ++;
  40.                                 }
  41.                                 if(j > 0 && k > 0 && map[j - 1][k - 1] == 'b')
  42.                                 {
  43.                                         temp ++;
  44.                                 }
  45.                                 if(k > 0 && map[j][k - 1] == 'b')
  46.                                 {
  47.                                         temp ++;
  48.                                 }
  49.                                 if(j < MAPSIZE - 1 && k > 0 && map[j + 1][k - 1] == 'b')
  50.                                 {
  51.                                         temp ++;
  52.                                 }
  53.                                 if(j < MAPSIZE - 1 && map[j + 1][k] == 'b')
  54.                                 {
  55.                                         temp ++;
  56.                                 }
  57.                                 if(j < MAPSIZE - 1 && k < MAPSIZE - 1 && map[j + 1][k + 1] == 'b')
  58.                                 {
  59.                                         temp ++;
  60.                                 }
  61.                                 if(k < MAPSIZE - 1 && map[j][k + 1] == 'b')
  62.                                 {
  63.                                         temp ++;
  64.                                 }
  65.                                 if(j > 0 && k < MAPSIZE - 1 && map[j - 1][k + 1] == 'b')
  66.                                 {
  67.                                         temp ++;
  68.                                 }
  69.                                 map[j][k] = temp + '0';
  70.                         }
  71.                 }
  72.         }
  73.         memset(mapMask,0,sizeof(mapMask));
  74. }

  75. void Game::setBoom()
  76. {
  77.         int j,k,l;
  78.         memset(map,0,sizeof(map));
  79.         srand(time(NULL));
  80.         for(j = 0;j < BOOM;j ++)
  81.         {
  82.                 do
  83.                 {
  84.                         k = rand() % MAPSIZE;
  85.                         l = rand() % MAPSIZE;
  86.                 }while(map[k][l] != 0);
  87.                 map[k][l] = 'b';
  88.         }
  89. }

  90. void Game::showMap_()
  91. {
  92.         int j,k;
  93.         for(j = 0;j < MAPSIZE;j ++)
  94.         {
  95.                 for(k = 0;k < MAPSIZE;k ++)
  96.                 {
  97.                         if(mapMask[j][k] == 0)
  98.                                 printf("%c",2);
  99.                         else
  100.                                 printf("%c",map[j][k]);
  101.                 }
  102.                 printf("\n");
  103.         }
  104. }

  105. void Game::showMap()
  106. {
  107.         int j,k;
  108.         for(j = 0;j < MAPSIZE;j ++)
  109.         {
  110.                 for(k = 0;k < MAPSIZE;k ++)
  111.                 {
  112.                         printf("%c",map[j][k]);
  113.                 }
  114.                 printf("\n");
  115.         }
  116. }

  117. void Game::gameStart()
  118. {
  119.         int j,k,temp;
  120.         while(1)
  121.         {
  122.                 scanf("%d%d",&j,&k);
  123.                 if(j < 0 || j > MAPSIZE - 1 || k < 0 || k > MAPSIZE - 1)
  124.                         continue;
  125.                 if(map[j][k] == 'b')
  126.                 {
  127.                         printf("you lose...\n");
  128.                         exit(1);
  129.                 }
  130.                 else
  131.                 {
  132.                         open(j,k);
  133.                 }
  134.                 showMap_();
  135.                 temp = 0;
  136.                 for(j = 0;j < MAPSIZE;j ++)
  137.                               for(k = 0;k < MAPSIZE;k ++)
  138.                                      if(mapMask[j][k] == 1)
  139.                                                temp ++;
  140.                 if(temp + BOOM == MAPSIZE * MAPSIZE)
  141.                 {
  142.                                printf("you win...\n");
  143.                         exit(1);
  144.                 }
  145.         }
  146. }

  147. void Game::open(int j,int k)
  148. {
  149.         if(mapMask[j][k] != 0)
  150.                 return;
  151.         if(j >= 0 && k >= 0 && j < MAPSIZE && k < MAPSIZE)
  152.                 mapMask[j][k] = 1;
  153.         if(map[j][k] == '0')
  154.         {
  155.                 if(j > 0 && k > 0)
  156.                         open(j - 1,k - 1);
  157.                 if(k > 0)
  158.                                 open(j,k - 1);
  159.                 if(j < MAPSIZE - 1 && k > 0)
  160.                                 open(j + 1,k - 1);
  161.                 if(j < MAPSIZE - 1)
  162.                         open(j + 1,k);
  163.                 if(j < MAPSIZE - 1 && k < MAPSIZE - 1)
  164.                         open(j + 1,k + 1);
  165.                 if(k < MAPSIZE - 1)
  166.                         open(j,k + 1);
  167.                 if(j > 0 && k < MAPSIZE - 1)
  168.                         open(j - 1,k + 1);
  169.                 if(j > 0)
  170.                         open(j - 1,k);
  171.         }
  172. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部