黑马程序员--基础总结:飞行棋代码(七)

----------------------  ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlyChess
{
     class Program
    {
         static  int[] map  =  new  int[ 100]; //
         static  int[] playerPos  = {  00 }; // 0A 1:B
         static  void Main( string[] args)
        {
            Random r  =  new Random(); //
             int step  =  0; //
             string message  =  " "; //
             string[] names  =  new  string[ 2]; //
             bool[] isStop  = {  falsefalse }; //
            ShowUI(); //
             //
            Console.WriteLine( " A ");
            names[ 0= Console.ReadLine();
             while (names[ 0==  " ")
            {
                Console.WriteLine( " A ");
                names[ 0= Console.ReadLine();
            }
            Console.WriteLine( " B ");
            names[ 1= Console.ReadLine();
             while (names[ 1==  " "  || names[ 1== names[ 0])
            {
                 if (names[ 1==  " ")
                {
                    Console.WriteLine( " B ");                 
                }
                 if (names[ 1== names[ 0])
                {
                    Console.WriteLine( " BA{0} ", names[ 0]);                  
                }
                names[ 1= Console.ReadLine();
            }
            Console.Clear(); //
             //
            ShowUI();
            Console.WriteLine( " ");
            Console.WriteLine( " {0}A ", names[ 0]);
            Console.WriteLine( " {0}B ", names[ 1]);
            Console.WriteLine( " AB<> ");
            InitialMap(); //
            drawMap(); //
            Console.WriteLine( " ");
             //AB>=99
             while (playerPos[ 0<  99  && playerPos[ 1<  99)
            {
                 if (isStop[ 0==  false)
                {
                    #region //A
                    Console.WriteLine( " A{0}...... ", names[ 0]);
                    ConsoleKeyInfo rec  = Console.ReadKey( true);
                     if (rec.Key  == ConsoleKey.Backspace)
                    {
                        step  =  7;
                    }
                     else  if (rec.Key  == ConsoleKey.F12)
                    {
                        step  =  999;
                    }
                     else
                    {
                        step  = r.Next( 17);
                    }
                    Console.WriteLine( " {0}{1} ", names[ 0], step);
                    Console.WriteLine( " ...... ");
                    Console.ReadKey( true);
                    playerPos[ 0= playerPos[ 0+ step;
                    checkPos();
                     if (playerPos[ 0== playerPos[ 1]) //AB
                    {
                        playerPos[ 1=  0;
                        message  =  string.Format( " {0}{1}{1}退 ", names[ 0], names[ 1], names[ 1]);
                    }
                     else  //A
                    {
                         switch (map[playerPos[ 0]])
                        {
                             case  0:
                                 //
                                message  =  " ";
                                 break;
                             case  1:
                                 //
                                Console.Clear();
                                drawMap();
                                Console.WriteLine( " {0}: ", names[ 0]);
                                Console.WriteLine( " 1---  2--- ");
                                 int input  = readInt( 12);
                                 if (input  ==  1)
                                {
                                     //
                                     int temp  = playerPos[ 0];
                                    playerPos[ 0= playerPos[ 1];
                                    playerPos[ 1= temp;
                                    message  =  string.Format( " {0}{1} ", names[ 0], names[ 1]);
                                }
                                 else  if(input == 2)
                                {
                                    playerPos[ 1= playerPos[ 1-  6;
                                    checkPos();
                                    message  =  string.Format( " {0}{1}{1}退6 ", names[ 0], names[ 1], names[ 1]);
                                }
                                 break;
                             case  2:
                                 //退6
                                playerPos[ 0= playerPos[ 0-  6;
                                checkPos();
                                message  =  string.Format( " {0}退6 ", names[ 0]);
                                 break;
                             case  3:
                                 //
                                isStop[ 0=  true;
                                message  =  string.Format( " {0} ", names[ 0]);
                                 break;
                             case  4:
                                 //10
                                playerPos[ 0= playerPos[ 0+  10;
                                checkPos();
                                message  =  string.Format( " {0}X10 ", names[ 0]);
                                 break;
                        }
                    }
                    Console.Clear();
                    drawMap();
                     if (message  !=  " ")
                    {
                        Console.WriteLine(message);
                    }
                    Console.WriteLine( " {0}{1} ", names[ 0], step);
                    Console.WriteLine( " ********************AB******************** ");
                    Console.WriteLine( " {0}{1} ", names[ 0], playerPos[ 0+  1);
                    Console.WriteLine( " {0}{1} ", names[ 1], playerPos[ 1+  1);
                     if (playerPos[ 0>=  99)
                    {
                         break;
                    }
                    #endregion
                }
                 else
                {
                    isStop[ 0=  false;
                }
                 if (isStop[ 1==  false)
                {
                    #region //B
                    Console.WriteLine( " B{0}...... ", names[ 1]);
                    Console.ReadKey( true);
                    step  = r.Next( 17);
                    Console.WriteLine( " {0}{1} ", names[ 1], step);
                    Console.WriteLine( " ...... ");
                    Console.ReadKey( true);
                    playerPos[ 1= playerPos[ 1+ step;
                    checkPos();
                     if (playerPos[ 1== playerPos[ 0]) //BA
                    {
                        playerPos[ 0=  0;
                        message  =  string.Format( " {0}{1}{1}退 ", names[ 1], names[ 0], names[ 0]);
                    }
                     else  //B
                    {
                         switch (map[playerPos[ 1]])
                        {
                             case  0:
                                 //
                                message  =  " ";
                                 break;
                             case  1:
                                 //
                                Console.Clear();
                                drawMap();
                                Console.WriteLine( " {0}: ", names[ 1]);
                                Console.WriteLine( " 1---  2--- ");
                                 int input  = readInt( 12);
                                 if (input  ==  1)
                                {
                                     //
                                     int temp  = playerPos[ 1];
                                    playerPos[ 1= playerPos[ 0];
                                    playerPos[ 0= temp;
                                    message  =  string.Format( " {0}{1} ", names[ 1], names[ 0]);
                                }
                                 else
                                {
                                    playerPos[ 0= playerPos[ 0-  6;
                                    checkPos();
                                    message  =  string.Format( " {0}{1}{1}退6 ", names[ 1], names[ 0], names[ 0]);
                                }
                                 break;
                             case  2:
                                 //退6
                                playerPos[ 1= playerPos[ 1-  6;
                                checkPos();
                                message  =  string.Format( " {0}退6 ", names[ 1]);
                                 break;
                             case  3:
                                 //
                                 isStop[ 1=  true;
                                message  =  string.Format( " {0} ", names[ 1]);
                                 break;
                             case  4:
                                 //10
                                playerPos[ 1= playerPos[ 1+  10;
                                checkPos();
                                message  =  string.Format( " {0}X10 ", names[ 1]);
                                 break;
                        }
                    }
                    Console.Clear();
                    drawMap();
                     if (message  !=  " ")
                    {
                        Console.WriteLine(message);
                    }
                    Console.WriteLine( " {0}{1} ", names[ 1], step);
                    Console.WriteLine( " ********************AB******************** ");
                    Console.WriteLine( " {0}{1} ", names[ 0], playerPos[ 0+  1);
                    Console.WriteLine( " {0}{1} ", names[ 1], playerPos[ 1+  1);
                     if (playerPos[ 1>=  99)
                    {
                         break;
                    }
                    #endregion
                }
                 else
                {
                    isStop[ 1=  false;
                }
            }
            Console.Clear();
            ShowUI();
             if (playerPos[ 0>=  99) //
            {
                Console.WriteLine( " {0}{1} ", names[ 0], names[ 1]);
            }
             else  if (playerPos[ 1>=  99)
            {
                Console.WriteLine( " {1}{0} ", names[ 1], names[ 0]);
            }
            Console.ReadKey();
        }
         /// <summary>
         /// LOGO
         /// </summary>
         static  void ShowUI()
        {
            Console.WriteLine( " *********************************************************** ");
            Console.WriteLine( " *                                                         * ");
            Console.WriteLine( " *                                               * ");
            Console.WriteLine( " *                                                         * ");
            Console.WriteLine( " *********************************************************** ");
        }
         /// <summary>
         /// 
         /// </summary>
         static  void InitialMap()
        {
             int[] luckyTurn  = {  62340556983 }; // 1 ◎
             int[] landMine  = {  51317333850648094 }; // 2 ★
             int[] pause  = {  9276093 }; // 3 ▲
             int[] timeTravel  = {  20254563728890 }; // 4 
             for ( int i = 0; i  < luckyTurn.Length; i ++)
            {
                map[luckyTurn[i]]  =  1;
            }
             for ( int i  =  0; i  < landMine.Length; i ++)
            {
                map[landMine[i]]  =  2;
            }
             for ( int i  =  0; i  < pause.Length; i ++)
            {
                map[pause[i]]  =  3;
            }
             for ( int i  =  0; i  < timeTravel.Length; i ++)
            {
                map[timeTravel[i]]  =  4;
            }
        }
         /// <summary>
         /// pos
         /// </summary>       
         static  string getMapString( int pos)
        {
             string result  =  " ";
             if (playerPos[ 0== pos  && playerPos[ 1== pos)
            {
                Console.ForegroundColor  = ConsoleColor.Yellow;
                result  =  " <> ";
            }
             else  if (playerPos[ 0== pos)
            {
                Console.ForegroundColor  = ConsoleColor.Yellow;
                result  =  " ";
            }
             else  if (playerPos[ 1== pos)
            {
                Console.ForegroundColor  = ConsoleColor.Yellow;
                Console.Write( " ");
            }
             else
            {
                 switch (map[pos])
                {
                     case  0:
                        Console.ForegroundColor  = ConsoleColor.White;
                        result  =  " ";
                         break;
                     case  1:
                        Console.ForegroundColor  = ConsoleColor.Green;
                        result  =  " ";
                         break;
                     case  2:
                        Console.ForegroundColor  = ConsoleColor.Red;
                        result  =  " ";
                         break;
                     case  3:
                        Console.ForegroundColor  = ConsoleColor.Blue;
                        result  =  " ";
                         break;
                     case  4:
                        Console.ForegroundColor  = ConsoleColor.Cyan;
                        result  =  " ";
                         break;
                }
            }
             return result;
        }
         /// <summary>
         /// 
         /// </summary>
         static  void checkPos()
        {
             for ( int i  =  0; i  <=  1; i ++)
            {
                 if (playerPos[i]  >  99)
                {
                    playerPos[i]  =  99;
                }
                 if (playerPos[i]  <  0)
                {
                    playerPos[i]  =  0;
                }
            }
        }
         /// <summary>
         /// 
         /// </summary>
         static  void drawMap()
        {
            Console.WriteLine( "  ◎   ★  ▲   ");
             //
             for ( int i  =  0; i  <=  29; i ++)
            {
                Console.Write(getMapString(i));
            }
             //
            Console.WriteLine();
             //
             for ( int i  =  30; i  <=  34;i ++ )
            {
                 for ( int j  =  0; j  <  29; j ++)
                {
                    Console.Write( "    ");
                }
                Console.WriteLine(getMapString(i));
            }
             //
             //
             for ( int i  =  64; i  >=  35; i --)
            {
                Console.Write(getMapString(i));
            }
             //
            Console.WriteLine();
             //
             for ( int i  =  65; i  <=  69; i ++)
            {            
                Console.WriteLine(getMapString(i));
            }
             //
             //
             for ( int i  =  70; i  <=  99; i ++)
            {
                Console.Write(getMapString(i));
            }
             //
            Console.WriteLine();
            Console.ResetColor();
        }
         /// <summary>
         /// 
         /// </summary>
         /// <returns></returns>
         static  int reaadInt()
        {
             int i  = readInt( int.MinValue,  int.MaxValue);
             return i;
        }
         /// <summary>
         /// 
         /// </summary>
         /// <param name="min"></param>
         /// <param name="max"></param>
         /// <returns></returns>
         static  int readInt( int min,  int max)
        {
             while ( true)
            {
                 try
                {
                     int number  = Convert.ToInt32(Console.ReadLine());
                     if (number  < min  || number  > max)
                    {
                        Console.WriteLine( " {0}{1} ", min, max);
                         continue;
                    }
                     return number;
                }
                 catch
                {
                    Console.WriteLine( " ");
                }                
            }
        }
    }
}
 




---------------------- 
ASP.Net+Android+IOS开发 .Net培训 、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值