前提・実現したいこと
プログラムの練習をするためブラックジャックをC#で作成しようとしています。
まず53枚のトランプが入った山札を作る目的でCardという型を作り、それを使おうとしたのですがどうも動きません。
最終的(まず)は自分で作ったCard型の配列にトランプを作って順番に全部を入れたいと思っています。
書き方が間違っていると思うのですが、調べても分からなかったのでご指導お願いします…
発生している問題・エラーメッセージ
System.NullReferenceException: 'Object reference not set to an instance of an object.'
cards が null でした。
該当のソースコード
C#
1 2using System; 3 4/* 5初期カードは52枚。引く際にカードの重複は無いようにする 6プレイヤーとディーラーの2人対戦。プレイヤーは実行者、ディーラーは自動的に実行 7実行開始時、プレイヤーとディーラーはそれぞれ、カードを2枚引く。引いたカードは画面に表示する。ただし、ディーラーの2枚目のカードは分からないようにする 8その後、先にプレイヤーがカードを引く。プレイヤーが21を超えていたらバースト、その時点でゲーム終了 9プレイヤーは、カードを引くたびに、次のカードを引くか選択できる 10プレイヤーが引き終えたら、その後ディーラーは、自分の手札が17以上になるまで引き続ける 11プレイヤーとディーラーが引き終えたら勝負。より21に近い方の勝ち 12JとQとKは10として扱う 13Aはとりあえず「1」としてだけ扱う。「11」にはしない 14*/ 15namespace ConsoleApp2 16{ 17 class Deck//山札を管理するクラス 18 { 19 static void Main(string[] args)//52枚のカードを作る関数 20 { 21 Card[] cards = new Card[1]; 22 int[] num = new int[5] { 1, 2, 3, 4, 5 }; 23 string[] mark = new string[4] { "daiya","spades","clubs","hearts"}; 24 cards[0].mark ="daiya"; 25 //cards[0].num = 1; 26 Console.WriteLine(cards[0].mark); 27 28 } 29 } 30 31 class Me //自分の手札を管理するクラス 32 { 33 34 } 35 36 class Dealer//ディーラーの手札を管理するクラス 37 { 38 39 } 40 41 public class Card//カードの変数を作るためのクラス 42 { 43 public int num; 44 public string mark; 45 } 46} 47
試したこと
自分で配列を作ってみましたがこのコードだとCard[0].markに"dia"が入ってると思うのですがnullが返ってきました。
書き方の問題かなと思って検索したが見つからなかった(探し方の問題?)
補足情報(FW/ツールのバージョンなど)
Visual Studioを使っています
回答2件
あなたの回答
tips
プレビュー