質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

3928閲覧

C言語2次元配列で関数を使用せずにビンゴゲーム作成したい

maemuki_go

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/05/14 13:56

C言語2次元配列で関数を使用せずにビンゴゲーム作成したいです。
3行*3列の簡単なものですが、素人でもわかるように
ご教示お願いします。

入力は1,3,6,8,7,9,2,4,5を二次元配列設定。
引いたくじの値を1,6,5,2,7。
同じ値は・を付けて。
ビンゴ判定プログラムで縦横斜めの合計が0ならば、ビンゴと表示します。
ビンゴでなければ、NOTビンゴと表示します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

まずパソコンを買います。

投稿2017/05/14 14:05

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

C#

1using System; 2using System.Collections.Generic; 3 4namespace bingo1 5{ 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 List<List<int>> lines = new List<List<int>>(); 11 12 lines.Add(new List<int> { 1, 3, 6 }); 13 lines.Add(new List<int> { 8, 7, 9 }); 14 lines.Add(new List<int> { 2, 4, 5 }); 15 lines.Add(new List<int> { 1, 8, 2 }); 16 lines.Add(new List<int> { 3, 7, 4 }); 17 lines.Add(new List<int> { 6, 9, 5 }); 18 lines.Add(new List<int> { 1, 7, 5 }); 19 lines.Add(new List<int> { 6, 7, 2 }); 20 21 List<int> input = new List<int> { 1, 6, 5, 2, 7 }; 22 23 foreach(List<int> line in lines) 24 { 25 int sum = 0; 26 27 foreach (int i in input) 28 { 29 if (line.Contains(i)) 30 { 31 int pos = line.IndexOf(i); 32 line[pos] = 0; 33 } 34 } 35 36 foreach(int l in line) 37 { 38 sum += l; 39 } 40 41 if (sum == 0) 42 { 43 Console.WriteLine("ビンゴ"); 44 } 45 else 46 { 47 Console.WriteLine("NOTビンゴ"); 48 } 49 } 50 51 Console.ReadKey(); 52 53 } 54 } 55} 56 57

考えてみました。
関数を使用しないというのは私には困難だったので
使いました。
質問者様がおっしゃっていることを可能な限り再現しました。
「同じ値は・を付けて」というのは行っていません。
2次元リストの作り方を変更したバージョン。

c#

1using System; 2using System.Collections.Generic; 3 4namespace bingo1 5{ 6 class Program 7 { 8 static List<List<int>> Make_List(List<int> list) 9 { 10 List<List<int>> new_list = new List<List<int>>(); 11 12 for(int i = 0; i < list.Count; i+=3) 13 { 14 new_list.Add(list.GetRange(i, 3)); 15 } 16 17 for(int y = 0; y < 3; y++) 18 { 19 List<int> tmp = new List<int>(); 20 21 for(int x = 0; x < 3; x++) 22 { 23 List<int> tmp_list = new_list[x]; 24 tmp.Add(tmp_list[y]); 25 } 26 27 new_list.Add(tmp); 28 } 29 30 new_list.Add(new List<int> { list[0], list[4], list[8] }); 31 new_list.Add(new List<int> { list[2], list[4], list[6] }); 32 33 return new_list; 34 } 35 36 static void Main(string[] args) 37 { 38 List<List<int>> lines = Make_List(new List<int> { 1, 3, 6, 8, 7, 9, 2, 4, 5 }); 39 40 List<int> input = new List<int> { 1, 6, 5, 2, 7 }; 41 42 foreach (List<int> line in lines) 43 { 44 int sum = 0; 45 46 foreach (int i in input) 47 { 48 if (line.Contains(i)) 49 { 50 int pos = line.IndexOf(i); 51 line[pos] = 0; 52 } 53 } 54 55 foreach (int l in line) 56 { 57 sum += l; 58 } 59 60 if (sum == 0) 61 { 62 Console.WriteLine("ビンゴ"); 63 } 64 else 65 { 66 Console.WriteLine("NOTビンゴ"); 67 } 68 } 69 70 Console.ReadKey(); 71 } 72 } 73}

投稿2017/05/14 15:11

編集2017/05/14 22:21
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maemuki_go

2017/05/17 10:35

お手数をお掛けし、ありがとうございました。1から勉強致します。
退会済みユーザー

退会済みユーザー

2017/05/18 00:30

いえいえ。どういたしまして。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問