用C#写的扫雷程序源代码

合集下载

c语言心形编程代码的原理及应用

c语言心形编程代码的原理及应用

C语言心形编程代码的原理及应用1. 简介C语言是一种高级程序设计语言,拥有广泛的应用领域。

其中,心形编程代码是一种常见的图形编程示例,它通过C语言编写代码在控制台上生成一个心形图案。

本文将介绍心形编程代码的原理及应用。

2. 心形编程代码的原理心形编程代码的原理是通过在控制台上绘制符号字符来生成心形图案。

具体步骤如下:2.1 设置控制台画布首先,需要将控制台的大小设置为适合显示心形图案的尺寸。

可以使用C语言提供的相关函数来获取控制台的大小并设置画布的尺寸。

2.2 绘制心形图案绘制心形图案的过程可以分为两个步骤,分别绘制上半部分和下半部分。

2.2.1 绘制上半部分上半部分的绘制可以通过使用一系列符号字符来实现。

可以根据心形的形状定义一个字符数组,数组中的每个元素表示一行字符。

每行字符的数量和上下两个点之间的距离有关,可以通过调整字符数组的元素来改变上半部分的形状。

2.2.2 绘制下半部分下半部分的绘制与上半部分类似,只需要将上半部分的符号字符按照相反的顺序进行绘制即可。

2.3 显示心形图案绘制完成后,需要将生成的心形图案显示在控制台上。

可以使用C语言提供的输出函数将绘制好的图案输出到控制台。

3. 心形编程代码的应用心形编程代码具有一定的应用价值,可以用于表达情感、制作贺卡等场景。

3.1 表达情感通过生成心形图案,可以用简单的代码表达深深的情感。

将心形编程代码应用于情人节礼物、生日祝福等场景,可以给人一种特殊的感受。

3.2 制作贺卡心形图案可以作为一种简单而特别的贺卡设计元素。

通过在控制台上生成心形图案,可以制作个性化的贺卡,为亲朋好友送上温馨祝福。

3.3 学习图形编程心形编程代码可以作为学习图形编程的一个案例,对初学者来说非常友好。

通过理解和修改心形编程代码,可以熟悉C语言的基本语法和控制台绘图的原理。

4. 总结本文介绍了C语言心形编程代码的原理及应用。

通过在控制台上绘制符号字符,可以生成美观的心形图案。

c语言逆序输出整数

c语言逆序输出整数

c语言逆序输出整数逆序输出整数是一种常见的程序设计问题,通常可以通过使用循环和取模运算来实现。

在C语言中,我们可以使用以下代码来实现逆序输出整数:```c#include <stdio.h>void reversePrint(int num) {while (num > 0) {int digit = num % 10;printf("%d", digit);num /= 10;}}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("逆序输出整数为:");reversePrint(num);printf("\n");return 0;}```以上代码中,我们定义了一个`reversePrint`函数,用于逆序输出整数。

函数内部使用了一个循环,每次取出整数的最后一位数字并输出,然后将整数除以10,重复此过程直到整数变为0。

在`main`函数中,我们首先提示用户输入一个整数,然后调用`reversePrint`函数进行逆序输出。

下面,我将对以上代码进行详细解析,并探讨一些与逆序输出整数相关的问题。

**1. 问题的提出**逆序输出整数是一种常见的程序设计问题,它要求我们将输入的整数的各个数字按照相反的顺序输出。

例如,如果输入整数为1234,则逆序输出为4321。

这个问题在实际中有很多应用场景,比如密码学中的数字颠倒、数字翻转等。

**2. 解决方法**为了实现逆序输出整数,我们可以使用循环和取模运算。

具体步骤如下:- 首先,我们定义一个函数`reversePrint`,它的参数是一个整数。

- 在`reversePrint`函数内部,我们使用一个循环来不断取出整数的最后一位数字并输出。

- 每次循环中,我们使用取模运算符`%`来获取整数的最后一位数字,然后使用`printf`函数输出。

c语言中停车场收费金额计算代码

c语言中停车场收费金额计算代码

c语言中停车场收费金额计算代码停车场收费金额计算是一个常见的问题,特别是在城市中心或商业区,停车场的收费是必不可少的。

而在实际生活中,为了准确计算收费金额,我们通常会使用C语言来编写相关的程序。

在C语言中,我们可以使用变量、运算符和控制语句来实现停车场收费金额的计算。

首先,我们需要定义一些变量来存储相关的信息,比如停车时长、收费标准等。

然后,我们可以使用运算符来进行计算,最后通过控制语句来输出计算结果。

在停车场收费计算中,关键的因素之一是停车时长。

通常情况下,我们会根据停车时长来确定收费金额。

假设停车场的收费标准是每小时5元,那么我们可以根据停车时长来计算收费金额。

我们需要定义一个变量来存储停车时长,假设我们将其命名为"parkingTime"。

然后,我们可以使用C语言中的运算符来计算停车时长对应的收费金额。

具体的计算公式是:收费金额= 停车时长* 单价。

根据我们的假设,单价为5元,所以我们可以将公式修改为:收费金额 = 停车时长 * 5。

在C语言中,乘法运算可以使用"*"符号来表示。

接下来,我们可以使用控制语句来输出计算结果。

在C语言中,我们可以使用printf函数来输出结果。

假设我们将输出的内容命名为"totalAmount",那么我们可以使用以下代码来实现输出功能:```cprintf("停车时长:%d小时\n", parkingTime);printf("收费金额:%d元\n", totalAmount);```在上述代码中,%d是C语言中的格式控制符,用于输出整数类型的变量。

通过使用格式控制符,我们可以将变量的值嵌入到输出的字符串中,从而实现输出功能。

除了停车时长,停车场还可能根据其他因素来确定收费金额,比如停车场类型、停车场位置等。

在实际应用中,我们可以根据具体需求来扩展代码,以实现更加复杂的收费计算功能。

c语言求长方形的面积和周长

c语言求长方形的面积和周长

c语言求长方形的面积和周长长方形是一种常见的几何形状,具有独特的性质和特点。

在数学中,我们可以通过计算来求得长方形的面积和周长。

本文将以C语言为工具,探讨如何使用编程语言计算长方形的面积和周长。

我们需要了解长方形的定义。

长方形是一种具有四条边的四边形,其中对边两两平行且长度相等。

长方形的两条相邻边相互垂直,因此也可以看作是一个特殊的平行四边形。

这些特点将对我们计算面积和周长提供便利。

在C语言中,我们可以使用变量和运算符来实现对长方形面积和周长的计算。

首先,我们需要定义长方形的长和宽两个变量,分别表示长方形的边长。

假设我们将长方形的长定义为length,宽定义为width。

接下来,我们可以使用以下公式来计算长方形的面积和周长:面积 = 长× 宽周长= 2 × (长 + 宽)在C语言中,我们可以使用赋值运算符和算术运算符来实现这两个计算过程。

具体代码如下所示:#include <stdio.h>int main() {// 定义长方形的长和宽int length = 5;int width = 3;// 计算长方形的面积和周长int area = length * width;int perimeter = 2 * (length + width);// 输出结果printf("长方形的面积为:%d\n", area);printf("长方形的周长为:%d\n", perimeter);return 0;}在上述代码中,我们首先使用变量length和width分别表示长方形的长和宽,并进行了赋值操作。

然后,我们使用乘法运算符计算长方形的面积,将结果赋给变量area。

接着,我们使用加法和乘法运算符计算长方形的周长,将结果赋给变量perimeter。

我们使用printf函数将计算结果输出到屏幕上。

通过格式化字符串,我们可以在输出时显示相应的信息,使结果更加清晰明了。

c语言三点坐标求三角形面积

c语言三点坐标求三角形面积

c语言三点坐标求三角形面积标题:用C语言计算三角形面积引言:在几何学中,计算三角形面积是一个基本问题。

本文将介绍使用C 语言编写程序来计算三角形面积的方法。

通过这个过程,你将了解如何使用C语言中的数学运算和变量来解决几何学问题。

让我们开始吧!1. 导入必要的头文件为了使用C语言中的数学函数和变量类型,我们需要导入头文件。

在这个程序中,我们将使用math.h头文件。

2. 定义三点坐标三角形由三个点组成,每个点都有x和y坐标。

我们可以使用结构体来表示这些坐标。

首先,我们定义一个名为Point的结构体,它包含两个浮点数类型的变量x和y。

3. 输入三个点的坐标接下来,我们需要从用户那里获取三个点的坐标。

我们可以使用scanf函数来实现这一点。

对于每个点,我们将提示用户输入x和y 坐标,并将它们存储在Point结构体变量中。

4. 计算三角形的边长我们可以使用两点之间的距离公式来计算三角形的边长。

对于三个点A(x1, y1)、B(x2, y2)和C(x3, y3),边AB的长度可以通过以下公式计算:AB = sqrt((x2 - x1)^2 + (y2 - y1)^2)。

5. 计算三角形的半周长半周长可以通过三角形的边长之和除以2来计算。

为了计算半周长,我们需要使用上一步计算出的三个边长。

6. 计算三角形的面积三角形的面积可以通过海伦公式来计算。

海伦公式如下所示:面积= sqrt(s * (s - a) * (s - b) * (s - c)),其中a、b和c分别表示三角形的三边长,s表示半周长。

7. 输出结果我们将计算出的三角形面积打印到屏幕上,以便用户查看。

结论:通过本文,我们学习了如何使用C语言来计算三角形的面积。

我们首先定义了一个Point结构体来表示三个点的坐标,然后从用户那里获取了这些坐标。

接下来,我们使用数学公式计算了三角形的边长、半周长和面积,并将结果打印到屏幕上。

这个程序可以帮助我们更好地理解C语言中的数学运算和变量使用。

c返回数组的函数

c返回数组的函数

c返回数组的函数C语言是一种非常流行的编程语言,它被广泛应用于各种领域,包括嵌入式系统、操作系统、网络编程等。

在C语言中,数组是一种非常重要的数据结构,它可以用来存储一组相同类型的数据。

在本文中,我们将讨论如何使用C语言返回数组的函数。

在C语言中,函数是一种非常重要的概念。

函数可以用来封装一段代码,使其可以被多次调用。

在C语言中,函数可以返回各种类型的值,包括整数、浮点数、字符等。

但是,如果我们想要返回一个数组,该怎么办呢?在C语言中,返回数组的函数可以使用两种方式:指针和数组。

下面我们将分别介绍这两种方式。

使用指针返回数组在C语言中,指针是一种非常重要的概念。

指针可以用来存储变量的地址,使得我们可以通过指针来访问变量。

在使用指针返回数组时,我们可以定义一个指向数组的指针,并将其作为函数的返回值。

下面是一个使用指针返回数组的例子:```c#include <stdio.h>int* getArray() {static int arr[5] = {1, 2, 3, 4, 5};return arr;}int main() {int* arr = getArray();for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}return 0;}```在上面的例子中,我们定义了一个名为getArray的函数,该函数返回一个指向静态数组的指针。

在主函数中,我们调用getArray函数,并将其返回值赋值给一个指针变量arr。

然后,我们使用for循环遍历数组,并打印每个元素的值。

使用数组返回数组除了使用指针返回数组外,我们还可以使用数组来返回数组。

在C 语言中,数组可以作为函数的参数和返回值。

当我们使用数组作为函数的返回值时,我们需要在函数定义中指定数组的类型和大小。

下面是一个使用数组返回数组的例子:```c#include <stdio.h>int* getArray() {static int arr[5] = {1, 2, 3, 4, 5};return arr;}int main() {int arr[5];arr = getArray();for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}return 0;}```在上面的例子中,我们定义了一个名为getArray的函数,该函数返回一个静态数组。

c语言把浮点数转换为十六进制字符串

c语言把浮点数转换为十六进制字符串

c语言把浮点数转换为十六进制字符串标题:使用C语言将浮点数转换为十六进制字符串导语:C语言是一门强大且灵活的编程语言,它具有广泛的应用领域。

在本文中,我们将探讨如何使用C语言将浮点数转换为十六进制字符串。

这一技巧可以用于数据存储、数据传输和其他各种应用场景中。

一、认识浮点数和十六进制1. 浮点数是一种用于表示实数的数据类型,它包括整数部分和小数部分,并采用科学计数法表示。

数字3.14可以用浮点数表示为3.14e+0。

2. 十六进制是一种基于16个字符的数字系统,包括数字0-9和字母A-F。

每个十六进制位可以表示4个二进制位。

二、浮点数转换为十六进制字符串的方法1. 使用C语言提供的库函数(如sprintf)可以很方便地将浮点数转换为十六进制字符串。

下面是一个示例代码:```c#include <stdio.h>void floatToHex(float num, char* hexStr){sprintf(hexStr, "%0X", *(unsigned int*)&num);}int main(){float number = 3.14;char hexString[9]; // 浮点数占据4个字节,每个字节最多可以用两位十六进制数表示floatToHex(number, hexString);printf("浮点数 %f 转换为十六进制字符串为: %s\n", number, hexString);return 0;}```2. 在上述代码中,我们使用了sprintf函数将浮点数转换为十六进制字符串。

这里的"%0X"格式说明符用于将十六进制数字以大写的形式打印出来。

三、深入理解浮点数转换为十六进制字符串的原理1. 浮点数的内部表示采用IEEE 754标准,它将浮点数分解为符号位、指数位和尾数位。

在C语言中,float类型的变量通常占据4个字节。

c语言求正方体的表面积和体积

c语言求正方体的表面积和体积

c语言求正方体的表面积和体积正方体是一种常见的立体几何体,具有六个相等的正方形面。

在数学和几何学中,我们经常需要计算正方体的表面积和体积。

本文将以C语言为工具,介绍如何使用C语言来计算正方体的表面积和体积。

首先我们需要明确正方体的定义和特性。

正方体是一种立方体的特殊情况,其六个面都是正方形,且相邻面之间的夹角均为90度。

正方体的边长用a表示,我们要求的是正方体的表面积和体积。

正方体的表面积是指正方体的六个面的总面积。

由于正方体的每个面都是正方形,所以每个面的面积都是a×a,即a的平方。

那么正方体的表面积就是六个面积的总和,即6×a×a,也可以写成6×a²。

接下来,我们使用C语言来计算正方体的表面积。

首先,我们需要定义一个变量来表示正方体的边长a,然后使用公式6×a²来计算表面积。

最后,将结果输出。

下面是使用C语言计算正方体表面积的示例代码:```c#include <stdio.h>int main() {float a; // 正方体的边长printf("请输入正方体的边长:");scanf("%f", &a);float surface_area = 6 * a * a; // 计算正方体的表面积printf("正方体的表面积为:%.2f\n", surface_area);return 0;}```运行以上代码,程序会要求用户输入正方体的边长,然后计算并输出正方体的表面积。

注意,这里使用了`%.2f`来控制输出的表面积保留两位小数。

接下来,我们来计算正方体的体积。

正方体的体积是指正方体内部的空间大小。

由于正方体的六个面都是相等的正方形,所以正方体的体积可以通过边长的立方来计算,即a×a×a,也可以写成a³。

同样,我们使用C语言来计算正方体的体积。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

初学C#一周,老师布置了个用C#编写仿Windows扫雷游戏的作业,我用了三天才弄出来,分享出来自我满足一下。

程序是用vs 2008 控制台应用程序编的。

界面有点粗糙,基本的功能倒是实现了。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace saolei{class Program{//说明方向键控制方向,空格键显示,按R标记地雷static int rl = 0; //rl横坐标static int ud = 0; //ud纵坐标static int level = 0; //游戏难度static int Win = 0; //根据难度赋值,用来判断是否完成游戏static string[,] LendMine = new string[9, 9];//二维数组表示游戏界面,横纵各9格static string[,] LendMine2 = new string[16, 16];//横纵各16格static Random rnd = new Random();static bool b = true;static void Main(string[] args){Console.Write("请选择难度(1简单,2中级):");level = int.Parse(Console.ReadLine());switch (level){case 1:Level1();Win = 71;break;case 2:Level2();Win = 216;break;default:break;}#region绘制界面switch (level){case 1:for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){Console.Write("H");}Console.WriteLine();}break;case 2:for (int i = 0; i < 16; i++){for (int j = 0; j < 16; j++){Console.Write("H");}Console.WriteLine();}break;default: break;}#endregion#region进行游戏Console.SetCursorPosition(0, 0);//光标初始位置do{if (Console.KeyAvailable){ConsoleKey ck = Console.ReadKey(true).Key;if (ck == ConsoleKey.Spacebar){Show(); //显示光标位置的数字}else{SetCursorPos(ck); //移动光标}}} while (b);#endregion}public static void Level1(){#region产生地雷int[] a = new int[10];int[] c = new int[10];for (int i = 0; i <= 9; i++) //设置地雷位置,总共10个,用*表示{int H = rnd.Next(0, 9);int S = rnd.Next(0, 9);a[i] = H;c[i] = S;for (int j = 0; j < i; j++){if (a[j] == H && c[j] == S)//判断第i个地雷位置是否与之前的有重复 {i--; //i-1,下一个循环重新产生第i个地雷坐标break;}}LendMine[H, S] = "*";}#endregion#region编辑数字分布for (int i = 0; i < 9; i++) //横纵9*9=81格{ //用LendMine[i,j]表示格子,存储的元素为数字或地雷("*") for (int j = 0; j < 9; j++){int n = 0;if(LendMine[i, j] != "*") //判断此格周围的地雷数,将数字存在此格LendMine[i,j]中{#regionif (i == 0){if (j == 0) //位于左上顶点的格子{if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j + 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}if (j == 8) //右上顶点{if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j - 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}if (j > 0 && j < 8) //上边界{if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j + 1] == "*"){ n++; }if (LendMine[i + 1, j - 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}}#endregion#regionif (i == 8){if (j == 0) //左下顶点{if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j + 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n); }if (j == 8) //右下顶点{if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j - 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n); }if (j > 0 && j < 8) //下边界{if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j + 1] == "*"){ n++; }if (LendMine[i - 1, j - 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n); }}#endregion#regionif (j == 0 && i > 0 && i < 8) //左边界{if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j + 1] == "*"){ n++; }if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j + 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}if (j == 8 && i > 0 && i < 8) //右边界{if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j - 1] == "*"){ n++; }if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j - 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}#endregion#region i>0&&i<8&&j>0&&j<8if (i > 0 && i < 8 && j > 0 && j < 8) //中间{//n = 0;if (LendMine[i - 1, j] == "*"){ n++; }if (LendMine[i - 1, j - 1] == "*"){ n++; }if (LendMine[i - 1, j + 1] == "*"){ n++; }if (LendMine[i, j + 1] == "*"){ n++; }if (LendMine[i, j - 1] == "*"){ n++; }if (LendMine[i + 1, j] == "*"){ n++; }if (LendMine[i + 1, j + 1] == "*"){ n++; }if (LendMine[i + 1, j - 1] == "*"){ n++; }LendMine[i, j] = string.Format("{0}", n);}#endregion}}}#endregion}public static void Level2(){#region产生地雷int[] a = new int[40];int[] c = new int[40];for (int i = 0; i < 40; i++) //设置地雷位置,总共40个,用*表示{int H = rnd.Next(0, 16);int S = rnd.Next(0, 16);a[i] = H;c[i] = S;for (int j = 0; j < i; j++){if (a[j] == H && c[j] == S)//判断第i个地雷位置是否与之前的有重复 {i--; //i-1,下一个循环重新产生第i个地雷坐标break;}}LendMine2[H, S] = "*";}#endregion#region编辑数字分布for (int i = 0; i < 16; i++) //横纵16*16=256格{ //用LendMine[i,j]表示格子,存储的元素为数字或地雷("*")for (int j = 0; j < 16; j++){int n = 0;if (LendMine2[i, j] != "*") //判断此格周围的地雷数,将数字存在此格LendMine[i,j]中{#regionif (i == 0){if (j == 0) //位于左上顶点的格子{if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j + 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n);}if (j == 15) //右上顶点{if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j - 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n);}if (j > 0 && j < 15) //上边界{if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j + 1] == "*"){ n++; }if (LendMine2[i + 1, j - 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n);}}#endregion#regionif (i == 15){if (j == 0) //左下顶点{if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j + 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n); }if (j == 15) //右下顶点{if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j - 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n); }if (j > 0 && j < 15) //下边界{if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j + 1] == "*"){ n++; }if (LendMine2[i - 1, j - 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n); }}#endregion#regionif (j == 0 && i > 0 && i < 15) //左边界{if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j + 1] == "*"){ n++; }if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j + 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n);}if (j == 15 && i > 0 && i < 15) //右边界{if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j - 1] == "*"){ n++; }if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j - 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n); }#endregion#region i>0&&i<15&&j>0&&j<15if (i > 0 && i < 15 && j > 0 && j < 15) //中间 {//n = 0;if (LendMine2[i - 1, j] == "*"){ n++; }if (LendMine2[i - 1, j - 1] == "*"){ n++; }if (LendMine2[i - 1, j + 1] == "*"){ n++; }if (LendMine2[i, j + 1] == "*"){ n++; }if (LendMine2[i, j - 1] == "*"){ n++; }if (LendMine2[i + 1, j] == "*"){ n++; }if (LendMine2[i + 1, j + 1] == "*"){ n++; }if (LendMine2[i + 1, j - 1] == "*"){ n++; }LendMine2[i, j] = string.Format("{0}", n); }#endregion}}}#endregion}public static void SetCursorPos(ConsoleKey ck){if (ck == ConsoleKey.RightArrow){ rl++; }if (ck == ConsoleKey.LeftArrow){ rl--; }if (ck == ConsoleKey.UpArrow){ ud--; }if (ck == ConsoleKey.DownArrow){ ud++; }if (ck == ConsoleKey.R){ Console.Write("@"); } //按R显示@,玩家用来标记地雷位置Console.CursorLeft = rl;Console.CursorTop = ud;}public static void Show(){switch(level){case 1:if (LendMine[rl, ud-1] == "*"){Console.WriteLine("你输了");b = false;}else{Console.Write(LendMine[rl, ud-1]);Console.CursorLeft = rl;Console.CursorTop = ud;Win--;if (Win == 0) //Win=0.表示所有无雷区域已找出 {Console.WriteLine("你完成了游戏");}}break;case 2: if (LendMine2[rl, ud - 1] == "*"){Console.WriteLine("你输了");b = false;}else{Console.Write(LendMine2[rl, ud - 1]);Console.CursorLeft = rl;Console.CursorTop = ud;Win--;if (Win == 0){Console.WriteLine("你完成了游戏");}}break;default: break;}}}}。

相关文档
最新文档