用C#编写猜数、九九乘法表‘、迷宫
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();
// }
//}
//*********九九乘法表********
用C#编写猜数、九九乘法表‘、迷宫的更多相关文章
- python编写九九乘法表代码
打印九九乘法表 代码: #!/usr/bin/env python # -*- coding: UTF-8 -*- # 项目二: # 1.要求:编写九九乘法表 # 2.分析: # 根据九九乘法表的样式 ...
- 用Python编写九九乘法表考虑print自动换行问题
编写了一个简单的小程序九九乘法表,代码如下: for i in range(1,10): for j in range(1,i+1): print(" %d*%d=%d" % (j ...
- Python学习笔记系列——九九乘法表&猜大小
再重新捡起Python,数据库短时间之内已经没啥看的了,不知道今年结束之前能不能Python入门,一直认为自己是没有编程思想的... 1.九九乘法表 #九九乘法表实现的一种方式之一 def Multi ...
- 使用VS2017进行Python代码的编写并打印出九九乘法表
我们来盘一盘怎么使用VS2017进行python代码的编写并打印出九九乘法表. 使用Visual Studio 2017进行Python编程不需要太复杂的工作,只需要vs2017安装好对Python的 ...
- 使用 JavaScript 用循环嵌套输出乘法表。外循环控制行数,内循环控制当前行要输出的乘法表达式,在页面上输出九九乘法表
查看本章节 查看作业目录 需求说明: 在页面上输出九九乘法表,实现效果如图所示 实现思路: 创建HTML页面 在页面中嵌入 <script type="text/javascript& ...
- 编写Java程序,使用循环结构打印出九九乘法表
编写Java程序,使用循环结构打印出九九乘法表 效果如下: 实现代码: public class Multiplication99 { public static void main(String[] ...
- 编写一个jsp页面,输出九九乘法表。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- 九九乘法表,全js编写,放入table表格带入页面渲染出来
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用lambda编写九九乘法表
Java 8 出来有一段时间了,支持lambda表达式 非常的赞. lambda表达式 即匿名方法,属于一种轻量级的封装 lambda表达式的语法由参数列表.箭头符号->和函数体组成.函数体既可 ...
随机推荐
- 深入Redis漏斗限流
漏斗限流是最常用的限流方法之一,漏斗流水的速率大于灌水的速率,漏斗就永远装不满,反之水就会溢出. 所以漏斗的剩余空间就代表当前行为可以持续进行的数量,水流出的速率代表系统允许该行为的最大频率. imp ...
- ffmpeg中的x264编码选项,对应关系
)’ Disabled. ‘variance (1)’ Variance AQ (complexity mask). ‘autovariance (2)’ Auto-variance AQ (expe ...
- 如何使用 TP中的公共函数 (定义在common/common.php中的函数)
如何使用 TP中的公共函数 (定义在common/common.php中的函数) (2011-09-30 15:32:09) 转载▼ 标签: 杂谈 1.在common/common.php 中有个 ...
- Servlet 服务器 HTTP 响应
状态行包括 HTTP 版本(在本例中为 HTTP/1.1).一个状态码(在本例中为 200)和一个对应于状态码的短消息(在本例中为 OK). 下表总结了从 Web 服务器端返回到浏览器的最有用的 HT ...
- Tomcat虚拟目录
x先来看一段server.xml文件里的配置: <Host appBase="" autoDeploy="true" debug="0" ...
- node.js中的路由(url)初步
1.建立n4_root.js var http = require('http'); var url = require('url'); //这是node.js中自带的var router = req ...
- 部署vuejs dist文件,通过node.js编译
前期准备: 1. Linux环境,安装配置node.js ① 下载地址:http://nodejs.cn/download/ ,下载linux 64位 ② 已编译好的压缩包,解压到指定目录 cd / ...
- 【BZOJ2005】[Noi2010]能量采集 欧拉函数
[BZOJ2005][Noi2010]能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把 ...
- Tarjan 求桥,割,强连通
最近遇到了这种模板题,记录一下 tarjan求桥,求割 #include <bits/stdc++.h> using namespace std; #define MOD 99824435 ...
- B - Catch That Cow (抓牛)
B - Catch That Cow Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...