현재 프로젝트 작업 중이므로 도움이 필요합니다. 여전히 비교적 새로운 C#. 나는 5 명의 주사위가 2 명의 플레이어 사이에서 차례로 번갈아 가며 굴러가는 주사위 굴림 게임을 만들었습니다. 내가 붙어있는 것은 3 가지 종류의 값을 확인하고 포인트를 지정하는 것입니다. 예를 들어, 플레이어가 엔터를 누르고 3 번 나타나면 플레이어는 3 점을 받거나 4가 3 번 나타나면 플레이어는 전철기. if 문과 for 루프를 사용하여 여러 가지 다른 방법을 시도했지만 작동하지 않는 것 같습니다. 내 코드는 아래에 제공됩니다. 모든 도움을 주시면 감사하겠습니다.C# 주사위 굴림 - 값에 점수 할당
감사
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Dice_v4
{
class Game
{
static void Main(string[] args)
{
Random RandomNum = new Random();
Player[] player1 = new Player[5];
Die[] myDie = new Die[5];
for (int i = 0; i < 5; i++)
{
myDie[i] = new Dice_v4.Die(RandomNum);
player1[i] = new Dice_v4.Player();
}
for (int i = 0; i < 2; i++) // Number of players
{
Console.Write("Enter Name for Player {0}:", i + 1);
string NewName = Console.ReadLine();
player1[i].SetName(NewName);
}
Console.WriteLine();
for (int j = 1; j < 20; j++)
{
for (int i = 0; i < 2; i++)
{
myDie[i].roll();
Console.WriteLine("{0} Rolled:{1} on the first dice", player1[i].GetName(), myDie[i].GetTopNumber());
Console.WriteLine("{0} Rolled:{1} on the second dice", player1[i].GetName(), myDie[i].GetTopNumber1());
Console.WriteLine("{0} Rolled:{1} on the third dice", player1[i].GetName(), myDie[i].GetTopNumber2());
Console.WriteLine("{0} Rolled:{1} on the fourth dice", player1[i].GetName(), myDie[i].GetTopNumber3());
Console.WriteLine("{0} Rolled:{1} on the fifth dice", player1[i].GetName(), myDie[i].GetTopNumber4());
Console.WriteLine("Total Throws:{0}", j);
Console.ReadLine(); }
}
}
}
class Die
{
private int NumberTop1; //attributes
private int NumberTop2;
private int NumberTop3;
private int NumberTop4;
private int NumberTop5;
int threepoints = 0;
private Random RandomNumGenerator;
public Die(Random RandomGenerator) // constructor
{
RandomNumGenerator = RandomGenerator; // initialises random number
}
public void roll()
{
NumberTop1 = RandomNumGenerator.Next(1, 6);
NumberTop2 = RandomNumGenerator.Next(1, 6);
NumberTop3 = RandomNumGenerator.Next(1, 6);
NumberTop4 = RandomNumGenerator.Next(1, 6);
NumberTop5 = RandomNumGenerator.Next(1, 6);
// generates random number// Number of dice to be rolled
Console.WriteLine("\tTotal score = {0}", threepoints);
}
public int GetTopNumber()
{
return NumberTop1; // Returns number on top which equals dice roll
}
public int GetTopNumber1()
{
return NumberTop2;
}
public int GetTopNumber2()
{
return NumberTop3;
}
public int GetTopNumber3()
{
return NumberTop4;
}
public int GetTopNumber4()
{
return NumberTop5;
}
}
class Player
{
private string Name;
public void SetName(string NewName) // constructor
{
Name = NewName; // initalises name
}
public string GetName()
{
return Name; // Returns name when called
}
}
}
에 의해 각각의 롤에 액세스 할 수 있습니다'내가 해봤 많은
당신은 목록을 선언 방법을 얻을 수는 없지만 무엇을 할 수 있습니까? 귀하의 질문에 그것을 포함하십시오! –플레이어 클래스도 괜찮아 보입니다. 하지만 getter와 setter 메소드를 없애고 public string Name {get; 세트; }' –
이전 버전을 삭제했습니다. 그들과 아무데도 가지 않고 있었고 카일 론에게 감사하지 않았습니다 – Duncher