猜數(shù)字小游戲C#實(shí)現(xiàn)代碼
猜數(shù)字小游戲,供大家參考,具體內(nèi)容如下
1、實(shí)驗(yàn)?zāi)康?/h3>
掌握循環(huán)、分支等結(jié)構(gòu)的使用方法,以及數(shù)據(jù)類(lèi)型轉(zhuǎn)換的方法。
2、實(shí)驗(yàn)內(nèi)容
設(shè)計(jì)并實(shí)現(xiàn)一款猜數(shù)字游戲。游戲開(kāi)始之后,首先生成一個(gè)隨機(jī)數(shù)n。n是在1至100之間的一個(gè)整數(shù)。玩家有十次機(jī)會(huì)猜該數(shù)字的大小。如果在十次之內(nèi)猜中n的大小,則游戲成功;否則游戲失敗。每次猜的數(shù)字如果不對(duì),則程序要給玩家提示,玩家猜的數(shù)字相比n是較大還是較小,并將猜數(shù)范圍更新后顯示出來(lái)。
3、實(shí)驗(yàn)要求
程序應(yīng)能夠具有魯棒性。
1、如果用戶輸入的不是數(shù)字,程序應(yīng)提示錯(cuò)誤信息,而更不應(yīng)崩潰。
2、如果用戶輸入的不是猜數(shù)范圍內(nèi)的整數(shù),程序應(yīng)提示錯(cuò)誤信息,而 不應(yīng)更改猜數(shù)范圍。
3、如果十次機(jī)會(huì),用戶都沒(méi)有猜中,應(yīng)提示游戲失敗,并能結(jié)束游戲。
4、如果十次機(jī)會(huì)之內(nèi),用戶猜中,應(yīng)提示游戲成功,并能結(jié)束游戲,而不應(yīng)讓用戶繼續(xù)猜數(shù)。
4、代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 猜數(shù)字小游戲
{
class Program
{
public static int test(string n, int max, int min)
{
try
{
int i = int.Parse(n);
if (i > min - 1 && i < max + 1)//不知道可不可以這樣用//
return 1;
else
{
Console.WriteLine("錯(cuò)誤:輸入的數(shù)字超出范圍");
return 0;
}
}
catch
{
Console.WriteLine("錯(cuò)誤:輸入的不是整型數(shù)字");
return 0;
}
}
static void Main(string[] args)
{
Console.WriteLine("-------------------------");
Console.WriteLine("***********歡迎**********");
Console.WriteLine("***1、你有十次機(jī)會(huì)");
Console.WriteLine("***2、隨機(jī)數(shù)的范圍為1-100");
Console.WriteLine("-------------------------");
Console.WriteLine("請(qǐng)輸入“Y/y”開(kāi)始游戲,輸入其他鍵退出游戲");
String S = Console.ReadLine();
if (S == "Y" || S == "y")
{
Random R = new Random();
int m = R.Next(1, 101);
int max = 100;
int min = 1;
int i;
Console.WriteLine("-----隨機(jī)數(shù)生成完畢------");
for (i = 0; i < 10; )
{
Console.WriteLine("第" + (i + 1) + "次機(jī)會(huì),請(qǐng)輸入你的答案:");
String n = Console.ReadLine();
i++;
if (test(n, max, min) == 1)
{
int j = int.Parse(n);
if (i == 10)
{
Console.WriteLine("次數(shù)用盡,游戲失??!");
break;
}
if (j == m)
{
Console.WriteLine("恭喜你,猜對(duì)了");
break;
}
else if (j > m)
{
max = j-1;
Console.WriteLine("猜錯(cuò)了,范圍更新為[" + min + "-" + max + "]");
continue;
}
else if (j < m)
{
min = j+1;
Console.WriteLine("猜錯(cuò)了,范圍更新為[" + min + "-" + max + "]");
continue;
}
}
}
}
else
{
Console.WriteLine("游戲退出,按任意鍵退出");
}
}
}
}
5、測(cè)試項(xiàng)
1)、測(cè)試Y與y進(jìn)入游戲是否可行以及退出游戲是否可行;
2)、測(cè)試輸入非法字符(包括非整型和超范圍整型);
3)、測(cè)試待猜范圍更新是否正確;
4)、測(cè)試游戲能否正常成功和結(jié)束;
6、測(cè)試效果




以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#獲得程序的根目錄以及判斷文件是否存在的實(shí)例講解
今天小編大家分享一篇C#獲得程序的根目錄以及判斷文件是否存在的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
c# DevExpress gridcontrol日期行的顯示格式設(shè)置
這篇文章主要介紹了c# DevExpress gridcontrol日期行的顯示格式設(shè)置,需要的朋友可以參考下2017-02-02
C#實(shí)現(xiàn)自定義windows系統(tǒng)日志的方法
這篇文章主要介紹了C#實(shí)現(xiàn)自定義windows系統(tǒng)日志的方法,涉及C#針對(duì)windows系統(tǒng)日志的創(chuàng)建、讀寫(xiě)及刪除技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08
WPF實(shí)現(xiàn)能自由改變形狀的四邊形和六邊形
這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)能自由改變形狀的四邊形和六邊形,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03
C#在新建線程中使用Timer無(wú)效問(wèn)題及解決
這篇文章主要介紹了C#在新建線程中使用Timer無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
C#實(shí)現(xiàn)毫秒轉(zhuǎn)換成時(shí)分秒的方法
這篇文章主要介紹了C#實(shí)現(xiàn)毫秒轉(zhuǎn)換成時(shí)分秒的方法,涉及C#時(shí)間的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

