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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

2204閲覧

10x10の碁盤を作りたい

kuroni

総合スコア4

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/08/22 15:53

囲碁の形を使ったブログラムを作る上で、最初の囲碁の形を作るのに苦戦している

ここに質問の内容を詳しく書いてください。
c言語でオセロのような遊びを作ろうと思ったのですが、10マスx10マスで、上と左に文字列の入った囲碁盤を作成したいです。また、作る上でポインタを学びたいので、作りかけのものに付け加える形で教えていただきたいです。結果として次のような形の結果にしたいと思っています。
1 2 3 4 5 6 7 8 9 10
a@ @ @ @ @ @ @ @ @ @
b@ @ @ @ @ @ @ @ @ @
c@ @ @ @ @ @ @ @ @ @
d@ @ @ @ @ @ @ @ @ @
e@ @ @ @ @ @ @ @ @ @
f@ @ @ @ @ @ @ @ @ @
g@ @ @ @ @ @ @ @ @ @
h@ @ @ @ @ @ @ @ @ @
i@ @ @ @ @ @ @ @ @ @
j@ @ @ @ @ @ @ @ @ @

#include <stdio.h> void init (int *Board){ *Board = @;  /*Board配列に'@'を代入したいのだがこれで良いかどうか*/ return; } void dump(){  /*ここの()内に何を書けば良いのか教えてください*/ char RowIndex[10] = {'a','b','c','d','e','f','g','h','i','j'}; printf(" 1 2 3 4 5 6 7 8 9 10\n"); /*この行に各行先頭にRowIndexを使用しa~jの記号を表示するコード*/ /*その後ろにBoard配列に対応する列要素を表示するコード*/ return; } int main(void){ char Board[10][10]; init(*Board); /*合っているつもりだが()内はこれでいいですか?Board配列を渡したいです*/ dump(*Board); return 0; }

ここにより詳細な情報を記載してください。
c言語初心者で至らない点があるかもしれないですがよろしくお願いします。

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

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

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

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

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

otn

2020/08/22 16:05

もう少し初歩から、Cを学ぶのが良いと思います。 プログラムの体をなしていません。
guest

回答1

0

ベストアンサー

自分も初心者なので練習としてNxNの碁盤の目出力してみましたのでご参考まで。
とりあえずなので数字は1桁表示で割愛。
関数の引数で配列渡しの際は自動でポインタ渡しのはず?(下記参考URLより)

char型配列で文字で管理するよりも、
int型配列などで数字に意味(例えば0=何もない,1=白,2=黒など)を持たせた方が後々管理しやすいかも。

参考:
囲碁プログラムの作り方(基本編)
【C/C++】 2次元配列の引数渡し

イメージ説明

C

1#include <stdio.h> 2const int size = 20; 3 4void init(int b[size][size]) { 5 for (int h = 0; h < size; h++) { 6 for (int w = 0; w < size; w++) { 7 if (w == 0 || h == 0) { 8 if (w == 0 && h > 0) { 9 b[h][w] = 'a' + h - 1; 10 } 11 if (h == 0 && w > 0) { 12 if (w > 9) { 13 b[h][w] = w + '0' - 10; 14 } else { 15 b[h][w] = w + '0'; 16 } 17 } 18 } else { 19 b[h][w] = '@'; 20 } 21 } 22 } 23 b[0][0] = ' '; 24} 25 26void dump(const int b[size][size]) { 27 for (int h = 0; h < size; h++) { 28 for (int w = 0; w < size; w++) { 29 printf("%c ", b[h][w]); 30 } 31 printf("\n"); 32 } 33} 34 35int main() { 36 int Boad[size][size]; 37 init(Boad); 38 dump(Boad); 39 getchar(); 40 return 0; 41}

投稿2020/08/22 19:40

mjk

総合スコア303

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

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

kuroni

2020/08/23 02:08

ありがとうございます。char型で作るつもりだったのですが、とても参考になりました。参考にさせていていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問