アフィリエイト広告を利用しています

はじめに | サイトマップ | プライバシーポリシー・サイトポリシー・免責事項など | 【レビュー】Parallels Desktop 15 for Mac



広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2015年09月17日

じゃんけんプログラミング(2次元配列編:思考パターン版)| C言語プログラミング入門講座












C言語 人工知能 
 思考パターン 思考回路


Xcode(Mac)て?覚えるC言語入門講座 | はし?めてのコンヒ?ュータ・ハ?ソコン.png


AI(人工知能)プログラミングの作り方 | C言語プログラミング入門講座




C言語で、

簡単な「 じゃんけんプログラム 」を作りながら

人工知能(AI:Artificial Intelligence)について、

考えていきたいと思います。





今回も、

し?ゃんけんフ?ロク?ラム:二次元配列編(経験値考慮版)| C言語プログラミング入門講座

の記事と同様に、

二次元配列 」、

乱数 」、

関係演算子 」・「 論理演算子 」などを利用して、

基本的なじゃんけんAIプログラム

を実装していきます。






今回のプログラミングの特徴としては、

コンピュータが、

じゃんけんを出す手(グー、チョキ、パー)の


1.思考パターン・思考回路を決めることができる点


2.連続して負けた回数に応じて、

  思考パターンを変更できる点


などです。










[ C言語プログラミングの開発環境 ]


Xcode



Macのプログラミングのための

統合開発環境
(IED:Integrated Development Environment)



 * その他にも、一例として、
   IBMアイビーエム
  (International Business Machines Corporation)
   によって開発された

  「 Eclipse 」(イクリプス・エクリプス)

   というオープンソースの統合開発環境 (IDE) でも
   Mac環境下でC言語プログラミングの練習が
   できると思います。
   個人的には、Xcodeの方が、
   簡単なプログラミン程度であれば使いやすいのでは
   ないかと思います。

  「 Eclipse 」は、Javaをはじめ
   さまざまなプログラミング言語を学習したい場合には、
   役に立つのではないかと思います。






Xcodeを利用して、

C言語プログラミングの実行環境にする方法や、

基本的なコード入力時の

キーボード操作方法についてわからない

わからない方の場合は、

こちらの記事から読み進めてみてください。

Hello worldプログラム | Xcode(Mac)でC言語入門講座











じゃんけんプログラミング(2次元配列編:思考パターン版)
C言語プログラミング入門講座(動画)










C言語サンプルコード


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
int myJanken;
/* 「グー(0)」のパターンと「チョキ(1)」の2パターン*/
int janken_pattern[2][4] = {{0, 0, 0, 0}, {1, 1 ,1, 1}};
int lose_times = 0;
int pattern_change = 0;
int janken_kind = 0;
int janken_ai;

srand((unsigned)time(NULL));
while (myJanken >= 0 && myJanken <= 2) {
printf("じゃんけんAIと「じゃんけん」をしよう!\n(0=グー、1=チョキ、2=パー、それ以外=終了:数値を入力後「enter」キー)\n:");
scanf("%d",&myJanken);
if (myJanken < 0 || myJanken > 2) break;
printf("\nじゃんけん、ぽん!\n");

janken_ai = janken_pattern[pattern_change][janken_kind];
janken_kind = (janken_kind + 1) % 4;

if (janken_ai == 0) {
printf("じゃんけんAI:「グー」です。\n");
} else if (janken_ai == 1) {
printf("じゃんけんAI:「チョキ」です。\n");
} else {
printf("じゃんけんAI:「パー」です。\n");
}
printf("\n\n");

if ((myJanken == 0 && janken_ai == 1) ||
(myJanken == 1 && janken_ai == 2) ||
(myJanken == 2 && janken_ai == 0)){
lose_times++;
} else {
lose_times = 0;
}
/*連続で2回負けるとパターンを変える*/
if (lose_times >= 2) {
pattern_change = (pattern_change + 1) % 2;
janken_kind = 0;
}
}
}






 * コード内に全角スペースが含まれていると
   エラーになりますので、
   その際は、半角スペースに適宜修正してください。

 *  int型 (integerインテジャー:整数値)の変数として、
   「 myJanken :入力するじゃんけんの手 」
   「 janken_pattern :じゃんけんのパターン 」
   「 lose_times :負けた回数 」
   「 pattern_change :じゃんけんのパターン変更 」
   「 janken_kind :じゃんけんの出す手を選ぶ 」
   「 janken_ai :じゃんけんAIの出した手 」
   という名前などの変数を作成しています。
   変数名は自分でわかりやすいように名前をつけてみてください。










今回のプログラムでは、

プログラムを実行後に、

0 」「 1 」「 2 」を

入力後、

「 enter 」キー を押すと、

コンピュータの出す手が、

出力されるようになっています。





上記の数値以外を入力し、

「 enter 」キー を押した場合は、

プログラムを終了します。


 * 数値以外を入力して、 「 enter 」キー
   押した場合は、エラー出力になります。





以下の記事で、


 ー  じゃんけんプログラミング(乱数編:特徴なし版)その1 | C言語プログラミング入門講座


 ー  じゃんけんプログラミング(乱数編:特徴なし版)その2 | C言語プログラミング入門講座


 ー  じゃんけんプログラミング(乱数編:特徴あり版)その1 | C言語プログラミング入門講座


 ー  じゃんけんプログラミング(乱数編:特徴あり版)その2 | C言語プログラミング入門講座


C言語プログラミングの練習をしてみた

プログラミングに比べると、

複雑なコードに

なってきているのではないかと思います。





おそらく多くの方にとって、

自分のじゃんけんの思考パターンを意識することは

あまりなく、

無意識で、

自分のじゃんけんの思考パターンを

繰り返している方もいるのではないかと思います。






今回のプログラミングでは、

プログラマーによて、

あらかじめ、

意識的に

人間のじゃんけんのパターンを、

決めておき、

そのパターンをじゃんけんの勝ち負けの

具合によって、

変更できるように

プログラミングされており、

じゃんけんに特化されたプログラムではありますが、

少しずつ人工知能らしくなってきているのでは

ないかと思います。





今回のサンプルプログラムコードの

int janken_pattern[2][4] = {{0, 0, 0, 0}, {1, 1 ,1, 1}}; 」の

{{0, 0, 0, 0}, {1, 1 ,1, 1}} 」の

数値を変更することで、

じゃんけんのパターンを変更

することができます。





具体的には、


C言語サンプルコード


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
int myJanken;
/* 「パー(2)」のパターン と「チョキ(1)」の2パターン*/
int janken_pattern[2][4] = {{ 2, 2, 2, 2 }, {1, 1 ,1, 1}};
int lose_times = 0;
int pattern_change = 0;
int janken_kind = 0;
int janken_ai;

srand((unsigned)time(NULL));
while (myJanken >= 0 && myJanken <= 2) {
printf("じゃんけんAIと「じゃんけん」をしよう!\n(0=グー、1=チョキ、2=パー、それ以外=終了:数値を入力後「enter」キー)\n:");
scanf("%d",&myJanken);
if (myJanken < 0 || myJanken > 2) break;
printf("\nじゃんけん、ぽん!\n");

janken_ai = janken_pattern[pattern_change][janken_kind];
janken_kind = (janken_kind + 1) % 4;

if (janken_ai == 0) {
printf("じゃんけんAI:「グー」です。\n");
} else if (janken_ai == 1) {
printf("じゃんけんAI:「チョキ」です。\n");
} else {
printf("じゃんけんAI:「パー」です。\n");
}
printf("\n\n");

if ((myJanken == 0 && janken_ai == 1) ||
(myJanken == 1 && janken_ai == 2) ||
(myJanken == 2 && janken_ai == 0)){
lose_times++;
} else {
lose_times = 0;
}
/*連続で2回負けるとパターンを変える*/
if (lose_times >= 2) {
pattern_change = (pattern_change + 1) % 2;
janken_kind = 0;
}
}
}




などとすると、

設定を変更することができると思います。




他にも、

if (lose_times >= 2) 」の

数値を変更することで、

パターンを変更をするまでの、

負ける回数の設定もできると思います。





し?ゃんけんフ?ロク?ラム:二次元配列編(経験値考慮版)| C言語プログラミング入門講座

の記事の、

サンプルコードと同様に、

コードを見た感じは、

とっつきにくい感じる方も多いのではないかと

思いますが、

C言語プログラムのコード入力に

慣れる目的などで、

サンプルコードの

入力にチャレンジしてみてください。








[ スポンサードリンク ]













teratail | レバレジーズ株式会社


C言語をはじめとした
プログラミングの関連Q&Aサイトです。

日々のC言語プログラミングの学習、
独学でのプログラミング関連の疑問などを、

teratail

で質問してみてください。
無料で利用できます。

C言語プログラミングのQ&A探しに | teratail






                    by はじめてのコンピュータ・パソコン







                 ▲ この記事のトップへ





Xcode(Mac)て?覚えるC言語入門講座 | はし?めてのコンヒ?ュータ・ハ?ソコン.png
このバナーをクリックすると
「 Xcode(Mac)て?覚えるC言語入門講座 」
の一覧ページにリンクします。


ー  独学プログラマーのためのAI(人工知能・無能)プログラム入門講座


 : し?ゃんけんフ?ロク?ラム:二次元配列編(経験値考慮版)| C言語プログラミング入門講座


 : AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 2次元配列編)






? サイトマップ


? プロフィール | サイトポリシー・免責事項など


? CONTENTS(コンテンツ)一覧


? C言語関連本 特集


? Xcode(Mac)で覚えるSwiftプログラミング入門講座


? Macでコマンド入門講座


? パソコン・プログラミング学習関連アプリ 特集


? 日本人のプログラミング学習の現在と未来 | #24 デジタルライフコラム


? Mac(マック)関連パソコン iMac・MacBookPro・MacBookAir


? パソコン・家電の新製品・キャンペーン情報 特集















MacでWindowsを使えるソフトウェア【Parallels】

Parallels Desktop for Macをレビュー中。
【レビュー】Parallels Desktop 15 for Mac(一覧へ)


Parallels Desktop 15 for Mac以降のレビューなど
子供プログラマーのサイトにリンクします。
【長期レビュー】Parallels Desktop for Macの感想(一覧)

子供プログラマーのサイトにリンクします。
【クーポン情報 - 10% OFF】Parallels Desktop 18 for Mac(2023年7月25日〜2023年8月8日まで) New♪
サイト内検索


おすすめ入門講座・特集コンテンツ
このサイトで作成している入門講座や、特集関連などのおすすめコンテンツです。お気に入りの講座コンテンツや、気になる特集探しなどにお役立てください 
最新記事


サイトポリシー・免責
HajimeteCPCさんの画像
HajimeteCPC
子供プログラマー | プログラミング入門ウェブ教室


子供フ?ロク?ラマー | フ?ロク?ラミンク?入門ウェフ?教室_イメーシ?.png

子供と一緒にプログラミングを楽しむために、大人がプログラミングを学ぶための学習支援サイトです。

こちらの記事ページもご活用ください。
日本人のための人工知能プログラマー入門講座(機械学習)

メニュー | はじめてのコンピュータ・パソコン


・  サイトマップ

・  プライバシーポリシー・サイトポリシー・免責事項など

・  はじめに

・  トップページ

・  CONTENTS(コンテンツ)一覧

・  年賀状をパソコンで自宅で作ろう講座

・  エクセル・ワード・パワーポイントの使い方入門

・  独学プログラマーのためのAI(人工知能・無能)プログラム入門講座

・  Xcode(Mac)で覚えるC言語入門講座

・  Xcode(Mac)で覚えるSwiftプログラミング入門講座

・  Mac関連

・  コンピュータ・プログラミング書籍関連 | まとめ・書評など(一覧)

・  パソコンでイラスト作成入門講座

・  アフィリエイトのやり方・始め方入門講座

・  SEO・レンタルサーバー入門講座

・  確定申告・会計 特集

・  デジタルライフコラム

・  エンジニア求人探し



[ スポンサードリンク ]



タグクラウド




QRコード
<< 2015年09月 >>
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
月別アーカイブ
2023年07月 (2)
2021年12月 (3)
2021年10月 (2)
2020年02月 (2)
2020年01月 (1)
2019年12月 (6)
2019年11月 (9)
2019年10月 (1)
2019年09月 (7)
2019年02月 (5)
2019年01月 (21)
2018年12月 (7)
2018年11月 (6)
2018年10月 (7)
2018年09月 (5)
2018年08月 (5)
2018年04月 (1)
2018年02月 (2)
2018年01月 (4)
2017年12月 (4)
2017年11月 (5)
2017年10月 (7)
2017年08月 (5)
2017年07月 (3)
2017年06月 (23)
2017年05月 (7)
2017年04月 (9)
2017年03月 (2)
2017年02月 (8)
2017年01月 (20)
2016年12月 (18)
2016年11月 (8)
2016年10月 (11)
2016年09月 (8)
2016年08月 (27)
2016年07月 (34)
2016年06月 (27)
2016年05月 (26)
2016年04月 (26)
2016年03月 (20)
2016年02月 (17)
2016年01月 (58)
2015年12月 (49)
2015年11月 (26)
2015年10月 (64)
2015年09月 (43)
2015年08月 (30)
2015年07月 (13)
2015年06月 (35)
2015年05月 (40)
2015年04月 (22)
2015年03月 (18)
2015年02月 (11)
2015年01月 (10)
2014年12月 (13)
2014年11月 (4)
2014年10月 (2)
2014年09月 (9)
2014年08月 (15)



2014年8月からこのブログを始めてみましたが、随分記事がたまってきました。どれかの記事が、何かの参考になることがありましたら幸いです。
You Tubeチャンネルぺージ


RehabC | イメーシ?.png
You Tubeのチャンネルもあります。
エクセル、ワード、パワーポイントなどの
基本的な操作方法の学習や、
プログラミングやイラスト作成をはじめとした、
パソコン学習の補助などにご活用ください。
よろしくお願いいたします。

×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: