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




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次元配列編)






右向き三角1サイトマップ


右向き三角1プロフィール | サイトポリシー・免責事項など


右向き三角1CONTENTS(コンテンツ)一覧


右向き三角1C言語関連本 特集


右向き三角1Xcode(Mac)で覚えるSwiftプログラミング入門講座


右向き三角1Macでコマンド入門講座


右向き三角1パソコン・プログラミング学習関連アプリ 特集


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


右向き三角1Mac(マック)関連パソコン iMac・MacBookPro・MacBookAir


右向き三角1パソコン・家電の新製品・キャンペーン情報 特集











Parallels Desktop 15 for Mac クーポン・特価情報




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

2019年8月に発売開始されたParallels Desktop 15 for Macをレビュー中。
【レビュー】Parallels Desktop 15 for Mac(一覧へ) 

【20% OFF特価情報】Parallels Desktop15 for Mac(2019年11月26日〜2019年12月4日午後5時まで)   
サイト内検索


おすすめ入門講座・特集コンテンツ
このサイトで作成している入門講座や、特集関連などのおすすめコンテンツです。お気に入りの講座コンテンツや、気になる特集探しなどにお役立てください 
  1. 1. 準備はOK? 確定申告・会計 特集 | 2019年版(2018年・平成30年分)
  2. 2. 【Mac版】データ復元・復旧SOS講座(一覧)
  3. 3. no img パソコン便利機能関連記事(一覧) | エクセル・ワード・パワーポイント
  4. 4. Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版)
  5. 5. no img 人工知能(AI)・機械学習プログラミング入門者のための数学入門講座
  6. 6. 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座
  7. 7. Macでアフィリエイトのやり方・始め方入門講座
  8. 8. Xcode(Mac)で覚えるSwiftプログラミング入門講座(一覧)
  9. 9. デジタルライフコラム(Column)
  10. 10. パソコンでイラスト作成入門講座 | 基礎から求人探しまで
最新記事


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


子供プログラマー | プログラミング入門ウェブ教室_イメージ.png

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

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

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


・ サイトマップ

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

・ はじめに

・ トップページ

・ CONTENTS(コンテンツ)一覧

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

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

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

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

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

・ Mac関連

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

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

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

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

・ 確定申告・会計 特集 

・ デジタルライフコラム

・ エンジニア求人探し



[ スポンサードリンク ]



タグクラウド




QRコード
<< 2019年12月 >>
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 31        
月別アーカイブ
2019年12月(4)
2019年11月(10)
2019年10月(1)
2019年09月(7)
2019年02月(5)
2019年01月(22)
2018年12月(7)
2018年11月(6)
2018年10月(8)
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のチャンネルもあります。
エクセル、ワード、パワーポイントなどの
基本的な操作方法の学習や、
プログラミングやイラスト作成をはじめとした、
パソコン学習の補助などにご活用ください。
よろしくお願いいたします。

Macの買取サービス


【Mac買取ネット】
ユーザー満足度98%のMac買取専門店

「梱包キット」も頼めて、おおよその価格の仮見積もり金額もすぐに調べられるので、Macを売りたい方にとっては、ありがたいサービスですね。


【オンラインMac買取ストア | 中古・壊れたMac高額買取専門店
壊れたMacを売りたい方にはありがたいですね。

【オンラインMac買取ストア】

以前、壊れてしまって、使えないMacBook Pro 17インチを買い取っていただいた時の体験談もまとめておきましたので、壊れて使えないMacを売りたい方の参考になることがありましたら幸いです。 :【体験者は語る - 評判】故障したMacBook Pro 17インチが買取サービスで無事、仮査定金額通りに売れました。| #429 デジタルライフコラム

現在は、iMacでこのサイトを運営中です。