我的代码出错了。我是C#的新手,我正在尝试制作一款基于双人游戏的游戏。使用visual studio执行此操作
错误是“警告2已分配变量'gs',但从不使用其值”
代码如下;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
namespace GridWorld
{
public class newAI : BasePlayer
{
PlayerWorldState myWorldState;
private double maxSpeed = 5f;
//public int MaxNumTurn = 15;
private int Steps;
private object count;
public newAI ()
: base()
{
this.Name = "AI FOR GAMES THE A TEAM";
// this.MaxNumTurn = 15;
var gs = new GridSquare.ContentType(); // the variable gs is now a new GridSquare content type
}
void Pathfind()
{
PlayerWorldState startingPoint = BasePlayer(GridSquare.ContentType.Snail);
int myX = 0;
int myY = 0;
if (myX == -1 || myY == -1) // if myX & myY are equal to minus 1 then increment the steps
Steps++;
{
return;
}
gs [myX, myY].Steps = 0; // outside whileloop
while (true)
{
bool madeProgress = false;
foreach (startingPoint mainPoint in gs)
{
int x = mainPoint.X;
int y = mainPoint.Y;
if (SquareOpen(x, y))
{
int passHere = GridSquare[x, y].Steps;
foreach (startingPoint movePoint in ValidMoves(x, y))
{
int myX = movePoint.X;
int myY = movePoint.Y;
int newPass = passHere + 1;
if (GridSquare[myX, myY].Steps > newPass)
{
GridSquare[myX, myY].Steps = newPass;
madeProgress = true;
}
答案 0 :(得分:0)
这不是一个错误。正如它所说,它只是一个警告,表明变量'gs'被分配到某处但从未在任何地方使用过。这不应该导致您的应用程序停止工作。
答案 1 :(得分:0)
您在构造函数gs
中声明并定义newAI
并尝试在Pathfind
中使用它。 Pathfind
无法看到它,因为它是您的类构造函数的 local ,即本地范围的变量。将其移至您的班级,如maxSpeed
,Steps
和count
变量。
这只是一个警告,但你的代码至少会有不确定的行为。