雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C#實(shí)現(xiàn)飛行棋小游戲

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊:

本文實(shí)例為大家分享了C#實(shí)現(xiàn)飛行棋小游戲的具體代碼,供大家參考,具體內(nèi)容如下

邏輯圖

 以下是擲色子的一個(gè)代碼,比較有代表性,里面的邏輯和內(nèi)容都已注釋,可通過注釋了解這一方法的運(yùn)作模式。

public static void RowTouZi(int playerPos) //擲色子
 
    {
      //產(chǎn)生隨機(jī)數(shù),擲色子的隨機(jī)數(shù)
      Random r = new Random();
      int num = r.Next(1, 7);
      //定義一個(gè)字符串變量
      string msg = "";
 
      //提示用戶信息
      Console.WriteLine("{0}按任意鍵開始擲色子", PlayerNames[playerPos]);
 
      //不顯示用戶按下的任意鍵
      Console.ReadKey(true); 
 
      //根據(jù)不同的變量的值顯示不同的情況
      Console.WriteLine("{0}擲出了{(lán)1}", PlayerNames[playerPos], num);
      //提示用戶誰開始行動了
      Console.WriteLine("{0}按任意鍵開始行動...", PlayerNames[playerPos]);
      Console.ReadKey(true);
 
      //用戶的坐標(biāo)開始改變
      PlayerPos[playerPos] += num;
 
      //判斷兩個(gè)用戶坐標(biāo)可能出現(xiàn)的問題(重疊的問題)
      if (PlayerPos[playerPos] == PlayerPos[1- playerPos])  
      {
        msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
        PlayerPos[1- playerPos] -= 6;
 
 
      }
      else
      {
        //檢查是否出界
        CheckPos();
        switch (Map[PlayerPos[playerPos]])
        {
          //沒有障礙
          case 0:
            msg ="行動完了";
            break;
            //踩到幸運(yùn)輪盤
          case 1:
            msg = string.Format("{0}走到了幸運(yùn)輪盤,請選擇1--交換位置,2---轟炸對方", PlayerNames[playerPos]);
            
            //進(jìn)行選擇,調(diào)用Readint方法,只可以讓用戶輸入1或2;
            int number = ReadInt(msg, 1, 2);
            
            //進(jìn)行判斷用戶選擇的哪個(gè)方案,進(jìn)行執(zhí)行相應(yīng)的代碼
            if (number == 1)
            {
              //交換位置
              int temp = 0;
              temp = PlayerPos[playerPos];
              temp = PlayerPos[playerPos];
              PlayerPos[playerPos] = PlayerPos[1- playerPos];
              PlayerPos[1- playerPos] = temp;
              msg=string.Format("玩家{0}選擇了玩家{1}交換位置", PlayerNames[playerPos], PlayerNames[1- playerPos]);
 
            }
            else
            {
 
              PlayerPos[1- playerPos] = 0;
              msg = string.Format("玩家{0}選擇了轟炸玩家{1}", PlayerNames[playerPos], PlayerNames[1- playerPos]);
            }
 
 
            break;
          //踩到地雷了
          case 2:
 
 
            msg="踩到地雷了,后退6步";
            //坐標(biāo)后退6
            PlayerPos[playerPos] -= 6;
            //檢查是否出界
            CheckPos();
            break;
          //踩到暫停了
          case 3:
            
            msg ="踩到暫停了";
            //將flag數(shù)組中的false,改為true,執(zhí)行true相應(yīng)的代碼
            flag[playerPos] = true;
            break;
          //踩到了時(shí)空隧道
          case 4:
 
            msg = string.Format("恭喜你,踩到時(shí)空隧道,前進(jìn)10步");
            //坐標(biāo)前進(jìn)10
            PlayerPos[playerPos] += 10;
            //判斷是否出界
            CheckPos();  
            break;
        }
      }
      Console.Clear();  //清除掉原來的地圖
      DrawMap();     //在畫一邊地圖
      
      //因?yàn)橹挥幸环N情況出現(xiàn),所以msg的值經(jīng)過判斷之后也是只有一種,然后將其內(nèi)容顯示出來
      Console.WriteLine(msg); 
    }

小知識總結(jié):

可以通過判斷,顯示內(nèi)容

case 0:
msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
case 1:
msg = string.Format("{0}走到了幸運(yùn)輪盤,請選擇1--交換位置,2---轟炸對方", PlayerNames[playerPos]);
 
Console.WriteLine(msg); 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C#基于Linq和反射實(shí)現(xiàn)數(shù)據(jù)持久化框架Xml4DB詳解

欄    目:C#教程

下一篇:c#實(shí)現(xiàn)圖片的平移和旋轉(zhuǎn)示例代碼

本文標(biāo)題:C#實(shí)現(xiàn)飛行棋小游戲

本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/4682.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有