# PeterJohnNumPyConnectFour — a Game Created using PeterJohn

> a Game Created using PeterJohn (iPhone/iPad app by Yasushi Obata.)

- Source: https://appshunter.io/ios/app/peterjohnnumpyconnectfour/id6474933509 (this page in markdown: same URL + `.md`)
- Developer: [Yasushi Obata](https://appshunter.io/developer/899977114)
- Category: Games, Board, Family
- Price: $1.99
- Age rating: 4+
- Requires: iOS 15.0 · 284 MB
- Languages: American English
- Released: 2023-12-26
- Data updated: 2026-08-14
- User reviews in markdown: https://appshunter.io/ios/app/peterjohnnumpyconnectfour/id6474933509/reviews.md

## What is PeterJohnNumPyConnectFour?

" PeterJohnNumPyConnectFour "
This's the first Single Cut and the first SpinOFF from 
" PeterJohn " Series or " PeterJohnNumPy " Series.

****mainContents;
TutorialSeason005/scripts/s001ConnectFourProVision.py
  Human Versus Human;
TutorialSeason005/scripts/s002ConnectFourMctsNumPyGame.py
  Human Versus Computer(MCTS NumPy);
TutorialSeason005/scripts/s003ConnectFourMctsCppGame.py
  Human Versus Computer(MCTS CPP);
TutorialSeason005/scripts/s004ConnectFourTraining.py
  ReinforcementLearning
TutorialSeason005/scripts/s005ConnectFourGame.py
  Humand Versus Computer(Pretrained Model)
TutorialSeason005/scripts/s006ConnectFourBlueToothGame.py
  Human Versus Human via BlueTooth.

****Omitted Functions;
We Omitted 
(1)"New Project",
(2)"New Script" and 
(3)"Save Script" functions.
in order to make you be able to Focus on Playing the game "Connect Four" and knowing the power of NumPy and ReinforcementLearning.
When you need the functions above, it's the time for you to Step Up to " PeterJohnNumPy " or " PeterJohnNumPyMatplotlib ".

****About the App Design; We Wanted to Omit to select "TutorialSeason005" at the "ProjectsView"; 
But We couldNot Omit to select "TutorialSeason005" at the "ProjectsView".
'cause, if we omitted it, RunScriptView CRASHes Only One Time
due to the Problem that python Interpreter CanNot Treat to create Apple Metal Cache Directory Correctly.
so we couldNot Omit to select "TutorialSeason005" at the "ProjectsView".
python Interperter has many Problems such as Difficulty of MultiThreading or Parallel Execution.
but on the other hand,
python grammar is Simple and easy to understand the logic.
We need to focus on many Good things.


****Ezekiel 36:25-29, GNT;
36:25 I will sprinkle clean water on you and make you clean from all your idols and everything else that has defiled you. 
36:26 I will give you a new heart and a new mind. I will take away your stubborn heart of stone and give you an obedient heart. 
36:27 I will put my Spirit in you and will see to it that you follow my laws and keep all the commands I have given you. 
36:28 Then you will live in the land I gave your ancestors. You will be my people, and I will be your God. 
36:29 I will save you from everything that defiles you. I will command the grain to be plentiful, 
so that you will Not have any more famines. 
36:30 I will increase the yield of your fruit trees and your fields, so that there will be No more famines to disgrace you among the nations. 

Go Forward along the Path which Holy Spirit Showed You.
--Yassun


## Version history (last 5 releases)

### 2026.0123.2251 — 2026-01-25

the "PyRun_StringFlags() returns Nil 
but PyErr_Print() outputs Empty" Problem Solved and the "opencv2.a"  Removed Version;

we Changed Three Things at this time.

****1) we Solved the the "PyRun_StringFlags() returns Nil 
but PyErr_Print() outputs Empty" Problem;
When you go to RunScriptView for the first time after you installed this App,
you needed to once go back to EditScriptView and then needed to go to RunScriptView again.

To Solve the "PyRun_StringFlags() returns Nil 
but PyErr_Print() outputs Empty" Problem,
it was needed to once call Py_FinalizeEx() and then to call Py_Initialize() again,
Means it was needed to Re-initialize the python interpreter.
It was Hard to find this solution 
'cause the error message "fopen failed for data file: errno = 2 (No such file or directory), Errors found! Invalidating cache..." 
has Hidden this problem for many years.
As a result, the error message "fopen failed for data file: errno = 2 (No such file or directory), Errors found! Invalidating cache..." 
didNot relate to 
  the "PyRun_StringFlags() returns Nil 
but PyErr_Print() outputs Empty" Problem.

****2) we Removed "opencv2.a";
'cause you canNot use opencv Python Bindings Nor opencv C++ Bindings 
on 'PeterJohnNumPyConnectFour'.
By removing"opencv2.a",  
you Can Save 180MBytes of SSD Disk Space and downloading Time.

Best Regards,
--Yasushi Yassun Obata

### 2025.0927.1334 — 2025-09-29

"s003ConnectFourMctsCppGame.py" and "s004ConnectFourTraining.py" BugFix Version;

We Apologize that 
MCTS, MonteCarloTreeSearch, C++ Version had a Bug that MCTS C++ version did Not explore the Game Tree,
so it was Very Weak.
We Fixed the Bug. Now MCTS C++ version explores the Game Tree.
So MCTS C++ Version Became Strong.

****TutorialSeason005/s003ConnectFourMctsCppGame.py
    Became Strong.
****TutorialSeason005/s004ConnectFourTraining.py
    which Uses the MCTS C++ Version to Train.
    in The Results of Training,
    RedReward and YellowReward became Almost Same Values such as 64.5 versus 64.
    it means the MCTS C++ Version became Strong.
****TutorialSeason005/s005ConnectFourGame.py
    which Uses the Trained Data on "s004ConnectFourTraining.py".
      so it became Strong.

****Why did we made MCTS, MonteCarloTreeSearch, C++ Version??;;
NumPy is Ten times Faster than Python,
and C++ is Ten times Faster than NumPy,
As a Result, C++ is Hundred times Faster than Python.

Enjoy Deep Learning.
Enjoy Reinforcement Learning.
Best Regards,
--Yasushi Yassun Obata

### 2025.0909.2328 — 2025-09-10

Xcode16.3 Compiled Version;

The Same as So Far; 
s001ConnnectFourProvision.py;                 HUMAN vs HUMAN
s002ConnnectFourMctsNumPyGame.py; HUMAN vs COMPUTER
s003ConnnectFourMctsCppGame.py;      HUMAN vs COMPUTER
s005ConnnectFourGame.py;                      HUMAN vs COMPUTER
    which uses the trained data 
    with s004ConnnectTraining.py; 
s006ConnnectFourBlueToothGame.py;     HUMAN vs HUMAN via BlueTooth

Best Regards,
--Yasushi Yassun Obata

### 2023.1229.0752 — 2023-12-29

"at the ProjectsView in iOS15,  a NavigationLink to the ScriptsView of 'TutorialSeason005' Added " Version;

****1of3; we Added a NavigationLink at the ProjectsView in iOS15.
Sorry, In iOS15, we found that we Forgot to Remove the comment-Out  
about the NavigationLink to the ScriptsView of "TutorialSeason005",
so we Removed the comment-Out.
Now, Even in iOS15,  the NavigationLink to ScriptsView of "TutorialSeason005" is Shown at the ProjectsView.

****2of3; we Removed "Save Script" function at the TopLeft from EditScriptView in the AppStore ScreenShot.
Sorry, we Forgot to Remove Save Script" function at the TopLeft from EditScriptView  in  the  AppStore ScreenShot.
it included "Save Script" function at the TopLeft of  EditScriptView in the AppStore ScreenShot.
but in "PeterJohnNumPyConnectFour",
Since it's the specification that the "Save Script" function was Omitted,
Even  in the AppStore ScreenShot,
we Removed "Save Script" function at the TopLeft from EditScriptView.
Now iit doesNot include "Save Script function.

****3of3; Code ReFactoring in "pjBoard.py".
we removed Five functions Below from "pjBoard.py",  'cause they wereNot Used.
  ##def isOpenColumn(self, col):
  ###def getOpenColumn(self) :
  ##def getNextOpenRow(self, col):
  def tryMoveBug(self, move):
  def winnerVerySlow(self) : ###VerySlow;;

**Deuteronomy 11:23-25, GNT;
11:23 Then He will drive out all those nations as you advance, 
and you will occupy the land belonging to nations greater and more powerful than you. 
11:24 All the ground that you march over will be yours. 
Your territory will extend from the desert in the south 
to the Lebanon Mountains in the north, 
and from the Euphrates River in the east 
to the Mediterranean Sea in the west. 
11:25 Wherever you go in that land, 
the Lord your God will make the people fear you, 
as He has promised, 
and No one will be able to stop you.

**Isaiah 54:15;17, GNT;
54:15 Whoever attacks you,
    does it without my consent;
whoever fights against you will fall.
54:17 But no weapon will be able to hurt you;
    you will have an answer for all who accuse you.
I will defend my servants
    and give them victory.”
The Lord has spoken.

Who Can Stand Against our Glorious Father??
No one can stand against our Glorious Fahter.
--Yassun

### 2023.1225.0845 — 2023-12-27

No release notes.

## Apps similar to PeterJohnNumPyConnectFour

| App | Rating | Price | Category |
| --- | --- | --- | --- |
| [Dominion](https://appshunter.io/ios/app/dominion/id1476461085) | 4.9 (4,729) | Free | Games |
| [BANK! Dice Game](https://appshunter.io/ios/app/bank-dice-game/id1596535693) | 4.3 (194) | Free | Games |
| [SmartCart: bridge](https://appshunter.io/ios/app/smartcart-bridge/id6757105490) | 2.8 (16) | Free | Games |
| [Pose Fight 3D](https://appshunter.io/ios/app/pose-fight-3d/id6449142813) | 4.9 (921) | Free | Games |
| [The Queen's Gambit Chess](https://appshunter.io/ios/app/the-queens-gambit-chess/id1588301078) | 4.4 (1,236) | Free | Games |
| [Ludo Master - Real Club King](https://appshunter.io/ios/app/ludo-master-real-club-king/id1396381574) | 4.1 (394) | Free | Games |

## More apps by Yasushi Obata

- [YassunPsalms](https://appshunter.io/ios/app/yassunpsalms/id1617333044)
- [YassunCallUpNotice](https://appshunter.io/ios/app/yassuncallupnotice/id1621617154)
- [YassunBitterness](https://appshunter.io/ios/app/yassunbitterness/id1624704495)
- [PeterJohn ThreeDim](https://appshunter.io/ios/app/peterjohn-threedim/id1632372110)
- [PeterJohn NumPy](https://appshunter.io/ios/app/peterjohn-numpy/id1662896316)
- [PeterJohn NumPy Matplotlib](https://appshunter.io/ios/app/peterjohn-numpy-matplotlib/id6471342492)

All apps by Yasushi Obata: https://appshunter.io/developer/899977114

---

*Data collected daily from the US App Store and indexed by [AppsHunter](https://appshunter.io/). User reviews are verbatim App Store reviews. Ratings, prices and chart positions refresh continuously; this snapshot is from 2026-08-14.*
