using System;
using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApp1{ class Program { //数字9 代表墙 //数字0 代表通路 //数字1 代表入口 只有一个 //数字2 代表出口 只有一个 //数字3 代表已走过 //数字8 代表死胡同 //最终按照3代表的路径走出迷宫 int[,] mg = new int[10, 10] { {9,9,9,9,9,9,9,9,9,9}, {9,1,0,9,0,9,0,9,0,9}, {9,0,9,9,0,0,0,0,0,9}, {9,0,0,0,0,9,9,0,0,9}, {9,0,9,0,9,0,0,0,0,9}, {9,0,0,0,9,0,0,9,9,9}, {9,0,9,0,0,9,0,0,0,9}, {9,0,9,9,9,0,0,9,0,9}, {9,9,0,0,0,0,0,9,2,9}, {9,9,9,9,9,9,9,9,9,9} }; static void Main(string[] args) { //*********九九乘法表******** for (int i = 1; i <10; i++) { for (int j =1; j <10; j++) { if (j <= i) { Console.Write("{0}*{1}={2}\t", i, j, i * j); } } Console.WriteLine(); } Console.ReadKey(); //Helloworld tet = new Helloworld(); //tet.wrie(); //*********九九乘法表********//*********猜数游戏********
//bool temp = true; //Random rd = new Random(); //int i = rd.Next(1, 100), j; //Console.WriteLine("欢迎来玩猜数游戏"); //while(temp == true) //{ // Console.Write("开始游戏,请输入数字:"); // j = Convert.ToInt32(Console.ReadLine()); // if(j > i) // { // Console.WriteLine("你输入的数字太大了,请再来一次!"); // continue; // } // else if (j < i) // { // Console.WriteLine("你输入的数字太小了,请重新输入:"); // continue; // } // Console.WriteLine("恭喜你猜对了!"); // temp = false; //} //*********猜数游戏********//*********加减乘除计算器
// while (true) // { // calcu(); // Console.WriteLine("是否继续执行循环?Y/N"); // string s = Console.ReadLine(); // if(s.ToUpper() == "Y") // { // calcu(); // continue; // } // break; // } // } //static void calcu() // { // Console.WriteLine("请输入第一个数字:"); // float num1 = 0; // float num2 = 0; // string fuhao = ""; // while (true) // { // try // { // num1 = Convert.ToSingle(Console.ReadLine()); // break; // } // catch (Exception) // { // num1 = 0; // Console.WriteLine("输入错误,请重新输入第一个数字:"); // } // } // Console.WriteLine("请输入第二个数字:"); // while (true) // { // try // { // num2 = Convert.ToSingle(Console.ReadLine()); // break; // } // catch (Exception) // { // num1 = 0; // Console.WriteLine("输入错误,请重新输入第二个数字:"); // } // } // Console.WriteLine("请输入运算符(+ - * /):"); // while (true) // { // try // { // fuhao = Console.ReadLine(); // if (fuhao == "+" || fuhao == "-" || fuhao == "*" || fuhao == "/") // break; // fuhao = ""; // Console.WriteLine("运算符输入错误,请重新输入:"); // } // catch (Exception) // { // fuhao = ""; // Console.WriteLine("运算符输入错误,请重新驶入"); // } // } // float num = 0; // switch (fuhao) // { // case "+": num = num1 + num2; break; // case "-": num = num1 - num2; break; // case "*": num = num1 * num2; break; // case "/": num = num1 / num2; break; // } // Console.WriteLine("运算结果出炉:" + num1 + fuhao + num2 + "=" + num); //*********加减乘除计算器//*******迷宫游戏
Program pm = new Program();
Console.WriteLine("原始迷宫:");
for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { Console.Write(pm.mg[i, j] + " "); } Console.WriteLine(); } Console.WriteLine();//走出迷宫
bool bl = pm.getEntrance(); if (bl == false) { Console.Write("未指明迷宫入口! "); return; }point cpt = pm.stk.Pop();
pm.stk.Push(cpt); while (cpt.var != 2) { if (pm.scanUp(cpt)) { cpt = pm.stk.Pop(); pm.stk.Push(cpt); continue; } if (pm.scanDown(cpt)) { cpt = pm.stk.Pop(); pm.stk.Push(cpt); continue; } if (pm.scanLeft(cpt)) { cpt = pm.stk.Pop(); pm.stk.Push(cpt); continue; } if (pm.scanRight(cpt)) { cpt = pm.stk.Pop(); pm.stk.Push(cpt); continue; }pm.mg[cpt.row, cpt.cul] = 8;
cpt = pm.stk.Pop(); }Console.WriteLine("走出迷宫(数字3 代表出迷宫路径):");
for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { Console.Write(pm.mg[i, j] + " "); } Console.WriteLine(); }Console.Write("END");
} public struct point { public int row; public int cul; public int var;}
//路径栈 Stack<point> stk = new Stack<point>();//得到入口 从入口进入
public bool getEntrance() { point ent = new point(); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (mg[i, j] == 1) { ent.row = i; ent.cul = j; mg[i, j] = 3; ent.var = mg[i, j]; stk.Push(ent); return true; } } } return false; } //向上扫描 public bool scanUp(point cpt) { int cr = cpt.row - 1; int cc = cpt.cul;if (cr < 0 || mg[cr, cc] > 2)
{ return false; } if (mg[cr, cc] != 2) mg[cr, cc] = 3; point npt = new point(); npt.row = cr; npt.cul = cc; npt.var = mg[cr, cc]; stk.Push(npt); return true; } //向下扫描 public bool scanDown(point cpt) { int cr = cpt.row + 1; int cc = cpt.cul;if (cr > 10 || mg[cr, cc] > 2)
{ return false; } if (mg[cr, cc] != 2) mg[cr, cc] = 3; point npt = new point(); npt.row = cr; npt.cul = cc; npt.var = mg[cr, cc]; stk.Push(npt); return true; } //向左扫描 public bool scanLeft(point cpt) { int cr = cpt.row; int cc = cpt.cul - 1;if (cc < 0 || mg[cr, cc] > 2)
{ return false; } if (mg[cr, cc] != 2) mg[cr, cc] = 3; point npt = new point(); npt.row = cr; npt.cul = cc; npt.var = mg[cr, cc]; stk.Push(npt); return true; } //向右扫描 public bool scanRight(point cpt) { int cr = cpt.row; int cc = cpt.cul + 1;if (cc > 10 || mg[cr, cc] > 2)
{ return false; } if (mg[cr, cc] != 2) mg[cr, cc] = 3; point npt = new point(); npt.row = cr; npt.cul = cc; npt.var = mg[cr, cc]; stk.Push(npt); return true; }
//**********迷宫游戏
}
}
//*********九九乘法表********//public class Helloworld//{ // public void wrie()// { // for (int i = 1; i < 10; i++)// { // for (int j = 1; j < 10; j++)// { // if (j <= i)// { // Console.Write("{0}*{1}={2}\t", i, j, i * j);// }// }// Console.WriteLine();// }// Console.ReadKey();// }//}//*********九九乘法表********